• 12Linux基础-操盘分区与挂载


    1  磁盘分区工具和挂载

    1.1  硬盘分区符认识

    MBR概述:全称为Master Boot Record,即硬盘的主引导记录。

    硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和分区有效标志(55AA)。在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。

    分区编号:主分区1-4 ,逻辑分区5……

    LINUX规定:逻辑分区必须建立在扩展分区之上,而不是建立在主分区上

    分区作用:

    主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot分区最好放在主分区上

    扩展分区不能使用的,它只是做为逻辑分区的容器存在的;我们真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中

    如果你用的是GPT的分区方式,那么它没有限制主分区个数

    注意:使用分区工具fdisk对磁盘进行操作,分区,格式化(重点)

     

    命名方式: /dev/sd[a-z]n

    其中:a-z 表示设备的序号,如sda表示第一块scsi硬盘,sdb就是第二块......

     n  表示每块磁盘上划分的磁盘分区编号

     

    1.2  使用fdisk管理分区

    fdisk:磁盘分区,是Linux发行版本中最常用的分区工具

    用法:fdisk [选项] device

    常用的选项 -l 查看硬盘分区表   

    案例:sdb盘上建一个分区,大小为100M

    在虚拟机上添加一块硬盘

     

    例:对sdb这块盘划分一个100M的分区出来

    [root@test ~]# fdisk /dev/sdb

    ...

    Command (m for help): m

    Command action

       a   toggle a bootable flag

       b   edit bsd disklabel

       c   toggle the dos compatibility flag

       d   delete a partition   删除分区

       g   create a new empty GPT partition table

       G   create an IRIX (SGI) partition table

       l   list known partition types   显示分区类型

       m   print this menu   打印帮助菜单

       n   add a new partition   添加新的分区

       o   create a new empty DOS partition table

       p   print the partition table   显示分区表

       q   quit without saving changes   不保存,退出

       s   create a new empty Sun disklabel

       t   change a partition's system id   改变分区类型

       u   change display/entry units

       v   verify the partition table

       w   write table to disk and exit   写分区表信息到硬盘,保存操作并退出

       x   extra functionality (experts only)

     

    Command (m for help): p   -----打印分区表

    Command (m for help): n   ----新建一个分区

    Partition type:

       p   primary (2 primary, 0 extended, 2 free)    p:主分区

       e   extended                         e:扩展分区

    Select (default p):     --直接默认

    Using default response p

    Partition number (1,4, default 1):   ---直接默认

    First sector (1230848-41943039, default 1230848):   ---直接默认 

    Using default value 1230848

    Last sector, +sectors or +size{K,M,G} (1230848-41943039, default 41943039): +1G  输入分区大小

    Partition 3 of type Linux and of size 1 GiB is set

    Command (m for help): w   保存退出

     

    [root@test ~]# ls /dev/sdb*

    /dev/sdb  /dev/sdb1

    2:对已经在使用的磁盘进行分区,分区让新生成的分区生效。如果对sda再做一个sda4主分区

    [root@test ~]# fdisk  /dev/sda

    命令(输入 m 获取帮助):p

    磁盘标识符:0x0005c80e

       设备 Boot      Start         End      Blocks   Id  System

    /dev/sda1   *        2048      411647      204800   83  Linux

    /dev/sda2          411648     2508799     1048576   82  Linux swap / Solaris

    /dev/sda3         2508800    23480319    10485760   83  Linux

    命令(输入 m 获取帮助):n

    Partition type:

       p   primary (3 primary, 0 extended, 1 free)

       e   extended

    Select (default e): p

    已选择分区 4

    起始 扇区 (23480320-41943039,默认为 23480320):

    将使用默认值 23480320

    Last 扇区, +扇区 or +size{K,M,G} (23480320-41943039,默认为 41943039):+1G

    分区 4 已设置为 Linux 类型,大小设为 1 GiB

    命令(输入 m 获取帮助):w

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.

    The kernel still uses the old table. The new table will be used at

    the next reboot or after you run partprobe(8) or kpartx(8)

    解决:让新生成的分区生效:

    [root@test ~]#reboot   #这个是最好的方法

    [root@test ~]# partx -a /dev/sda  #获得新分区表

    使用sdb1新分区:

    [root@test ~]# mkfs.ext4 /dev/sdb1

    [root@test ~]# mkfs.xfs  /dev/sdb1   #格式化,-f 对已经存在文件系统的分区,强制格式化

    [root@test ~]# mkdir /sdb1   #创建挂载点

    [root@test ~]# mount /dev/sdb1 /sdb1/    #挂载

    [root@test ~]# df -h    #查看

    文件系统        容量  已用  可用 已用% 挂载点

    /dev/sda3        10G  4.3G  5.8G   43% /

    devtmpfs        982M     0  982M    0% /dev

    tmpfs           997M     0  997M    0% /dev/shm

    tmpfs           997M  9.0M  988M    1% /run

    tmpfs           997M     0  997M    0% /sys/fs/cgroup

    /dev/sr0        4.3G  4.3G     0  100% /mnt

    /dev/sda1       197M  172M   25M   88% /boot

    tmpfs           200M   24K  200M    1% /run/user/0

    /dev/sdb1      1014M   33M  982M    4% /sdb1

    [root@test ~]# cd /sdb1/   #使用新分区

    [root@test sdb1]# ls

    [root@test sdb1]# cp /etc/passwd ./

    3:解决卸载不了的问题

    root@test ~]# cd /sdb1/

    [root@test sdb1]# umount /sdb1

    umount: /sdb1:目标忙。

            (有些情况下通过 lsof(8) 或 fuser(1) 可以

             找到有关使用该设备的进程的有用信息)

    [root@test sdb1]# lsof /sdb1

    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

    bash    2823 root  cwd    DIR   8,17       20   64 /sdb1

    lsof    2952 root  cwd    DIR   8,17       20   64 /sdb1

    lsof    2953 root  cwd    DIR   8,17       20   64 /sdb1

    方法1:[root@test sdb1]# kill -9 2823

    方法2:[root@test sdb1]# cd    #退出目录,这个最合适

     [root@test ~]# umount /dev/sdb1

    注:umount 挂载点   //卸载方式1    或 umount 设备路径  //卸载方式2

    4:写入配置文件,让它开机自动挂载

    [root@test /]# vim /etc/fstab  #在文件最后写入

    /dev/sdb1 /sdb1 xfs defaults 0 0

    注释:

    /dev/sdb1

    /sdb1

    xfs

    defaults

    0

    0

    要挂载的分区设备

    挂载点

    文件系统类型

    挂载选项

    是否备份

    是否检测

    [root@test ~]# mount -a  #自动挂载/etc/fstab中没有挂载上的文件

    [root@test ~]# df -h

    文件系统        容量  已用  可用 已用% 挂载点

    /dev/sda3        10G  4.3G  5.8G   43% /

    devtmpfs        982M     0  982M    0% /dev

    tmpfs           997M     0  997M    0% /dev/shm

    tmpfs           997M  9.0M  988M    1% /run

    tmpfs           997M     0  997M    0% /sys/fs/cgroup

    /dev/sr0        4.3G  4.3G     0  100% /mnt

    /dev/sda1       197M  172M   25M   88% /boot

    tmpfs           200M   24K  200M    1% /run/user/0

    /dev/sdb1      1014M   33M  982M    4% /sdb1   

    #发现已经挂载上,说明配置没有问题。 然后再重启,看看挂载

    方法2: 使用UUID挂载

    [root@test ~]# blkid

    /dev/sda1: UUID="a635d4d2-a21e-4d9b-b199-4c8d5cfed808" TYPE="xfs"

    /dev/sda2: UUID="46f139f8-fd5c-4e51-8d5c-b33f6c7aa38e" TYPE="swap"

    /dev/sda3: UUID="4bcb433e-10e6-464d-a40b-00d018950149" TYPE="xfs"

    /dev/sdb1: UUID="5e3a580a-e5b4-448c-88bf-d22fb3d1d9e2" TYPE="xfs"

    [root@test /]# echo "UUID=5e3a580a-e5b4-448c-88bf-d22fb3d1d9e2  /sdb1  xfs defaults 0 0" >> /etc/fstab

    扩展:了解

    /dev/sdb1

    /sdb1

    xfs

    defaults

    0

    0

    要挂载的分区设备

    挂载点

    文件系统类型

    挂载选项

    是否备份

    是否检测

    其中第四列:parameters-文件系统的参数

    Async/sync

    设置是否为同步方式运行,默认为async

    auto/noauto

    当执行mount -a 的命令时,此文件系统是否被主动挂载。默认为auto

    rw/ro

    是否以以只读或者读写模式挂载

    exec/noexe

    限制此文件系统内是否能够进行"执行"的操作

    user/nouser

    是否允许用户使用mount命令挂载

    suid/nosuid

    是否允许SUID的存在

    Usrquota

    启动文件系统支持磁盘配额模式

    Grpquota

    启动文件系统对群组磁盘配额模式的支持

    Defaults

    同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 samba nfs

    第五列:是否进行备份。通常这个参数的值为0或者1

    0

    代表不要做备份

    1

    代表要每天进行操作

    2

    代表不定日期的进行操作

    第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整

    0

    不要检验

    1

    最早检验(一般根目录会选择)

    2

    1级别检验完成之后进行检验

    1.3  gdisk 磁盘分区工具

    gdisk主要是用来划分容量大于2T的硬盘,大于2T fdisk搞不定

    两种类型的分区表:GPT和MBR  ; MBR不支持4T以上

    GPT分区:GPT,全局唯一标识分区表(GUID Partition Table),它使用128位GUID来唯一标识每个磁盘和分区,与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部一个在磁盘尾部;它通过CRC校验和来检测GPT头和分区表中的错误与损坏;默认一个硬盘支持128个分区

    例:对sdb做gpt分区,创建一个sdb1

    [root@test ~]# gdisk /dev/sdb

    。。。

    Command (? for help): ?    #  查看帮助

    bback up GPT data to a file

    cchange a partition's name   

    ddelete a partition    #删除分区

    ishow detailed information on a partition

    llist known partition types

    nadd a new partition        # 添加一个分区

    ocreate a new empty GUID partition table (GPT)

    pprint the partition table       # 打印分区表

    qquit without saving changes     # 退出不保存

    rrecovery and transformation options (experts only)

    ssort partitions

    tchange a partition's type code

    vverify disk

    wwrite table to disk and exit     #  # 写入分区表并退出

    xextra functionality (experts only)

    ?print this menu

    Command (? for help): n   #新建分区表

    Partition number (1-128, default 1):     #直接回车

    First sector (34-41943006, default = 2048) or {+-}size{KMGTP}:     #直接回车, 从头开始划分空间

    Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +1G  #给1G空间

    Current type is 'Linux filesystem'

    Hex code or GUID (L to show codes, Enter = 8300):     #分区类型直接回车

    注:8300 Linux filesystem  ;8e00 Linux LVM     想查看,可以按L 来显示

    Changed type of partition to 'Linux filesystem'

    Command (? for help): p  #查看

    。。。

    Number  Start (sector)    End (sector)  Size       Code  Name

       1            2048         2099199   1024.0 MiB  8300  Linux filesystem

    Command (? for help): w   #保存

    Do you want to proceed? (Y/N): y    #确定写入

    OK; writing new GUID partition table (GPT) to /dev/sdb.

    The operation has completed successfully.

    [root@test ~]# mkfs.xfs  /dev/sdb1  #格式化

    2: 修改fstab重启系统后,系统报错:

    重启后报错:

     

    输入root密码: 123456

    fstab中新添加开机自动加载项目删除:

     

    然后reboot

    2  实战扩展swap分区

    Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。

    mkswap /devices (格式化成swap格式)

    swapon /swap (激活/swap,加入到swap分区中)

    vim /etc/fstab (开机自启动新添加的swap分区)  ,在最后追加:

    /devices swap swap defaults 0 0

    如果不想使用需要删除,只需要执行#swapoff /swap

    2.1  先分个区

    [root@test ~]# gdisk  /dev/sdb

    ...

    Command (? for help): n  #新建分区

    Partition number (2-128, default 2):     #回车

    First sector (34-41943006, default = 2099200) or {+-}size{KMGTP}:  #回车

    Last sector (2099200-41943006, default = 41943006) or {+-}size{KMGTP}: +1G  #给1G

    Current type is 'Linux filesystem'

    Hex code or GUID (L to show codes, Enter = 8300):  #回车

    Changed type of partition to 'Linux filesystem'

    Command (? for help): w  #保存

    Do you want to proceed? (Y/N): y

    格式化swap

    [root@test ~]# mkswap /dev/sdb2

    正在设置交换空间版本 1,大小 = 2097148 KiB

    无标签,UUID=dc41b5ef-bcf1-477c-902e-c5bb00d41c1e

    验证:

    [root@test ~]# free -m

                  total        used        free      shared  buff/cache   available

    Mem:            977         557          75          16         345         168

    Swap:          2047         234        1813

    [root@test ~]# swapon /dev/sdb2   ---开启

    [root@test ~]# free -m

                  total        used        free      shared  buff/cache   available

    Mem:            977         556          75          16         345         169

    Swap:          3071         234        2837

    [root@test ~]# swapoff /dev/sdb2    ---关闭

    [root@test ~]# free -m

                  total        used        free      shared  buff/cache   available

    Mem:            977         556          75          16         345         169

    Swap:          2047         234        1813

    [root@test ~]# swapon -s

    FilenameTypeSizeUsedPriority

    /dev/dm-1                              partition2097148240532-1

    [root@test ~]# swapon /dev/sdb2

    [root@test ~]# swapon -s  #查看

    FilenameTypeSizeUsedPriority

    /dev/dm-1                              partition2097148240532-1

    /dev/sdb2                              partition10485720-2

    12.3.2  通过文件增加SWAP空间

    [root@test ~]# dd if=/dev/zero of=swap_file bs=1M count=500

    [root@test ~]# ll /root/swap_file

    [root@test ~]# chmod 0600 /root/swap_file

    [root@test ~]# mkswap -f /root/swap_file

    [root@test ~]# swapon /root/swap_file

    [root@test ~]# free -m

  • 相关阅读:
    2014-12-13 ~ 2015-11-13
    Burnside引理与polya定理
    HDU 5418 Victor and World (状态压缩dp)
    HDU 5446 Unknown Treasure(lucas + 中国剩余定理 + 模拟乘法)
    HDU 5412 CRB and Queries (整体二分)
    LA 4327 Parade(单调队列优化dp)
    win7远控控制桌面防火墙设置到例外
    win7远控控制桌面
    TCP的三次握手和四次挥手
    ES6 for in与for of 的使用方法及其区别
  • 原文地址:https://www.cnblogs.com/hackerlin/p/11274758.html
Copyright © 2020-2023  润新知