已卸载/home分区但无法对对应LVM逻辑卷执行e2fsck的问题求助
已卸载/home分区但无法对对应LVM逻辑卷执行e2fsck的问题求助
我在Ubuntu Server 22.04上使用LVM管理磁盘,当前/var分区空间紧张(已用83%),计划通过缩减/home逻辑卷的空间来扩容/var,但遇到了执行文件系统检查的障碍,具体情况如下:
环境信息
lsblk输出:
root@localhost:/mnt# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 53.3M 1 loop /snap/snapd/19457 loop1 7:1 0 111.9M 1 loop /snap/lxd/24322 loop2 7:2 0 63.4M 1 loop /snap/core20/1974 sda 8:0 0 465.8G 0 disk sdb 8:16 1 0B 0 disk sdc 8:32 1 0B 0 disk sdd 8:48 1 0B 0 disk sde 8:64 1 0B 0 disk sdf 8:80 0 74.5G 0 disk ├─sdf1 8:81 0 1M 0 part ├─sdf2 8:82 0 1G 0 part /boot └─sdf3 8:83 0 73.5G 0 part ├─vg-root 253:0 0 50G 0 lvm / ├─vg-var 253:1 0 7.8G 0 lvm /var ├─vg-usr 253:2 0 60G 0 lvm /usr ├─vg-tmp 253:3 0 8G 0 lvm /tmp └─vg-home 253:4 0 413.5G 0 lvm sdg 8:96 0 465.8G 0 disk ├─vg-root 253:0 0 50G 0 lvm / ├─vg-var 253:1 0 7.8G 0 lvm /var ├─vg-usr 253:2 0 60G 0 lvm /usr └─vg-home 253:4 0 413.5G 0 lvm
df -h输出:
root@localhost:/mnt# df -h Filesystem Size Used Avail Use% Mounted on tmpfs 794M 1.4M 793M 1% /run /dev/mapper/vg-root 50G 4.1G 43G 9% / /dev/disk/by-id/dm-uuid-LVM-Den324vgGMdBQrsjrKyrasUtU1NAEV5lNap1uxEhuN2eMmWivFx921LEtPAxYSDd 59G 3.7G 53G 7% /usr tmpfs 3.9G 4.0K 3.9G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/mapper/vg-home 407G 118G 273G 31% /home /dev/sdf2 974M 131M 777M 15% /boot /dev/mapper/vg-tmp 7.8G 120K 7.4G 1% /tmp /dev/mapper/vg-var 7.6G 6.0G 1.3G 83% /var tmpfs 794M 4.0K 794M 1% /run/user/1000
操作过程与问题
- 我先切换到/mnt目录并以root身份执行了强制卸载:
umount -f /home,之后用lsof /home确认没有进程占用该挂载点。 - 接着我尝试执行文件系统检查:
e2fsck -fy /dev/mapper/vg-home,但得到错误提示:
root@localhost:/mnt# e2fsck -fy /dev/mapper/vg-home e2fsck 1.46.5 (30-Dec-2021) /dev/mapper/vg-home is in use. e2fsck: Cannot continue, aborting.
- 我又用
lsof /dev/mapper/vg-home检查,依然没有找到相关运行进程。
补充:lvscan输出:
ACTIVE '/dev/vg/root' [50.00 GiB] inherit ACTIVE '/dev/vg/var' [<7.76 GiB] inherit ACTIVE '/dev/vg/usr' [60.00 GiB] inherit ACTIVE '/dev/vg/tmp' [8.00 GiB] inherit ACTIVE '/dev/vg/home' [413.52 GiB] inherit
实在搞不懂为什么明明/home已经卸载,对应的逻辑卷还是显示被占用,有没有朋友能给点思路或解决建议?
可能的排查方向与解决建议
- 检查隐藏的绑定挂载:有些时候系统会存在隐形的bind挂载,你可以通过
mount | grep vg-home或者findmnt /dev/mapper/vg-home命令,查看这个逻辑卷是否被挂载到了其他未注意到的路径上。 - 排查LVM相关守护进程:尝试用
ps aux | grep lv查看是否有LVM相关的后台进程(比如lvmetad)在访问该逻辑卷,不过正常情况下这类进程不会阻止e2fsck,除非有其他LVM操作在后台运行。 - 确认逻辑卷的映射状态:使用
dmsetup info /dev/mapper/vg-home或dmsetup status /dev/mapper/vg-home查看设备的详细状态,如果显示有活动的映射,可能需要先暂停映射操作(操作前请备份重要数据,谨慎执行)。 - 进入单用户/救援模式操作:当前系统处于多用户环境,可能存在一些后台服务隐形占用资源。建议重启系统进入单用户模式或救援模式,在这种最小化环境下重新卸载/home并执行e2fsck,干扰会少很多。
- 检查是否有swap关联:虽然从你的输出看/home不是swap分区,但可以用
swapon --show确认下是否有swap设备关联到了vg-home逻辑卷,排除这种可能性。
备注:内容来源于stack exchange,提问作者carl
相关产品推荐
相关产品推荐

