当我尝试删除逻辑卷时,我收到消息
#lvremove /dev/my-volumes/volume-1
Can't remove open logical volume "volume-1"
#lvchange -an -v /dev/my-volumes/volume-1
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Deactivating logical volume "volume-1"
Found volume group "my-volumes"
LV my-volumes/volume-1 in use: not deactivating
#lvremove -vf /dev/my-volumes/volume-1
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Can't remove open logical volume "volume-1"
#lvs
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
volume-1 my-volumes -wi-ao 50.00g
我怎样才能强制删除该卷?
谢谢,埃弗雷特
答案1
逻辑卷包含什么?它是文件系统吗(我不小心写成了分区)?它可能是已安装的吗?在这种情况下:
umount /dev/my-volumes/volume-1
它有任何活动快照吗?
编辑:尝试lvchange -an -v /dev/my-volumes/volume-1
和lvremove -vf /dev/my-volumes/volume-1
。
编辑2:请发布‘lvs’。
编辑 3:尝试用其他有问题的卷进行此操作。这不是最干净的选项,但根据本网站它可能会起作用,并且比重新启动问题更少。
dmsetup remove my--volumes-volume--number
lvremove /dev/my-volumes/volume-number
答案2
如果无法卸载或删除逻辑卷,请验证没有进程持有该 LV
找到您要删除的逻辑卷的主/次编号,例如:vol0
# dmsetup info -c | grep vol0
请注意第 5 列,它表示卷是否“打开”,第 2 列和第 3 列分别是主 ID 和次 ID。
通过搜索上面发现的主要 ID 和次要 ID,查找附加到该卷的任何进程:
# lsof | grep "major,minor"
关闭或终止任何仍在访问该卷的进程以继续卸载和删除。
然后尝试 lvremove
答案3
我遇到了类似的情况,但由于我使用了mount -o
绑定,因此 LV 的删除被阻止了。
本文帮助很大,lsof
在我的例子中,使用 LV 的主/次要编号显示了持有打开的 LV 的进程smbd
。
lsof | grep "major,minor"
这仅仅cat /proc/mounts | grep LV_name
让我得出结论,为什么lvremove
或者dmsetup
拒绝摆脱未安装的 LV。
答案4
我已经在、 、中找出了一些可能的原因,这些原因可能导致人们在没有任何线索的情况下移除(看似)未安装的 LV mount -l
。lsof
dmsetup ls --tree
之所以会发生这种情况,是因为使用了mount --rbind
或!systemd-nspawn
如何诊断:grep -l <OLD MOUNT POINT> /proc/*/mountinfo
如果它显示某些内容,则这些进程以某种方式被现在未挂载的文件系统污染了。就我而言,这些是一些 systemd 核心和其他服务,如 systemd-oomd、irqbalance 等。我systemctl restart ...
逐个处理它们,但最终我的 Firefox 以某种方式被杀死了,因此请警惕不良副作用。但我设法通过这种方式释放了我的 LV,并成功将其删除。
我再说一遍,来自 的内容/proc/*/mountinfo
并不总是出现在 中lsof
。