linux卸载dev中的设备,无法删除设备/dev/loop0

问题描述

我不安全地删除了使用losetup连接到loop0的USB设备,之后无法删除或分离loop0。

losetup -a显示/dev/loop0: [0005]:145606719 (/dev/sdb1)

当我将设备重新安装到/dev /sdb1,umount并尝试losetup -d /dev/loop0时,我仍然会得到相同的错误loop: can't delete device /dev/loop0: Device or resource busy。有没有办法摆脱循环设备?

最佳解决思路

你确定设备不忙吗?你有没有尝试过热熔器来确定可能的PID?

预防性获取所有可能的信息:

fuser -c /dev/loop0

fuser -d /dev/loop0

fuser -f /dev/loop0

尝试停止进程,可以使用/dev /loop0。如有必要,使用kill -9或尝试fuser -k发送终止信号 – >看看man fuser。

次佳解决思路

您可能还必须使用dmsetup来删除设备映射。最简单的方法是,如果它不干扰任何其他映射,则使用dmsetup remove_all。

第三种解决思路

我有一个与SD卡类似的问题,Aaoron Flin建议使用dmsetup为我工作。

具体来说,您应该能够使用ls /dev /mapper查看是否存在任何loop0pX分区。

如果是这样,您可以使用dmsetup remove /dev/mapper/loop0p2来删除任何不必要的分区。如果要保留一些映射,这可能很有用。

第四种思路

我今天遇到了同样的问题,之前的答案都没有解决(我没有尝试重新加载循环内核模块,因为我想了解实际问题)。

事实证明,与循环设备关联的图像文件包含一个”Linux LVM”分区,该分区自动设置为pvscan所示:

$ pvscan

PV /dev/sda1 VG server-vg lvm2 [417,76 GiB / 0 free]

PV /dev/loop0 VG vbox-vg lvm2 [7,81 GiB / 0 free]

Total: 2 [425,57 GiB] / in use: 2 [425,57 GiB] / in no VG: 0 [0 ]

所以我已经停用了卷组中的所有逻辑卷:

$ vgchange --activate n vbox-vg

0 logical volume(s) in volume group "vbox-vg" now active

最终我能够很好地分离循环设备:

$ losetup -d /dev/loop0

$ losetup -a

第五种思路

我把这个循环解决方案追到了Internet的末尾,发现解决方案是卸载snapd并清除所有相关文件:(在我的情况下,这是167 Gb)

sudo apt purge snapd

第六种思路

如果您使用的是Luks,则需要首先使用luksClose

cryptsetup luksClose $whatever

losetup -D

参考资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值