3
2月
2022
15:46

在 Linux 中创建交换文件 (SWAP) 作为磁盘根 (/) 中的文件

3 2月 2022 15:46

在 Windows 中,您可以更改页面文件的大小。 对于 Linux 来说不能这样说 - 在磁盘的初始分区期间,会创建一个固定大小的 SWAP 分区。 这一点也不方便,因为...您无法更改分页文件的大小。 解决方案是将交换文件实现为磁盘根目录中的“swapfile”文件。

最初的问题与页面文件间接相关 - fsck 检查命令抛出错误 “fsck:/etc/fstab:第 11 行解析错误” 并完成了工作。

我必须删除第 11 行,该行指示分页文件所在磁盘的 UUID。
但没有交换文件就无法工作。

团队

free -m

应显示交换文件正在使用中(第二行):

всего занято свободно общая буф./врем. доступно
Память: 2974 815 1039 54 1119 1943
Подкачка: 2047 0 2047

在解决这个问题的同时,我发现了一个有趣的方法来提高Linux的性能——创建交换文件作为文件 “根” 磁盘。 这种方法的优点:运行更可靠(通过fstab连接主分区时,自动连接交换)以及能够轻松更改交换文件的大小。 使用 SSD 驱动器时,就速度而言,分页文件的物理位置(驱动器的开头或结尾)根本不重要。

命令如下:

1) 重新启动计算机。 在GRUB2的初始菜单中,选择 “高级系统设置”-“根”,
输入密码并进入超级用户命令行( # )。

2)在磁盘根目录下为交换文件创建一个空文件(对于2GB大小的交换文件,命令如下)
并分配权利,启用 SWAP:

dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

3)为了让系统启动时使用该文件,编辑该文件 /etc/fstab

应删除与 SWAP 相关的旧行(CTRL+ K),并添加以下内容:

/swapfile none swap defaults 0 0

4)我运行命令来更新系统内核:

sudo update-initramfs -u

5)重新启动。

shutdown -rF now

现在,在系统程序“gparted”中,您可以删除“swap”分区:它不再使用! 我们使用前一个“交换”分区的可用空间来扩展主分区“/”或主分区“/home”(鼠标右键 - 调整大小 | 移动)。


要对运行操作系统的整个工作磁盘进行 fsck:

sudo touch /forcefsck

我们让计算机重新启动。 如果EXT4文件系统有问题,会在下次启动时检查并修复:

shutdown -rF now

以后要更改 SWAP 大小,只需启动到“高级恢复选项”,再次进入 root,删除该文件

swapoff /swapfile
rm /swapfile

并重复上面第 2 点的命令,但使用不同的页面文件大小,例如 4 GB:

dd if=/dev/zero of=交换文件 bs=1M 计数=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

检查:

free -m


相关出版物