Alors que j'étais loin de mon ordinateur, ma clé USB cryptée s'est démontée accidentellement (même si elle était encore physiquement connectée à l'époque). Je n'ai pas réussi à récupérer (je n'ai pas encore essayé de redémarrer). J'ai maintenant complètement déconnecté le périphérique, mais le message "Périphérique ou ressource occupé" persiste quand j'essaie de supprimer l'entrée suspendue dans/dev/mapper. Puis-je reconnecter et monter le lecteur sans redémarrer?
Voici ce que j'ai essayé (nom long changé en "xxxxx") ...
$ Sudo dmsetup ls
luks-xxxxx (252:1)
luks-yyyyy (252:0)
$ Sudo umount /dev/mapper/luks-xxxxx
umount: /dev/mapper/luks-xxxxx: not mounted
$ Sudo fuser --kill /dev/mapper/luks-xxxxx
$ echo $?
1
$ Sudo dmsetup info -c luks-xxxxx
Name Maj Min Stat Open Targ Event UUID
luks-xxxxx 252 1 L--w 1 1 0 CRYPT-LUKS1-xxxxx-luks-xxxxx
$ Sudo dmsetup remove luks-xxxxx
device-mapper: remove ioctl on luks-xxxx failed: Device or resource busy
Command failed
Après avoir reconnecté l'appareil ...
$ Sudo cryptsetup luksOpen "/dev/sde1" "luks-xxxxx"
Device luks-xxxxx already exists.
[EDIT] J'ai résolu le problème, cette fois-ci, en fermant un éditeur de texte graphique qui n'avait aucun fichier ouvert, mais qui avait été lancé à partir d'un dossier situé sur le périphérique en question. La question devient alors plus spécifique: Comment pouvez-vous identifier quelle application maintient l'appareil ouvert?
N'oubliez pas que lsof
ne semble pas constituer une solution facile, car une fois le périphérique déconnecté, les noms associés fournis par lsof
n'incluent plus le nom du périphérique déconnecté.
Après deux ans de lutte avec cela, je pense que je l'ai finalement complètement craqué!
dmsetup ls
vous donne les données dont vous avez besoin:
$ Sudo dmsetup ls
luks-xxxxx (252:1)
puis
Sudo lsof |grep 252,1
Il semble que Sudo
puisse être critique ici - du moins dans certains cas.
Cela devrait vous donner les informations nécessaires pour fermer tous les fichiers ouverts sur le périphérique, y compris les noms des fichiers ouverts et les ID de processus pour les applications incriminées. Vous pourrez peut-être simplement accéder à ces applications et les fermer, mais une approche basée sur la force brute pourrait ressembler à quelque chose comme:
kill -9 (process ID)
Une fois que vous avez fermé tous les fichiers, certains des outils de ligne de commande présentés dans la question peuvent être nécessaires pour fermer le montage existant avant qu'il ne puisse être rouvert normalement.
Essayez d’arrêter le groupe LVM avant d’arrêter le chiffrement:
lvchange -a n [LVM_Group_name]
puis
cryptsetup -v luksClose [LUKS_name]
Échantillon:
lvchange -a n My_vg_crypt
cryptsetup -v luksClose My_Crypt
la prochaine fois, essayez un umount paresseux
umount -l /<folder>
Cela fonctionne pour moi la plupart du temps, particulièrement utile avec les lecteurs NFS bloqués.
Voici comment je parviens à résoudre ce problème sous Linux Mint 17.3 (~ Ubuntu Trusty):
retirer le périphérique de device-mapper
$ Sudo dmsetup remove luks-xxyyzz
cartographier
$ Sudo cryptsetup open /dev/sdc1 luks-xxyyzz
Enter passphrase for /dev/sdc1:
Maintenant, les appareils sont accessibles.
J'étais dans une situation similaire mais je ne pouvais pas résoudre le problème en supprimant le périphérique luks-xxxx
. Au lieu de cela, j'ai dû supprimer ubuntu--vg-root
.
Ma situation était:
lsof
n'a montré aucun descripteur ouvert pour le périphérique.Ce qui vous a aidé était de débrancher le périphérique physique et de supprimer le périphérique ubuntu--vg-root
à l'aide de la commande suivante:
Sudo dmsetup remove ubuntu--vg-root
À ce stade, je pouvais normalement activer et déchiffrer le périphérique externe avec ma configuration habituelle:
udisksctl unlock -b /dev/sda3
Sudo lvchange --activate y ubuntu-vg/root