![在 Debian Buster 上使用 LUKS2 时如何增加 LVM](https://linux22.com/image/189102/%E5%9C%A8%20Debian%20Buster%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20LUKS2%20%E6%97%B6%E5%A6%82%E4%BD%95%E5%A2%9E%E5%8A%A0%20LVM.png)
我在配备 250 GB SSD 的 ThinkPad T420 上运行 Debian Buster。由于我需要更多磁盘空间,因此我使用 Clonezilla 将当前的 Debian 安装从内部 250 GB SSD 克隆到通过 USB 转 SATA 适配器连接的新 500 GB SSD。之后我将 250 GB SSD 更换为 500 GB SSD,并使用 GParted live 增加扩展分区(/dev/sda2)和 LVM2 PV 分区(/dev/sda5)的大小。一切正常,系统再次启动并运行。不幸的是,我还不能使用新空间,因为根 LVM 也必须调整大小:
user@debianbook:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465,8G 0 disk
├─sda1 8:1 0 243M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 465,5G 0 part
└─sda5_crypt 254:0 0 465,5G 0 crypt
├─user--deb--vg-root 254:1 0 204,3G 0 lvm /
└─user--deb--vg-swap_1 254:2 0 7,9G 0 lvm [SWAP]
在 /dev/sda5 上增加根 LVM 需要执行哪些步骤?
答案1
就像俄罗斯套娃一样:磁盘 -> MBR 分区方案 -> 扩展分区容器 -> 逻辑分区 -> LUKS -> PV -> VG -> LV-> 文件系统。所以根文件系统不是简单地在/dev/sda5
。
你已经做了什么:
- 放大磁盘
- 扩大扩展分区容器(
/dev/sda2
) - 放大分区 (
/dev/sda5
)
还剩下什么:
LUKS:没有特殊处理。元数据位于开头,因此 LUKS 不受影响。 LUKS(实际上是设备映射器后端)已经应对了大小的变化。只是,如果 LUKS 内部没有将额外空间归零(这对于 SSD 耐用性来说不是一个好主意),则额外未使用的数据将在那里显示为随机数据。
PV:(总结
pvs
)虽然PV可用的潜在空间增加,但必须告知PV才能实际使用它。要占据整个可用空间,不需要特殊选项pvresize
,如中所述手动的:扩大分区后,再扩大PV。
pvresize /dev/sda1
对于你的情况:
pvresize /dev/mapper/sda5_crypt
VG:(与 总结
vgs
)无关,VG 从它使用的 PV 继承其可用大小,因此在 PV 变大后立即显得更大。 VG 是 LVM2 抽象,没有可见的直接设备映射器对应项。LV:(用 总结
lvs
)通用命令lvresize
更好用lvextend
,只能使其更大以确保安全。您可以告诉它使用整个可用空间作为附加空间(但在执行此操作之前请参阅文件系统部分):lvextend -l +100%FREE user-deb-vg/root
文件系统:现在它有更多的可用空间,也可以扩大。
由于它是 Debian 的默认设置,我假设这里使用的是 EXT4。由于
/
已经安装,这必须在在线的EXT4 文件系统(以及其他一些文件系统)支持的模式(意味着必须涉及内核的文件系统驱动程序)。要扩大 LV 提供的可用空间,同样不需要特定的大小选项:resize2fs /dev/mapper/user--deb--vg-root
但实际上最后两个步骤(LV+FS)可以使用此处组合在一个命令中:
lvextend --resizefs -l +100%FREE user-deb-vg/root
其优点是自动检测文件系统并为正确的文件系统运行正确的命令。
您不必使用整个可用大小。您可以选择 +50%FREE 留下 ~ 130GB 作为保留,特别是如果您想稍后创建一个单独的文件系统(在额外的 LV 中)。