增加加密交换的大小

xen*_*ndi 9 boot swap cryptswap

默认情况下,Ubuntu 18.04 在每次启动期间使用 dm-crypt/Swap 加密创建随机加密交换。对我来说,这是创建一个 1gb 的交换,但我找不到在哪里增加它在每次启动时创建的交换的大小。我们如何增加每次启动期间分配的交换大小?我不想切换到静态交换文件。没有/swapfile或分区。

这似乎是一项新功能,每次系统启动时都会动态创建交换。我怎样才能增加它?

来自/etc/crypttab

nvme0n1p3_crypt UUID=1e092df8-5c37-4409-8ac8-361402244f69 none luks,discard
cryptswap1 UUID=aba1b825-a77b-4384-a40f-fdc6fdaaced0 /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
Run Code Online (Sandbox Code Playgroud)

来自/etc/fstab

/dev/mapper/cryptswap1 none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
# swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-3                               partition   1003004 601088  -2
Run Code Online (Sandbox Code Playgroud)

顶

gparted 不显示任何交换分区。这是唯一的驱动器。

分道扬镳

在此处的答案中,建议执行以下操作:

sudo swapoff -a  
sudo cryptsetup resize cryptswap1 --size (in sectors)  
sudo mkswap /dev/cryptswap1  
sudo swapon -a  
Run Code Online (Sandbox Code Playgroud)

所以,我跑:cryptsetup resize cryptswap1 --size 7812500。这导致错误:Device /dev/mapper/mint--vg-swap_1 is too small.

所以我尝试: cryptsetup resize /dev/mapper/mint--vg-swap_1 --size 7812500

这不会产生错误,但parted --list; fdisk -l不会显示任何变化:

Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/cryptswap1: 979.5 MiB, 1027080192 bytes, 2006016 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Run Code Online (Sandbox Code Playgroud)

并尝试再次运行cryptsetup resize cryptswap1 --size 7812500产品Device /dev/mapper/mint--vg-swap_1 is too small.

我也试过:resize2fs /dev/mapper/mint--vg-swap_1 -s 4G它产生了:

resize2fs 1.44.1 (24-Mar-2018)
resize2fs: Device or resource busy while trying to open /dev/mapper/mint--vg-swap_1
Couldn't find valid filesystem superblock.
Run Code Online (Sandbox Code Playgroud)
# lsblk
NAME                  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop0                   7:0    0  54.6M  1 loop  /snap/core18/1279
loop1                   7:1    0  89.1M  1 loop  /snap/core/8213
loop2                   7:2    0  89.1M  1 loop  /snap/core/8268
loop3                   7:3    0 497.4M  1 loop  /snap/wickrme/246
loop4                   7:4    0 497.2M  1 loop  /snap/wickrme/247
loop5                   7:5    0  54.6M  1 loop  /snap/core18/1288
nvme0n1               259:0    0 465.8G  0 disk  
??nvme0n1p1           259:1    0   512M  0 part  /boot/efi
??nvme0n1p2           259:2    0   732M  0 part  /boot
??nvme0n1p3           259:3    0 464.6G  0 part  
  ??nvme0n1p3_crypt   253:0    0 464.6G  0 crypt 
    ??mint--vg-root   253:1    0 463.6G  0 lvm   /
    ??mint--vg-swap_1 253:2    0   980M  0 lvm   
      ??cryptswap1    253:3    0 979.5M  0 crypt [SWAP]
Run Code Online (Sandbox Code Playgroud)

gou*_*oup 9

这个答案基于 Ubuntu 22.04 LTS

\n
lslbk\n   # \xe2\x94\x94\xe2\x94\x80sda6                  8:6    0 464,6G  0 part  \n   #   \xe2\x94\x94\xe2\x94\x80sda6_crypt        253:0    0 464,5G  0 crypt \n   #     \xe2\x94\x9c\xe2\x94\x80vgubuntu-root   253:1    0 463,6G  0 lvm   /\n   #     \xe2\x94\x94\xe2\x94\x80vgubuntu-swap_1 253:2    0   980M  0 lvm   [SWAP]\n
Run Code Online (Sandbox Code Playgroud)\n

