说明
- 磁盘使用 LVM
/dev/mapper/ArchinstallVg-root:/:逻辑卷大小为 32G
/dev/mapper/ArchinstallVg-home:/home:逻辑卷大小为 97G
ArchinstallVg:VG Name
[root@archlinux ~]# df -h
Filesystem Size Used Avail Use% Mounted on
dev 1.9G 0 1.9G 0% /dev
run 2.0G 620K 2.0G 1% /run
/dev/mapper/ArchinstallVg-root 32G 2.3G 28G 8% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
none 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service
tmpfs 2.0G 0 2.0G 0% /tmp
/dev/sda1 1022M 79M 944M 8% /boot
/dev/mapper/ArchinstallVg-home 97G 2.1M 92G 1% /home
none 1.0M 0 1.0M 0% /run/credentials/getty@tty1.service
tmpfs 391M 4.0K 391M 1% /run/user/0
[root@archlinux ~]#
需求
- 逻辑卷
/home 到指定容量(如:5G)
- 逻辑卷
/ 增加指定容量(如:20G)
注意事项
- 操作前务必备份重要数据 。虽然 LVM 调整相对安全,但一旦出错可能导致数据丢失。
- 缩小文件系统时,强烈建议先卸载 目标分区(此处为
/home ),避免数据损坏。
- 请确认
/home 当前没有活跃进程在使用(如用户登录、服务写入)。可以运行 lsof | grep /home 或 fuser -m /home 检查。若有,需先关闭或切换到单用户模式。
- 以下示例假设
/home 使用 ext4 文件系统(Arch Linux 默认常用)。如果实际是其他类型(如 xfs、btrfs),缩小操作可能不同或不可行。请先用 blkid /dev/mapper/ArchinstallVg-home 或 mount | grep home 确认类型。
操作
# 使用以下任意命令,检查 /home 当前没有活跃进程在使用(如用户登录、服务写入)
lsof | grep /home
fuser -m /home
# 检查当前卷组空闲空间
vgdisplay ArchinstallVg
[root@archlinux ~]# vgdisplay ArchinstallVg
--- Volume group ---
VG Name ArchinstallVg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <131.00 GiB
PE Size 4.00 MiB
Total PE 33535
Alloc PE / Size 33471 / <130.75 GiB
Free PE / Size 64 / 256.00 MiB
VG UUID dwHpUC-KIyf-V5ZR-u8LW-TxKa-vArj-Wg8wFR
[root@archlinux ~]#
# 卸载 /home
umount /home
# 如果提示设备忙,可以先进入救援/单用户模式:
# systemctl isolate rescue.target # 或添加 `single` 内核参数重启
# 强制检查 /home 文件系统(缩小前必须执行)
e2fsck -f /dev/mapper/ArchinstallVg-home
# 缩小文件系统到目标大小(例如 5G)
resize2fs /dev/mapper/ArchinstallVg-home 5G
# 缩小逻辑卷到相同大小
lvreduce -L 5G /dev/mapper/ArchinstallVg-home
# 重新挂载 /home 并检查
mount /home
df -h /home
# 逻辑卷 / 增加指定容量 20G
lvextend -L +20G /dev/mapper/ArchinstallVg-root
# 将卷组中所有空闲空间扩展给根逻辑卷
# lvextend -l +100%FREE /dev/mapper/ArchinstallVg-root
# 扩展根文件系统以使用新空间
resize2fs /dev/mapper/ArchinstallVg-root
# 如果根是 xfs,则使用 xfs_growfs /
# 验证结果
df -h /
df -h /home
[root@archlinux ~]# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ArchinstallVg-root 51G 2.3G 47G 5% /
[root@archlinux ~]# df -h /home
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ArchinstallVg-home 4.4G 2.1M 4.2G 1% /home
[root@archlinux ~]#
vgdisplay ArchinstallVg
[root@archlinux ~]# vgdisplay ArchinstallVg
--- Volume group ---
VG Name ArchinstallVg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <131.00 GiB
PE Size 4.00 MiB
Total PE 33535
Alloc PE / Size 14592 / 57.00 GiB
Free PE / Size 18943 / <74.00 GiB
VG UUID dwHpUC-KIyf-V5ZR-u8LW-TxKa-vArj-Wg8wFR
[root@archlinux ~]#