Ubuntu 18.04在Lvm和加密文件系统下增加Swap

lev*_*n89 36 encryption partitioning lvm swap

我全新安装了 Ubuntu 18.04 桌面版。

我使用了图形安装程序并选择了“加密新的 Ubuntu 安装以确保安全”。

它默认使用 LVM 并为交换而不是文件创建一个分区。这是sudo swapon -s结果:

eviatan89@leviatan89-K55VD:~$ sudo swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-2                               partition   1003516 999448  -2
Run Code Online (Sandbox Code Playgroud)

我需要增加大小,因为我在 RAM 上运行时遇到很多问题。

出于好奇,在使用 Cassandra 和 Firefox 以及多个打开的选项卡(包括 YouTube)时会出现问题。我的系统有 6GB 的内存。

非常感谢你的帮助!

Mar*_*n W 41

最简单的解决方案是添加交换文件。如果你已经在加密你的根文件系统,我不会打扰加密交换文件,它只是稍微困难一点,但速度更慢。交换文件的优点是您可以稍后将其删除以重新获得磁盘空间。而且磁盘已经加密了!

步骤很简单。首先,制作文件。例如,这将产生 1GB 的新交换:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k
Run Code Online (Sandbox Code Playgroud)

of=/swapfile通知dd把新的交换文件/swapfile。你可以随意称呼它。您也可以添加多个交换文件。对于最新的 Linux 内核,速度与交换分区相同。

然后,您需要将交换文件格式化为交换空间,如下所示:

sudo mkswap /swapfile
Run Code Online (Sandbox Code Playgroud)

此命令将为您提供一些输出,例如:

Setting up swapspace version 1, size = 1048576 KiB

no label, UUID=83352590-ef57-49f5-84c4-7fb847e4e4e0
Run Code Online (Sandbox Code Playgroud)

这就是你的新交换文件。最后,您需要使用以下命令在您的机器上激活交换:

sudo swapon /swapfile
Run Code Online (Sandbox Code Playgroud)

现在,sudo swapon -s应该显示交换分区和交换文件。

然后我建议通过更改权限来增加一些安全性,如下所示:

sudo chown root:root /swapfile
sudo chmod 0600 /swapfile
Run Code Online (Sandbox Code Playgroud)

如果到目前为止一切看起来都不错,您可以通过将以下行添加到/etc/fstab使用您最喜欢的编辑器来永久添加交换文件:

/swapfile       none    swap    sw      0       0
Run Code Online (Sandbox Code Playgroud)

当然,您可以添加多个交换文件。您可以使用sudo swapoff /swapfile.

希望这可以帮助。

  • 块大小参数“bs”以字节为单位。因此,1024k 或 100 万个 1KB 块的计数为 1GB。 (5认同)
  • 谢谢!有效。这是我用于添加 4G 交换文件的 dd 命令:sudo dd if=/dev/zero of=/swapfile bs=1024 count=4096k (4认同)
  • 由于 OP 使用 LVM,因此[只需调整 `swap` 卷的大小](https://askubuntu.com/questions/1031275/increase-swap-in-ubuntu-18-04-under-lvm- and-encrypted-file-system/1193661#1193661) 使用 `kpvm`。 (2认同)

cRA*_*ere 6

添加到顶部答案。因为我没有评论的声誉。道歉。

如果您尝试增加交换空间并且已经分配了交换空间。

警告:关闭使用交换空间的应用程序。

首先,这样做否则你会得到一个错误

sudo swapoff -a
Run Code Online (Sandbox Code Playgroud)

然后按照上面的说明进行操作。

此外,上述过程将擦除之前的交换空间,因此如果您有 2 Gigs 的交换空间并想要额外的 6 Gigs,则必须分配新的 9 Gigs 交换空间。或者将交换文件命名为与其他交换文件不同的名称。

sudo dd if=/dev/zero of=/swapfile2 bs=1024 count=6144k
Run Code Online (Sandbox Code Playgroud)

错误:

~ $sudo dd if=/dev/zero of=/swapfile bs=1024 count=6144k                     
dd: failed to open '/swapfile': Text file busy
Run Code Online (Sandbox Code Playgroud)

注意:这是@Martin W答案的建议扩展