美文网首页
centos7磁盘管理

centos7磁盘管理

作者: 亦德 | 来源:发表于2018-01-19 14:40 被阅读0次

    发现添加的硬盘

    centos系统添加硬盘后,有两种方式可以发现添加的硬盘:

    1. 重启服务器
    2. 通过命令

    通过命令方式发现硬盘:

    # 手动执行
    echo "- - -" > /sys/class/scsi_host/host0/scan
    # for语句执行
    for i in {0..2};do echo "- - -" > /sys/class/scsi_host/host$i/scan;done
    

    fdisk命令管理磁盘

    fdisk命令

    命令 说明
    -l 命令参数,查看硬盘分区表
    d 删除一个分区
    l 列出分区类型
    m 获得帮助信息
    n 添加新分区
    p 打印分区表
    q 不保存分区表退出
    t 改变分区类型
    w 保存分区表退出
    查看硬盘分区表
    [root@virtue ~]# fdisk -l
    
    磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x0000b7a9
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     1026047      512000   83  Linux
    /dev/sda2         1026048    41943039    20458496   8e  Linux LVM
    
    磁盘 /dev/mapper/centos_virtue-swap:2147 MB, 2147483648 字节,4194304 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/mapper/centos_virtue-root:18.8 GB, 18756927488 字节,36634624 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    划分分区
    [root@virtue ~]# fdisk /dev/sdb 
    欢迎使用 fdisk (util-linux 2.23.2)。
    
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    Device does not contain a recognized partition table
    使用磁盘标识符 0x463f8d89 创建新的 DOS 磁盘标签。
    
    命令(输入 m 获取帮助):m
    命令操作
       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)
    
    命令(输入 m 获取帮助):p        # 打印分区表
    
    磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x463f8d89
    
       设备 Boot      Start         End      Blocks   Id  System
    
    命令(输入 m 获取帮助):n        # 新建一个分区
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)      # p-主分区
       e   extended                                                    # e-扩展分区
    Select (default p):         # 默认主分区
    Using default response p
    分区号 (1-4,默认 1):        # 默认分区号
    起始 扇区 (2048-16777215,默认为 2048):               # 起始位置,一般不要动,使用默认值就可以
    将使用默认值 2048
    Last 扇区, +扇区 or +size{K,M,G} (2048-16777215,默认为 16777215):+100M       # 根据提示输入扇区结束位置,或者直接输入分区大小
    分区 1 已设置为 Linux 类型,大小设为 100 MiB
    
    命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x463f8d89
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048      206847      102400   83  Linux
    
    命令(输入 m 获取帮助):n
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): e
    分区号 (2-4,默认 2):
    起始 扇区 (206848-16777215,默认为 206848):
    将使用默认值 206848
    Last 扇区, +扇区 or +size{K,M,G} (206848-16777215,默认为 16777215):
    将使用默认值 16777215
    分区 2 已设置为 Extended 类型,大小设为 7.9 GiB
    
    命令(输入 m 获取帮助):n            # 添加逻辑分区的操作
    Partition type:
       p   primary (1 primary, 1 extended, 2 free)
       l   logical (numbered from 5)
    Select (default p): l           # 添加逻辑分区
    添加逻辑分区 5
    起始 扇区 (208896-16777215,默认为 208896):
    将使用默认值 208896
    Last 扇区, +扇区 or +size{K,M,G} (208896-16777215,默认为 16777215):          # 默认结束位置,将剩余的全部空间分给逻辑分区
    将使用默认值 16777215
    分区 5 已设置为 Linux 类型,大小设为 7.9 GiB
    
    命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x463f8d89
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048      206847      102400   83  Linux
    /dev/sdb2          206848    16777215     8285184    5  Extended
    /dev/sdb5          208896    16777215     8284160   83  Linux
    
    命令(输入 m 获取帮助):w              # 保存分区表退出,将硬盘分区。如果是q,不保存分区表退出,不改变现有的分区
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    正在同步磁盘。
    
    # 查看当前磁盘情况
    [root@virtue ~]# ls /dev/sdb*
    /dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb5
    # 如果分区的盘没有显示出来可以使用以下命令刷新一下,就可以了
    [root@virtue ~]# partprobe /dev/sdb
    [root@virtue ~]# ls /dev/sdb*
    /dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb5
    

    文件系统(格式化分区磁盘)

    就像windows主机有ntfs和fat32格式的磁盘类型一样,Linux也有许多不同的文件系统,使用分区磁盘之前需要格式化分区磁盘为指定类型的文件系统。
    磁盘分区使用的整体流程如下:

    文件系统使用流程
    现在将刚刚分区的sdb1创建为xfs格式的文件系统,使用的命令是mkfs.xfs,不同的命令还可以创建不同的文件系统,比如ext4、ext3等等。
    [root@virtue ~]# mkfs.
    mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs     
    [root@virtue ~]# mkfs.xfs /dev/sdb1 
    meta-data=/dev/sdb1              isize=256    agcount=4, agsize=6400 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=0        finobt=0
    data     =                       bsize=4096   blocks=25600, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
    log      =internal log           bsize=4096   blocks=853, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    

    文件挂载

    挂载点设置
    1. 可以把格式化后的分区挂载到现有的目录上
    2. 也可以创建一个目录做为挂载点使用
    挂载

    如果直接挂载在现有的目录上,原目录中内容就会“消失”而显示新挂载点的内容。原有目录内容其实并没有消失,只不过是目录不再指向原有内容了。
    挂载使用的命令是mount,以下是示例。

    # 查看当前的挂载情况
    [root@virtue ~]# df -h
    文件系统                        容量  已用  可用 已用% 挂载点
    /dev/mapper/centos_virtue-root   18G  2.3G   16G   13% /
    devtmpfs                        7.9G     0  7.9G    0% /dev
    tmpfs                           7.9G     0  7.9G    0% /dev/shm
    tmpfs                           7.9G  8.5M  7.9G    1% /run
    tmpfs                           7.9G     0  7.9G    0% /sys/fs/cgroup
    /dev/sda1                       497M  102M  395M   21% /boot
    tmpfs                           1.6G     0  1.6G    0% /run/user/0
    # 查看home目录下的内容
    [root@virtue ~]# ls /home/
    harry  virtue
    # 将sdb1挂载到home目录下
    [root@virtue ~]# mount /dev/sdb1 /home/
    # 再查看home目录下,发现已经是空目录了
    [root@virtue ~]# ls /home/
    [root@virtue ~]# touch /home/aaa.txt
    [root@virtue ~]# ls /home/
    aaa.txt
    # 查看现在的挂载情况,可以看到sdb1挂载到了home目录上
    [root@virtue ~]# df -h
    文件系统                        容量  已用  可用 已用% 挂载点
    /dev/mapper/centos_virtue-root   18G  2.3G   16G   13% /
    devtmpfs                        7.9G     0  7.9G    0% /dev
    tmpfs                           7.9G     0  7.9G    0% /dev/shm
    tmpfs                           7.9G  8.5M  7.9G    1% /run
    tmpfs                           7.9G     0  7.9G    0% /sys/fs/cgroup
    /dev/sda1                       497M  102M  395M   21% /boot
    tmpfs                           1.6G     0  1.6G    0% /run/user/0
    /dev/sdb1                        97M  5.2M   92M    6% /home
    # 此时切换用户就会发现没有了登录环境了
    [root@virtue ~]# su - harry
    su: user harry does not exist
    [root@virtue ~]# su - virtue
    上一次登录:三 1月 17 13:45:04 CST 2018pts/0 上
    su: 警告:无法更改到 /home/virtue 目录: 没有那个文件或目录
    -bash-4.2$ exit
    登出
    # 进入home目录
    [root@virtue ~]# cd /home/
    # 卸载目录时报错
    [root@virtue home]# umount /home/
    umount: /home:目标忙。
            (有些情况下通过 lsof(8) 或 fuser(1) 可以
             找到有关使用该设备的进程的有用信息)
    # 根据提示使用lsof命令,可以很方便的看出来问题在哪
    [root@virtue home]# lsof /home/
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    bash    1572 root  cwd    DIR   8,17       20  128 /home
    lsof    1758 root  cwd    DIR   8,17       20  128 /home
    lsof    1759 root  cwd    DIR   8,17       20  128 /home
    # 退出目录,然后可以很方便的卸载
    [root@virtue home]# cd -
    /root
    [root@virtue ~]# umount /home/
    # home目录的内容又回来了
    [root@virtue ~]# ls /home/
    harry  virtue
    [root@virtue ~]# df -Th 
    文件系统                       类型      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos_virtue-root xfs        18G  2.3G   16G   13% /
    devtmpfs                       devtmpfs  7.9G     0  7.9G    0% /dev
    tmpfs                          tmpfs     7.9G     0  7.9G    0% /dev/shm
    tmpfs                          tmpfs     7.9G  8.5M  7.9G    1% /run
    tmpfs                          tmpfs     7.9G     0  7.9G    0% /sys/fs/cgroup
    /dev/sda1                      xfs       497M  102M  395M   21% /boot
    tmpfs                          tmpfs     1.6G     0  1.6G    0% /run/user/0
    

    创建目录作为挂载点就比较简单了,用的也比较多。

    # 创建sdb1目录作为挂载目录
    [root@virtue ~]# mkdir /sdb1
    # 将分区挂载在目录上
    [root@virtue ~]# mount /dev/sdb1 /sdb1/
    # 查看目录内容
    [root@virtue ~]# ls /sdb1/
    aaa.txt
    # 查看当前挂载情况
    [root@virtue ~]# df -Th 
    文件系统                       类型      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos_virtue-root xfs        18G  2.3G   16G   13% /
    devtmpfs                       devtmpfs  7.9G     0  7.9G    0% /dev
    tmpfs                          tmpfs     7.9G     0  7.9G    0% /dev/shm
    tmpfs                          tmpfs     7.9G  8.5M  7.9G    1% /run
    tmpfs                          tmpfs     7.9G     0  7.9G    0% /sys/fs/cgroup
    /dev/sda1                      xfs       497M  102M  395M   21% /boot
    tmpfs                          tmpfs     1.6G     0  1.6G    0% /run/user/0
    /dev/sdb1                      xfs        97M  5.2M   92M    6% /sdb1
    
    开机自动挂载

    要想系统开机自动挂载,需要修改配置文件/etc/fstab

    # 修改配置文件,在最后加上自己的配置
    [root@virtue ~]# vim /etc/fstab 
    
    #
    # /etc/fstab
    # Created by anaconda on Fri Nov 10 07:30:38 2017
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/centos_virtue-root /                       xfs     defaults        0 0
    UUID=ea07cfd6-5d28-474c-91bf-4186d427f395 /boot                   xfs     defaults        0 0
    /dev/mapper/centos_virtue-swap swap                    swap    defaults        0 0
    /def/sdb1   /sdb1   xfs     defaults    0 0                                             
    

    其中,添加的内容总共有六个字段,含义非别如下:

    含义 要挂载的分区设备 挂载点 文件系统类型 挂载选项 是否备份 是否检测
    参数 /dev/sdb1 /sdb1 xfs defaults 0 0
    说明 可以是设备名,也可以是UUID,建议使用UUID - - 具体选项见下表 具体见下下表 具体见下下下表

    说明:UUID号是唯一的,设备名是有可能会变化的。比如你现在使用设备名/dev/sdb1,但是如果/dev/sda盘损坏了,/dev/sdb是有可能变为/dev/sda的。UUID的查看方法见下下下表之后。

    挂载选项的具体内容如下所示:

    参数 说明
    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级别检验完成之后进行检验

    UUID号可以通过命令blkid进行查看

    # 这里没有出现sdb5是因为sdb5没有格式化为文件系统
    [root@virtue ~]# blkid 
    /dev/sdb1: UUID="2ebf7d50-0f7a-4a2a-9644-eb4669f91b49" TYPE="xfs" 
    /dev/sda1: UUID="ea07cfd6-5d28-474c-91bf-4186d427f395" TYPE="xfs" 
    /dev/sda2: UUID="3II9Q9-xe9d-Thzx-YObd-agoN-zKzT-WpWAod" TYPE="LVM2_member" 
    /dev/mapper/centos_virtue-swap: UUID="a8b20f7b-c3a1-4146-8f1f-955501bcf698" TYPE="swap" 
    /dev/mapper/centos_virtue-root: UUID="2fea1c3d-7fad-4219-9d7a-c1985adfa9b2" TYPE="xfs" 
    # 格式化sdb5
    [root@virtue ~]# mkfs.xfs /dev/sdb
    sdb   sdb1  sdb2  sdb5  
    [root@virtue ~]# mkfs.xfs /dev/sdb5
    meta-data=/dev/sdb5              isize=256    agcount=4, agsize=517760 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=0        finobt=0
    data     =                       bsize=4096   blocks=2071040, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    # 再次查看就可以发现sdb5的身影了
    [root@virtue ~]# blkid 
    /dev/sdb1: UUID="2ebf7d50-0f7a-4a2a-9644-eb4669f91b49" TYPE="xfs" 
    /dev/sda1: UUID="ea07cfd6-5d28-474c-91bf-4186d427f395" TYPE="xfs" 
    /dev/sda2: UUID="3II9Q9-xe9d-Thzx-YObd-agoN-zKzT-WpWAod" TYPE="LVM2_member" 
    /dev/mapper/centos_virtue-swap: UUID="a8b20f7b-c3a1-4146-8f1f-955501bcf698" TYPE="swap" 
    /dev/mapper/centos_virtue-root: UUID="2fea1c3d-7fad-4219-9d7a-c1985adfa9b2" TYPE="xfs" 
    /dev/sdb5: UUID="a236d161-b990-4e8c-a30f-7daaf269b8ec" TYPE="xfs" 
    

    大容量磁盘管理

    磁盘容量如果大于2T,那么使用fdisk就不太好用了,这时候,我们就可以祭出法器parted和gdisk了。
    parted主要有两种类型的分区表:GPT和MBR

    # 进入parted
    [root@virtue ~]# parted /dev/sdc
    GNU Parted 3.1
    使用 /dev/sdc
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    # 打印帮助信息
    (parted) h
      align-check TYPE N                        check partition N for TYPE(min|opt) alignment
      help [COMMAND]                           print general help, or help on COMMAND
      mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
      mkpart PART-TYPE [FS-TYPE] START END     make a partition
      name NUMBER NAME                         name partition NUMBER as NAME
      print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found
            partitions, or a particular partition
      quit                                     exit program
      rescue START END                         rescue a lost partition near START and END
      rm NUMBER                                delete partition NUMBER
      select DEVICE                            choose the device to edit
      disk_set FLAG STATE                      change the FLAG on selected device
      disk_toggle [FLAG]                       toggle the state of FLAG on selected device
      set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
      toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
      unit UNIT                                set the default unit to UNIT
      version                                  display the version number and copyright information of GNU Parted
    # 确定创建的分区表类型
    (parted) mklabel gpt                         
    # 创建分区                            
    (parted) mkpart primary 0M 100M
    警告: The resulting partition is not properly aligned for best performance.
    # 提示警告,主要是因为我们分配的空间太小了
    忽略/Ignore/放弃/Cancel? I
    # 打印分区表,primary是名字,可以自定义
    (parted) p                                                                
    Model: VMware Virtual disk (scsi)
    Disk /dev/sdc: 4295MB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End    Size   File system  Name     标志
     1      17.4kB  100MB  100MB               primary
    
    # 退出parted,不需要进行保存操作,直接退出即可
    (parted) q                                                                
    信息: You may need to update /etc/fstab.
    
    # 可以看到划分的分区直接就进行了保存
    [root@virtue ~]# ls /dev/sdc*
    /dev/sdc  /dev/sdc1
    

    之后的操作就和相同了,格式化分区,挂载分区,这里就不详细说了,如果有疑问,请参考fdisk操作过程。
    gdisk的使用比parted看起来要好操作一些,和fdisk操作类似。但是最小化安装默认没有安装,需要手动安装。

    # 默认没有安装gdisk命令
    [root@virtue ~]# gdisk /dev/sdc
    -bash: gdisk: 未找到命令
    # 手动安装gdisk
    [root@virtue ~]# yum install gdisk -y
    ...........
    ...........
    ...........
    已安装:
      gdisk.x86_64 0:0.8.6-5.el7                                                                                             
    
    作为依赖被安装:
      libicu.x86_64 0:50.1.2-15.el7                                                                                          
    
    完毕!
    
    # 进入gdisk
    [root@virtue ~]# gdisk /dev/sdc
    GPT fdisk (gdisk) version 0.8.6
    
    Partition table scan:
      MBR: protective
      BSD: not present
      APM: not present
      GPT: present
    
    Found valid GPT with protective MBR; using GPT.
    
    # 如果?显示提示信息
    Command (? for help): ?
    b   back up GPT data to a file
    c   change a partition's name
    d   delete a partition
    i   show detailed information on a partition
    l   list known partition types
    n   add a new partition
    o   create a new empty GUID partition table (GPT)
    p   print the partition table
    q   quit without saving changes
    r   recovery and transformation options (experts only)
    s   sort partitions
    t   change a partition's type code
    v   verify disk
    w   write table to disk and exit
    x   extra functionality (experts only)
    ?   print this menu
    
    # 新建分区
    Command (? for help): n
    Partition number (2-128, default 2): 
    First sector (195313-8388574, default = 195314) or {+-}size{KMGTP}: 
    # 直接使用默认值就可以,大小因为不同,这里使用自定义参数
    Last sector (195314-8388574, default = 8388574) or {+-}size{KMGTP}: +500M
    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): p
    Disk /dev/sdc: 8388608 sectors, 4.0 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 69D44E96-C337-4D2D-B7AF-5E5F3F497D02
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 8388574
    Partitions will be aligned on 2-sector boundaries
    Total free space is 7169262 sectors (3.4 GiB)
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1              34          195312   95.4 MiB    0700  primary
       2          195314         1219313   500.0 MiB   8300  Linux filesystem
    
    # 保存信息退出
    Command (? for help): w
    
    Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
    PARTITIONS!!
    
    # 输入y即可
    Do you want to proceed? (Y/N): y
    OK; writing new GUID partition table (GPT) to /dev/sdc.
    The operation has completed successfully.
    # 可以看到已经完成分区
    [root@virtue ~]# ls /dev/sdc*
    /dev/sdc  /dev/sdc1  /dev/sdc2
    

    分区工具还有一个cfdisk,但不是本文所说重点,读者可以自行查阅相应操作方法。

    扩展swap分区

    我们可以将添加的磁盘空间分配给swap增加swap空间

    # 查看当前的内存信息
    [root@virtue ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:          16048       10709        4949           8         389        5108
    Swap:          2047           0        2047
    # 将刚才划分的/dev/sdc2格式化为swap文件系统
    # 此时会有UUID,以后如果想要自动挂载填写此UUID即可
    [root@virtue ~]# mkswap /dev/sdc2 
    正在设置交换空间版本 1,大小 = 511996 KiB
    无标签,UUID=a0bc1b30-1b18-40c4-b88e-2ad274243f26
    # 查看内存情况,发现swap空间并没有变化
    [root@virtue ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:          16048       10709        4950           8         389        5108
    Swap:          2047           0        2047
    # 开启/dev/sdc2的swap功能(不知道怎么表达了,理解意思吧)
    [root@virtue ~]# swapon /dev/sdc2 
    # 再查看内存空间可以看到swap增加了500M容量(之前划分的/dev/sdc2是500M磁盘空间)
    [root@virtue ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:          16048       10710        4949           8         389        5107
    Swap:          2547           0        2547
    # 此时可以看到swap空间是两块盘,其中一块是/dev/sdc2
    [root@virtue ~]# swapon -s
    文件名             类型      大小  已用  权限
    /dev/dm-0                               partition   2097148 0   -1
    /dev/sdc2                               partition   511996  0   -2
    
    # 如果想要开机挂载,执行以下语句
    # 注意:一定要是追加,一定要是追加
    [root@virtue ~]# echo "UUID=a0bc1b30-1b18-40c4-b88e-2ad274243f26    swap    swap    defaults    0 0" >> /etc/fstab 
    # 如果想要从swap中卸载/dev/sdc2,只需要执行以下命令
    [root@virtue ~]# swapoff /dev/sdc2
    # 内存信息有变更回去了
    [root@virtue ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:          16048       10709        4949           8         389        5108
    Swap:          2047           0        2047
    # 此时swap盘就只有一个了
    [root@virtue ~]# swapon -s
    文件名             类型      大小  已用  权限
    /dev/dm-0                               partition   2097148 0   -1
    

    我们还可以通过文件的方式增加swap空间

    # 进入相应目录
    [root@virtue ~]# cd /mnt/
    # 创建文件
    # if表示数据从哪里来,of表示数据到哪里去,bs表示一次读入多少数据,count表示写入多少次
    # /dev/zero:用处之一就是用0去填充一个文件,直到你需要的大小为止;它主要是用于向设备或文件写入NULL
    [root@virtue mnt]# dd if=/dev/zero of=swapfile bs=1M count=100
    记录了100+0 的读入
    记录了100+0 的写出
    104857600字节(105 MB)已复制,0.781178 秒,134 MB/秒
    # 查看文件大小
    [root@virtue mnt]# ll
    总用量 102400
    -rw-r--r--. 1 root root 104857600 1月  19 14:21 swapfile
    [root@virtue mnt]# du -sh swapfile 
    100M    swapfile
    # 修改文件权限(此一步非必要步骤)
    [root@virtue mnt]# chmod 600 swapfile 
    [root@virtue mnt]# ll
    总用量 102400
    -rw-------. 1 root root 104857600 1月  19 14:21 swapfile
    # 格式化文件为swap文件类型
    [root@virtue mnt]# mkswap -f swapfile 
    正在设置交换空间版本 1,大小 = 102396 KiB
    无标签,UUID=0ce3fad9-8378-4547-9d86-39125de4b524
    [root@virtue mnt]# ll
    总用量 102400
    -rw-------. 1 root root 104857600 1月  19 14:27 swapfile
    # 查看内存并没有变化
    [root@virtue mnt]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:          16048       10711        4741           8         595        5103
    Swap:          2047           0        2047
    # 挂载文件作为swap空间
    [root@virtue mnt]# swapon swapfile
    # swap增加了100M空间
    [root@virtue mnt]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:          16048       10712        4741           8         595        5103
    Swap:          2147           0        2147
    # 可以看到,swap中有文件的挂载
    [root@virtue mnt]# swapon -s
    文件名             类型      大小  已用  权限
    /dev/dm-0                               partition   2097148 0   -1
    /mnt/swapfile                           file    102396  0   -2
    # 如果卸载还是使用swapoff
    [root@virtue mnt]# swapoff swapfile 
    # 可以看到内存空间又变回去了
    [root@virtue mnt]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:          16048       10712        4741           8         595        5103
    Swap:          2047           0        2047
    # 此时swap又是只剩一块盘挂载了
    [root@virtue mnt]# swapon -s
    文件名             类型      大小  已用  权限
    /dev/dm-0                               partition   2097148 0   -1
    

    相关文章

      网友评论

          本文标题:centos7磁盘管理

          本文链接:https://www.haomeiwen.com/subject/bezroxtx.html