无法删除打开的逻辑卷

无法删除打开的逻辑卷

当我尝试删除逻辑卷时,我收到消息

#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-1lvremove -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 -llsofdmsetup ls --tree

之所以会发生这种情况,是因为使用了mount --rbind或!systemd-nspawn

如何诊断grep -l <OLD MOUNT POINT> /proc/*/mountinfo 如果它显示某些内容,则这些进程以某种方式被现在未挂载的文件系统污染了。就我而言,这些是一些 systemd 核心和其他服务,如 systemd-oomd、irqbalance 等。我systemctl restart ...逐个处理它们,但最终我的 Firefox 以某种方式被杀死了,因此请警惕不良副作用。但我设法通过这种方式释放了我的 LV,并成功将其删除。

我再说一遍,来自 的内容/proc/*/mountinfo并不总是出现在 中lsof

相关内容