无法删除设备/ dev / loop0

问题描述 投票:28回答:12

我不安全地卸下了一个用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。有没有摆脱循环设备的方法?

linux ubuntu mount
12个回答
14
投票

您确定设备不忙吗?您是否曾经尝试过热熔器来确定可能的PID?

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

fuser -c /dev/loop0
fuser -d /dev/loop0
fuser -f /dev/loop0

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


0
投票

运行

mount | grep /dev/loopN

检查环路设备是否安装在某处,然后运行

umount /dev/loopN 

卸载它。

如果仍然有问题,请运行

lsof | grep loopN

检查正在使用哪个进程,然后将其杀死。


-1
投票

本文的THX BiX以及所有:我不是Linux管理员,而是一个用户,但可以为had loop设备问题做出很大贡献:

当未从文件浏览器(Dolphin / Nautilus)真正干净地删除虚拟安装的映像文件(.iso)时。

您可以使用Prg“磁盘”(在Service Prg的磁盘管理工具下)卸载此虚拟分区。但是,ISO文件仍将作为循环保留在设备管理列表中。例如,如果要从磁盘上删除此ISO文件卷,则删除过程将仅以虚拟方式进行,并且相应的MB或GB存储空间将完全不可用。删除后,ISO文件在Dolphin / Nautilus中不再可见,但是相应的存储空间要求未再次指定为可用;即删除之前和之后此ISO文件未更改的数据载体上的可用和已占用存储空间的信息。

一个简单但非常规的解决方案是重新启动/启动计算机。但这不是真正的解决方案!

联机帮助页中描述的Linux shell losetup在此处提供了补救措施:

losetup用于将循环设备与常规文件或块设备相关联,以分离循环设备并查询循环设备的状态。如果仅给出loopdev参数,则显示相应循环设备的状态。

因此,您可以使用losetup -d /dev/loop0删除与dev / loop0上的循环关联的文件(!“ losetup -d”仅可用作管理员。因此,您需要输入sudo losetup -d或大多数LinuxGurus而不是fink fin,您有一个so-terminal静态开放)。

losetup的手册页中,您可以看到此处未使用表达式Delete,而是使用了Solve。但是,根据我的示例,在使用选项-d后,“尽管卸载干净,仍未删除文件卷轴”,但现在仅删除文件卷轴。 (我不是Linux管理员,但::)这与虚拟的loopNumber分配相关联,但在挂载iso映像(映像)时成为实际条件。

这里是shell losetup的完整语法:

https://linux.die.net/man/8/losetup

((我在linuxMint-18上已损坏的工作)

由德语翻译,www.DeepL.com / Translator


-4
投票

我只是右键单击海豚中的循环设备,然后将其卸下。


47
投票

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


8
投票

我在SD卡上遇到了类似的问题,Aaoron Flin的建议使用dmsetup的建议对我有用。

特别是,您应该能够ls / dev / mapper来查看是否存在任何loop0pX分区。

如果是这样,您可以使用dmsetup remove /dev/mapper/loop0p2摆脱任何不必要的分区。如果要保留某些映射,这将很有用。


5
投票

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

结果是,与循环设备关联的图像文件包含一个“ 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

3
投票

我将此循环解决方案追到了Internet的末端,发现解决方案是卸载snapd清除所有关联的文件:(在我的情况下为167 Gb)

sudo apt purge snapd

2
投票

如果使用Luks,则需要先关闭Luks

cryptsetup luksClose $whatever
losetup -D

1
投票

尝试重新加载循环内核模块。如果没有帮助,请重新启动。


0
投票

肯定有一个使用它的进程。如果无法确定哪个进程阻止了该进程的删除,请尽可能重新启动服务器。


0
投票

与@frntn相同。

循环被RAID占用:

# cat /proc/mdstat

Personalities : [raid0]

md126 : active raid0 loop6p5[1] loop5p3[0]
  209584128 blocks super 1.2 512k chunks

md127 : active raid0 loop6p2[1] loop5p2[0]
  31440896 blocks super 1.2 512k chunks

我删除了它们,一切都再次服从命令。

© www.soinside.com 2019 - 2024. All rights reserved.