我正在尝试删除 LVM 逻辑卷,我认为该逻辑卷目前尚未使用。
但是,当我尝试删除它时,出现错误:
# lvremove /dev/vg_service1/lv_home
Logical volume vg_service1/lv_home is used by another device.
它肯定没有安装,因为这不会返回任何内容:
# mount | grep lv_home
有什么方法可以知道什么在使用这个逻辑卷吗?
答案1
使用 lsof(8):
# lsof /dev/vg_service1/lv_home
目前我无法访问 Linux 机器来验证其输出,但在我的 Mac 上它是这样的:
# lsof /dev/disk1 | head
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
launchd 1 root cwd DIR 14,4 1564 2 /
launchd 1 root txt REG 14,4 415248 7402611 /sbin/launchd
launchd 1 root txt REG 14,4 59504 7399166 /usr/lib/libauditd.0.dylib
launchd 1 root txt REG 14,4 599232 7402371 /usr/lib/dyld
launchd 1 root txt REG 14,4 289054720 8865364 /private/var/db/dyld/dyld_shared_cache_x86_64
launchd 1 root 20r DIR 14,4 170 7402529 /private/var/tmp
launchd 1 root 24r REG 14,4 0 9885226 /private/var/run/socketfilterfw.launchd
launchd 1 root 25r DIR 14,4 2040 7393527 /private/var/db
您应该在系统上看到类似的内容。
答案2
事实证明,逻辑卷本身就是卷组的一部分。它没有出现在 /proc/mounts 或 lsof 的输出中。我能够发现这一点的唯一方法是通过“pvdisplay”命令,它显示为物理卷:
# pvdisplay
...
--- Physical volume ---
PV Name /dev/vg_service1/lv_home
VG Name nova-volumes
PV Size 179.91 GiB / not usable 4.00 MiB
...
答案3
还有另一个难以理解的原因导致您的 LVM 快照可能很忙
运行时grub-update
,它将用于grub-mount
挂载设备并检查它们是否包含操作系统,并可能将它们添加到启动菜单中;但grub-update
有时会无法卸载它们,在这种情况下将无法删除快照。
请注意,grub-update
安装新内核时将自动运行,这可能是由于自动安全更新而发生的。
到目前为止最好的选择是添加到,GRUB_DISABLE_OS_PROBER=true
这样/etc/default/grub
就grub-update
不会安装任何东西。无论如何我都推荐它。
回到最初的问题:如果您无法卸载快照,请尝试umount /var/lib/os-prober/mount/
请注意,当/如果快照完全满时,快照将无效,并且上述命令可能会失败,在这种情况下,您唯一的机会将是重新启动。
答案4
就我而言,我也有同样的问题。经过一番搜索,有人谈到了nfs
文件共享的服务。
所以这种情况只需要重启nfs
服务然后尝试移除逻辑卷磁盘:
service nfs-kernel-server restart
lvremove -f /dev/vg_service1/lv_home