centos7磁盘管理

2018-01-19  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读