发现添加的硬盘
centos系统添加硬盘后,有两种方式可以发现添加的硬盘:
- 重启服务器
- 通过命令
通过命令方式发现硬盘:
# 手动执行
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
文件挂载
挂载点设置
- 可以把格式化后的分区挂载到现有的目录上
- 也可以创建一个目录做为挂载点使用
挂载
如果直接挂载在现有的目录上,原目录中内容就会“消失”而显示新挂载点的内容。原有目录内容其实并没有消失,只不过是目录不再指向原有内容了。
挂载使用的命令是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
网友评论