在 Ubuntu 18.04 中 Lvm 和加密文件系统下增加交换空间

在 Ubuntu 18.04 中 Lvm 和加密文件系统下增加交换空间

我全新安装了 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

我需要增加尺寸,因为我遇到了很多内存不足的问题。

好奇的是,使用 Cassandra 和 Firefox 打开多个标签(包括 YouTube)时会出现问题。我的系统有 6GB 的 RAM。

非常感谢你的帮助!

答案1

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

步骤很简单。首先,创建文件。例如,这将创建 1GB 的新交换:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k

指示将新的交换文件放入。您可以随意命名它。您也可以添加多个交换of=/swapfile文件。对于较新的 Linux 内核,速度与交换分区相同。dd/swapfile

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

sudo mkswap /swapfile

此命令将给出一些输出,例如:

Setting up swapspace version 1, size = 1048576 KiB

no label, UUID=83352590-ef57-49f5-84c4-7fb847e4e4e0

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

sudo swapon /swapfile

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

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

sudo chown root:root /swapfile
sudo chmod 0600 /swapfile

如果到目前为止一切顺利,您可以使用您最喜欢的编辑器添加以下行来永久添加交换文件/etc/fstab

/swapfile       none    swap    sw      0       0

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

希望这可以帮助。

答案2

添加到最佳答案。因为我没有资格发表评论。抱歉。

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

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

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

sudo swapoff -a

然后按照上面的指示进行操作。

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

sudo dd if=/dev/zero of=/swapfile2 bs=1024 count=6144k

错误:

~ $sudo dd if=/dev/zero of=/swapfile bs=1024 count=6144k                     
dd: failed to open '/swapfile': Text file busy

笔记:这是对@Martin W 的建议扩展回答

答案3

请注意,如果您的安装使用 LVM,您可能已经有一个交换卷。使用 检查kvpm。如果不是这种情况,以下是创建新的 4GB 交换文件的简明步骤。首先关闭所有使用交换空间的应用程序(或重新启动您的机器)。然后:

sudo swapoff -a                                    # Turn off all swap space.
sudo rm /swapfile                                  # Delete current swap file.
sudo dd if=/dev/zero of=/swapfile bs=1G count=4    # Make a new 4GB swap file.
sudo chown root:root /swapfile                     # Set owner to root, group root
sudo chmod 0600 /swapfile                          # Set permission to root
sudo mkswap /swapfile                              # Convert file to swap format
sudo swapon /swapfile                              # Enable swap space

运行htop或其他系统监视器检查新交换是否生效。如果一切正常,请将以下行添加到 以使交换文件永久生效/etc/fstab

/swapfile       none    swap    sw      0       0

答案4

本答案基于 Ubuntu 22.04 LTS

减少根并增加交换(备份重要数据!)

复制我的答案增加加密交换的大小

这里我们将根目录减少 -40G 并增加交换 +40G:

# Boot Ubuntu Live/Flash/"Try Ubuntu" AND open terminal
# Run subsequent commands as superuser
sudo su
    # `sudo`    => Execute a command as another user.
    # `sudo su [user]` => Run a command with substitute user, default is root.

# Encrypted device should NOT be unlocked
lsblk # => list block devices
    # └─sda6 => no `crypt`/`lvm``
# Unlock encrypted device
cryptsetup open /dev/sda6 crypt # Enter passphrase
    # `cryptsetup` => Manage dm-crypt + LUKS encrypted volumes.
    # `cryptsetup open <device> <name>` => Opens encrypted lv as <name>

# Get logical volume identifiers
lsblk
    # └─sda6                  8:6    0 464,6G  0 part
    #   └─sda6_crypt        253:0    0 464,5G  0 crypt
    #     ├─vgubuntu-root   253:1    0 463,6G  0 lvm   /
    #     └─vgubuntu-swap_1 253:2    0   980M  0 lvm   [SWAP]

# Shrink logical root volume AND filesystem
lvresize --verbose --resizefs -L -40G /dev/mapper/vgubuntu-root
    # `lvresize` <volume> => resize a logical volume
    #   --verbose  => Give more info.
    #   --resizefs => Resize filesystem AND LV with fsadm(8).
    #   -L         => Specifies the new size of the LV, 
    #                 +/- add/subtracts to/from current size, g|G is GiB.

# Check filesystem of logical root volume for errors
e2fsck -f /dev/mapper/vgubuntu-root
    # `e2fsck`<fs-path> => Check a Linux ext2/ext3/ext4 file system
    #   -f => Force checking even if the file system seems clean.

# Increase swapsize
lvresize --verbose -L +40G /dev/mapper/vgubuntu-swap_1

重启后,Ubuntu 应该正常启动,swap 应该调整大小:

lslbk
   # └─sda6                  8:6    0 464,6G  0 part  
   #   └─sda6_crypt        253:0    0 464,5G  0 crypt 
   #     ├─vgubuntu-root   253:1    0 423,6G  0 lvm   /
   #     └─vgubuntu-swap_1 253:2    0    41G  0 lvm   [SWAP]

相关内容