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)
这个答案基于 Ubuntu 22.04 LTS
\nlslbk\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]\nRun Code Online (Sandbox Code Playgroud)\n之前没有解决的一件事是,为了增加lvm 交换大小,必须减少lvm 根大小lvm 根大小!
\n(至少当lsblk(如上)表明 root + swap 构成了整个加密设备时。)
这里我们减少 root -40G 并增加 swap +40G:
\nlslbk\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]\nRun 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``\nRun Code Online (Sandbox Code Playgroud)\n重新启动后,Ubuntu应该正常启动,swap应该调整大小:
\nlslbk\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]\nRun Code Online (Sandbox Code Playgroud)\n如果系统监视器仍然只有初始的1G则需要重写逻辑交换设备:
\nswapon --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\nRun Code Online (Sandbox Code Playgroud)\n
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)