我正在尝试删除一个 LVM 逻辑卷,我认为它目前没有被使用。
但是,当我尝试删除它时,出现错误:
# lvremove /dev/vg_service1/lv_home
Logical volume vg_service1/lv_home is used by another device.
Run Code Online (Sandbox Code Playgroud)
它绝对没有安装,因为这不会返回任何内容:
# mount | grep lv_home
Run Code Online (Sandbox Code Playgroud)
有什么办法可以知道什么在使用这个逻辑卷?
使用 lsof(8):
# lsof /dev/vg_service1/lv_home
Run Code Online (Sandbox Code Playgroud)
目前我无法访问 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
Run Code Online (Sandbox Code Playgroud)
您应该在系统上看到类似的内容。
事实证明,逻辑卷本身就是卷组的一部分。它没有出现在 /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
...
Run Code Online (Sandbox Code Playgroud)