我有一个 10 GB 的 root lvm,其中大部分都已使用,还有一个 877 GB 的 /home lvm。我想调整 /home lvm 的大小以释放空间,然后将其分配给 root。我不清楚是否可以在挂载时动态调整分区大小,但据我所知,这是不可能的。另外,据我所知,除非我使用救援磁盘,否则我无法卸载 /home 或 root。
通常,如果我想调整无法卸载的磁盘分区的大小,我会使用 gparted 实时磁盘。但据我所知,gparted 仅适用于“真实”分区,无法对 lvm 分区进行操作。那么,访问未挂载分区并调整其大小的最佳方法是什么?
谢谢,
莫里斯
答案1
LVM 使这变得相当简单和直接。lvreduce 必须卸载您想要缩小的文件系统,但要扩展的文件系统可以在挂载时执行此操作。
脚步:1 备份 - 2 减少主 LV - 3 检查 - 4 增加根 LV - 5 检查 - 6 备份配置
只需要步骤 2 和 4 - 其余只是很好的练习。我还建议通过运行来记录整个过程script
。
笔记:示例输出中的卷组称为 tetrad(与主机名相同),您需要将卷组的名称插入命令中。示例输出是从存档日志中收集的,可以从 resize2fs 命令的不同版本号中推断出来。
备份(至少备份您当前的配置)。将备份复制到正在修改的卷组之外的某个位置。
root@tetrad:~/Documentation/LVM# vgcfgbackup -f tetrad-vgcfg-2014-10-09-before-2
降低家庭lv
root@tetrad# lvresize --resizefs -L -35G /dev/mapper/tetrad-export
resize2fs 1.42 (29-Nov-2011) Resizing the filesystem on /dev/mapper/tetrad-export to 23955456 (4k) blocks. The filesystem on /dev/mapper/tetrad-export is now 23955456 blocks long. Reducing logical volume export to 91.38 GiB Logical volume export successfully resized
检查(可选),像步骤 1 一样备份当前状态。您会注意到步骤 4 对进行了备份
/etc/lvm/backup/<vgname>
,但是由于这是在被修改的文件系统上,因此您希望将副本放在其他地方。root@tetrad# pvs PV VG Fmt Attr PSize PFree /dev/sda3 tetrad lvm2 a- 201.14g 37.76g
生根 lv
root@tetrad:~/Documentation/LVM# lvextend -L +2G /dev/mapper/tetrad-root -r -v Finding volume group tetrad Executing: fsadm --verbose check /dev/tetrad/root fsadm: "ext4" filesystem found on "/dev/mapper/tetrad-root" fsadm: Skipping filesystem check for device "/dev/mapper/tetrad-root" as the filesystem is mounted on / fsadm failed: 3 Archiving volume group "tetrad" metadata (seqno 27). Extending logical volume root to 26,00 GiB Found volume group "tetrad" Found volume group "tetrad" Loading tetrad-root table (252:0) Suspending tetrad-root (252:0) with device flush Found volume group "tetrad" Resuming tetrad-root (252:0) Creating volume group backup "/etc/lvm/backup/tetrad" (seqno 28). Logical volume root successfully resized Executing: fsadm --verbose resize /dev/tetrad/root 27262976K fsadm: "ext4" filesystem found on "/dev/mapper/tetrad-root" fsadm: Device "/dev/mapper/tetrad-root" size is 27917287424 bytes fsadm: Parsing tune2fs -l "/dev/mapper/tetrad-root" fsadm: Resizing filesystem on device "/dev/mapper/tetrad-root" to 27917287424 bytes (6291456 -> 6815744 blocks of 4096 bytes) fsadm: Executing resize2fs /dev/mapper/tetrad-root 6815744 resize2fs 1.42.9 (4-Feb-2014) Filesystem at /dev/mapper/tetrad-root is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 2 The filesystem on /dev/mapper/tetrad-root is now 6815744 blocks long.
您已完成。现在让我们欣赏结果并保留当前状态的备份。
- 检查一下
pvs
,lvs
- 备份配置并将副本存储在单独的文件系统上以便安全保管。