之前没有解决的一件事是,为了增加lvm 交换大小,必须减少lvm 根大小lvm 根大小!

\n

(至少当lsblk(如上)表明 root + swap 构成了整个加密设备时。)

\n
\n

TL;DR(但请备份重要数据!)

\n

这里我们减少 root -40G 并增加 swap +40G:

\n
lslbk\n   # \xe2\x94\x94\xe2\x94\x80sda6                  8:6    0 464,6G  0 part  \n   #   \xe2\x94\x94\xe2\x94\x80sda6_crypt        253:0    0 464,5G  0 crypt \n   #     \xe2\x94\x9c\xe2\x94\x80vgubuntu-root   253:1    0 463,6G  0 lvm   /\n   #     \xe2\x94\x94\xe2\x94\x80vgubuntu-swap_1 253:2    0   980M  0 lvm   [SWAP]\n
Run Code Online (Sandbox Code Playgroud)\n
# Boot Ubuntu Live/Flash/"Try Ubuntu" AND open terminal\n# Run subsequent commands as superuser\nsudo -i\n    # `sudo`    => Execute a command as another user.\n    # `sudo -i [-u user]` => Run an interactive session with substitute user, default is root.\n    # `sudo [-u user] command` => Run a command with a substitute user, default is root.\n\n# Encrypted device should NOT be unlocked\nlsblk # => list block devices\n    # \xe2\x94\x94\xe2\x94\x80sda6 => no `crypt`/`lvm``\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
lslbk\n    # \xe2\x94\x94\xe2\x94\x80sda6                  8:6    0 464,6G  0 part  \n    #   \xe2\x94\x94\xe2\x94\x80sda6_crypt        253:0    0 464,5G  0 crypt \n    #     \xe2\x94\x9c\xe2\x94\x80vgubuntu-root   253:1    0 423,6G  0 lvm   /\n    #     \xe2\x94\x94\xe2\x94\x80vgubuntu-swap_1 253:2    0    41G  0 lvm   [SWAP]\n
Run Code Online (Sandbox Code Playgroud)\n

如果系统监视器仍然只有初始的1G则需要重写逻辑交换设备:

\n
swapon --show\n    # NAME      TYPE      SIZE USED PRIO\n    # /dev/dm-2 partition 976M   0B   -2\n\nswapoff -v /dev/dm-2\n    # swapoff /dev/dm-2\n\nmkswap /dev/dm-2\n    # mkswap: /dev/dm-2: warning: wiping old swap signature.\n    # Setting up swapspace version 1, size = 41 GiB (43973079040 bytes)\n    # no label, UUID=...\n\nswapon -a\n    # Turn on swapspace\n
Run Code Online (Sandbox Code Playgroud)\n


Jas*_*nF4 4

sudo swapoff -a  
sudo cryptsetup resize cryptswap1 --size (in sectors)  
sudo mkswap /dev/mapper/cryptswap1  
sudo swapon -a  
Run Code Online (Sandbox Code Playgroud)

如果省略 --size,它将使用整个设备。

更新- 基于反馈。 重新启动并确保 mint--vg-swap_1 仍然是 980M。
如果是,请执行以下步骤。-- 首先尝试手动增加容器的大小(我认为这没有必要)。您的评论说您正在尝试进行交换 4G (+3G),因此:

sudo swapoff -a  
sudo lvresize -L+3G /dev/mapper/mint--vg-swap_1
sudo cryptsetup resize cryptswap1 --size 7812500
sudo mkswap /dev/mapper/cryptswap1  
sudo swapon -a  
Run Code Online (Sandbox Code Playgroud)

另一方面,如果 mint--vg-swap_1现在是 4G,则运行此命令(考虑到标头的大小):

sudo swapoff -a  
sudo cryptsetup resize cryptswap1 --size 7808404   
sudo mkswap /dev/mapper/cryptswap1  
sudo swapon -a  
Run Code Online (Sandbox Code Playgroud)

参考