我擦除了(从设备中删除)逻辑卷(LVM 中的 lv)中的所有分区。然后我做了partprobe -s
(和其他类似的命令:partprobe
没有返回任何输出,partx
表示partition: none
& failed to read partition table
)。我遇到的问题是我两者都做不到:
mkfs /dev/vg/lv
因为/dev/vg/lv is apparently in use by the system; will not make a filesystem here!
lvremove /dev/vg/lv
该设备因为Logical volume vg/lv is used by another device.
这是因为内核仍然在 lv 块设备中看到一个分区:
# grep dm /proc/partitions
254 0 85852160 dm-0
254 1 84850688 dm-1
和
# ls -lh /dev/dm-*
brw-rw---T 1 root disk 254, 0 May 23 14:32 /dev/dm-0
brw-rw---T 1 root disk 254, 1 May 23 14:08 /dev/dm-1
我最终重新启动了机器,解决了我的问题(内核不再看到不存在的分区)。
您知道无需重新启动即可解决此问题的方法吗?
在 3.2 内核上测试。
答案1
LVM 设备(或一般的设备映射器)不支持与sd
设备相同意义上的分区。使用partx
,您只能管理普通类型的分区。在 LVM 设备之上,分区必须通过以下方式进行管理kpartx
:
kpartx -d /dev/vg/lv
联机kpartx
帮助页有点简洁。为了检查这一点,我找到了一个看起来与我的假设一致的用法示例:https://bugzilla.redhat.com/show_bug.cgi?id=187781