Linux创建交换分区
目录
方法一:使用物理分区创建Swap分区
1.检查磁盘空间
2.创建分区
3.格式化分区
4.永久挂载(/etc/fstab)
5.启用交换分区
方法二:使用文件创建内存交换文件
交换分区(Swap Partition)在 Linux 系统中是一种特殊的磁盘分区。它的主要功能是作为内存(RAM)的补充,当系统的物理内存(Random Access Memory)不够用的时候,操作系统会将一部分暂时不使用的内存数据移动到交换分区中,从而为当前正在运行的程序腾出物理内存空间。这就好比是一个备用的 “仓库”,当主仓库(物理内存)装满时,可以把一些暂时不用的 “货物”(数据)存放到备用仓库(交换分区)里。
交换分区大小的选择:交换分区的大小一般依据系统的内存大小来确定。
系统内存(G) | 交换分区大小(G) | 说明 |
---|---|---|
<4 | 2-4 | 如果系统内存小于 4GB,交换分区大小通常建议设置为内存大小的 1 - 2 倍 |
4-16 | 12 | 对于内存大小在 4GB - 16GB 之间的系统,交换分区可以设置为内存大小的 1.5 倍左右 |
>16 | 16-32 | 当系统内存大于 16GB 时,交换分区大小可以设置为内存大小的 0.5 - 1 倍 |
方法一:使用物理分区创建Swap分区
1.检查磁盘空间
使用命令lsblk来查看磁盘的分区情况和可用空间
[root@centos7-171 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─centos_centos7--171-root 253:0 0 45.1G 0 lvm /
└─centos_centos7--171-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
sr0 11:0 1 4.4G 0 rom
[root@centos7-171 ~]#
由上可以看出,sdb盘共5G容量,剩余5G可用,下面就使用该盘创建4G的交换分区。
2.创建分区
命令:fdisk /dev/sdb
(1)建立新的分区:
输入 p 打印现有分区情况(还没有分区)
输入 n 新建分区
输入 p 为建立主分区(此时的p是在n后的,不是打印)
分区号选择可以直接回车,选择默认
分区起始位置可以直接回车,选择默认
分区结束位置输入 +4G(创建4G大小的分区)
输入 p 打印分区情况,发现已建立一个分区/dev/sdb1,但是此分区为 Linux 格式
(2)改变系统标识符:
输入 t 改变分区1的属性
输入 L 查看有个属性对应的命令
输入 82 改变分区1为 Linux swap标识
输入 p 打印分区情况,发现建立的分区 /dev/sdb1 为 Linux swap
输入 w 保存并退出分区
[root@centos7-171 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x3975c095 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3975c095
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+4G
分区 1 已设置为 Linux 类型,大小设为 4 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3975c095
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 8390655 4194304 82 Linux swap / Solaris
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@centos7-171 ~]#
3.格式化分区
创建分区后,需要将其格式化为交换分区格式,使用mkswap
命令。
[root@centos7-171 ~]# mkswap /dev/sdb1
正在设置交换空间版本 1,大小 = 4194300 KiB
无标签,UUID=89d90739-5def-44aa-9273-d3dea6310714
[root@centos7-171 ~]#
4.永久挂载(/etc/fstab)
blkid #查询分区的UUID
#将挂载内容配置到/etc/fatab文件下,实现永久挂载
echo 'UUID=89d90739-5def-44aa-9273-d3dea6310714 swap swap defaults 0 0' >> /etc/fstab
5.启用交换分区
使用swapon
命令来启用新创建的交换分区。
swapon -a //刷新swap分区,测试 fstab 挂载是否正常
swapon -s //列出正在使用的Swap分区设备
方法二:使用文件创建内存交换文件
dd if=/dev/zero of=/var/swapd bs=1G count=4 #创建交换文件
mkswap /var/swapd #格式化为交换空间
chmod 0644 /var/swapd #设置文件权限
echo '/var/swapd swap swap default 0 0' >> /etc/fstab #配置永久挂载
swapon -a #刷新swap分区,测试 fstab 挂载是否正常
dd命令的用法:
dd if=/dev/zero of=/var/swapd bs=1G count=4
if 是input file的意思(输入文件),/dev/zero是一直输入0的设备
of 是output file的意思(输出文件),一般指定到目标文件
bs 是每个block 的大小,就像文件系统那样的block意义
count 则是总共几个bs的意思,故bs*count就是文件容量
of 的目标文件不需要提前touch创建,如果文件不存在会自动创建