这是我的设置
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 238.5G 0 disk
├─nvme0n1p1 259:1 0 100M 0 part /boot/efi
├─nvme0n1p2 259:2 0 250M 0 part /boot
└─nvme0n1p3 259:3 0 238.1G 0 part
└─Be-Water-My-Friend 254:0 0 238.1G 0 crypt
├─Arch-swap 254:1 0 2G 0 lvm [SWAP]
└─Arch-root 254:2 0 236.1G 0 lvm /
我有一个主 LUKS2 加密分区 ( nvme0n1p3
),其中一个 LVM 卷组 ( Be-Water-My-Friend
) 包含两个逻辑卷Arch-swap
和Arch-root
。
这Arch-root
是一个BTFS。
当我设置它时,我只选择了 2GB 的交换空间,结果不足以满足我的需求。我想将交换空间增加到 24GB。
为此,我想我需要
- 通过 USB live key 启动
- 解密LUKS2分区
- 安装
Arch-root
卷 - 缩小
Arch-root
文件系统btrfs filesystem resize -22g
- 删除
Arch-swap
逻辑卷 - 重新创建
Arch-swap
逻辑卷,占用卷组中的所有可用空间Be-Water-My-Friend
。
我有什么遗漏的吗?我真的不想搞砸了!
答案1
您需要在 4 到 5 之间执行一个额外步骤 -Arch-root
使用缩小逻辑卷lvresize -L-22G Arch/root
(lvresize
可以选择--resizefs
调整 LV 和文件系统的大小,但它目前不支持 btrfs,因此您不能在此处使用它)。这个答案很好地解释了调整文件系统大小(在您的情况下是 btrfs)和块设备(LVM 逻辑卷)之间的区别。
您可能还想使用--uuid
withmkswap
为新交换设置旧交换 UUID。在 GRUB 和 GRUB 中,交换通常不使用 UUID 来引用/etc/fstab
,但使用旧的 UUID 可能会避免一些问题。
另外,如果您只是想要更大的交换,您可以创建一个btrfs 上的交换文件并将其用作第二次交换。
答案2
一个小修正:
第 2 步应该是:开锁LUKS2 分区(使用一个cryptsetup open --type luks ...
或等效命令)。
应添加步骤 2.5:验证Arch
卷组是否存在并确保它已被激活,例如vgscan; vgchange -ay Arch
。 (根据您使用的实时媒体,系统可能会也可能不会在加密分区解锁时自动激活 VG。)
应添加步骤 4.5:在确定 LV 内的文件系统已成功收缩后收缩 LV:
lvresize -L-22G Arch/root
另外,Be-Water-My-Friend
是访问加密设备的名称,因此也是 LVM 物理卷 ( /dev/mapper/Be-Water-My-Friend
) 的名称。
LVM 卷组的名称很简单Arch
。在lsblk
列表中,LVM 逻辑卷的名称以 的形式呈现VGname-LVname
,因此eg表示卷组中的Arch-swap
逻辑卷。swap
Arch
如果 VG/LV 名称包含连字符(减号),这些连字符将加倍,以区别于用作 VG 和 LV 名称之间分隔符的单个连字符。