web-dev-qa-db-fra.com

Impossible de supprimer le périphérique/dev/loop0

J'ai supprimé de manière non sécurisée un périphérique USB connecté à loop0 avec losetup et ne pouvais pas supprimer ni détacher loop0 par la suite.

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

Lorsque je remonterai le périphérique dans/dev/sdb1, umount et essayer losetup -d /dev/loop0, j'obtiendrai toujours la même erreur loop: can't delete device /dev/loop0: Device or resource busy. Y a-t-il un moyen de se débarrasser du dispositif de boucle?

27
BiX

Êtes-vous sûr que l'appareil n'est pas occupé? Avez-vous déjà essayé avec l’unité de fusion de déterminer un PID possible?

Par précaution, obtenez toutes les informations possibles:

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

Essayez d’arrêter le processus, qui pourrait utiliser/dev/loop0. Si nécessaire, utilisez kill -9 ou essayez fuser -k pour envoyer le signal de neutralisation -> regardez man fuser.

14
The Bndr

Vous devrez peut-être également utiliser dmsetup pour supprimer le mappage de périphérique. Le moyen le plus simple, s’il n’interfère pas avec d’autres mappages, consiste à utiliser un dmsetup remove_all.

42
Aaron Flin

J'ai eu un problème similaire avec une carte SD et la suggestion d'Aaoron Flin d'utiliser dmsetup a fonctionné pour moi. 

Plus précisément, vous devriez pouvoir ls/dev/mapper pour voir s’il existe des partitions loop0pX

Si tel est le cas, vous pouvez utiliser dmsetup remove /dev/mapper/loop0p2 pour supprimer les partitions inutiles. Cela peut être utile si vous souhaitez conserver certaines correspondances. 

8
Mike.P

J'ai eu le même problème aujourd'hui et aucune des réponses précédentes ne l'a corrigé (je n'ai pas essayé de recharger le module du noyau de la boucle, car je voulais comprendre le problème réel).

Il s'avère que le fichier image associé au périphérique en boucle contenait une partition "Linux LVM", qui était automatiquement définie comme indiqué par 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   ]

Je devais donc désactiver tous les volumes logiques du groupe de volumes:

$ vgchange --activate n vbox-vg
  0 logical volume(s) in volume group "vbox-vg" now active

Finalement, j'ai réussi à détacher le périphérique de boucle:

$ losetup -d /dev/loop0
$ losetup -a
4
frntn

J'ai poursuivi cette solution de boucle jusqu'à la fin de l'Internet et découvert que la solution est désinstaller snapd et purger tous les fichiers associés : (dans mon cas, il s'agissait de 167 Go).

Sudo apt purge snapd
3
dwb.kelmark

Si vous utilisez Luks, vous devez d'abord lire

cryptsetup luksClose $whatever
losetup -D
2
choad rocker

Essayez de recharger le module du noyau de la boucle. Si cela ne vous aide pas, redémarrez.

1
tamasd

Il existe certainement un processus d'utilisation. Si vous ne pouvez pas déterminer le processus qui l'empêche de supprimer, redémarrez votre serveur si vous le pouvez.

0
user3578181

Identique à @frntn.

Les boucles étaient occupées par le 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

Je les ai enlevés et tout obéit à nouveau aux ordres.

0
MolbOrg