Mientras estaba lejos de mi computadora, mi unidad USB encriptada se desmontó accidentalmente de alguna manera (aunque todavía estaba físicamente conectada en ese momento). No he podido recuperarme (aún no he intentado reiniciar). Ahora he desconectado completamente el dispositivo, pero sigo teniendo "Dispositivo o recurso ocupado" cuando intento eliminar la entrada colgante en / dev / mapper. ¿Puedo volver a conectar y montar la unidad sin reiniciar?
Esto es lo que he intentado (nombre largo cambiado a "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
Después de volver a conectar el dispositivo ...
$ sudo cryptsetup luksOpen "/dev/sde1" "luks-xxxxx"
Device luks-xxxxx already exists.
[EDITAR] Resolví el problema, esta vez, cerrando un editor de texto GUI que no tenía archivos abiertos, pero había sido lanzado desde una carpeta en el dispositivo en cuestión. Entonces, la pregunta se vuelve más específica: ¿Cómo puede identificar qué aplicación mantiene abierto el dispositivo?
Tenga en cuenta que lsof
no parece presentar una solución fácil porque, una vez que se desconecta el dispositivo, los nombres asociados proporcionados por lsof
ya no incluyen el nombre del dispositivo desconectado.
Respuestas:
¡Después de dos años de pelear con esto, creo que finalmente lo resolví por completo!
dmsetup ls
le brinda los datos que necesita:luego
Parece que
sudo
aquí puede ser crítico, al menos en algunos casos.Esto debería proporcionarle la información necesaria para cerrar todos los archivos abiertos en el dispositivo, incluidos los nombres de los archivos abiertos y las ID de proceso para las aplicaciones infractoras. Es posible que pueda simplemente ir a esas aplicaciones y cerrarlas, pero un enfoque de fuerza bruta podría ser algo como:
Una vez que haya cerrado todos los archivos, algunas de las herramientas de línea de comandos que se muestran en la pregunta pueden ser necesarias para cerrar el montaje existente antes de que se pueda volver a abrir normalmente.
fuente
(252:1)
convierte252,1
.Intente detener el grupo LVM antes de detener cypher:
lvchange -a n [LVM_Group_name]
luego
cryptsetup -v luksClose [LUKS_name]
Muestra:
fuente
kill
anteskill -9
). Sin embargo, la solución de @ nobar no fue suficiente para mí, parece que el núcleo en sí tenía el dispositivo abierto debido a las asignaciones de dispositivos LVM, lo que resolvió esta respuesta.grep
no encontró coincidencias, pero funcionó.la próxima vez intente un paseo perezoso
Esto funciona para mí la mayoría de las veces, especialmente útil con unidades NFS colgadas.
fuente
Así es como me las arreglo para resolver este problema en Linux Mint 17.3 (~ Ubuntu Trusty):
eliminar el dispositivo del mapeador de dispositivos
mapearlo de vuelta
Ahora los dispositivos son accesibles.
fuente
dmsetup remove
informa "Error de comando".Estaba en una situación similar pero no pude resolver el problema quitando el
luks-xxxx
dispositivo. En cambio tuve que eliminarubuntu--vg-root
.Mi situacion fue:
lsof
no mostró ningún controlador abierto para el dispositivo.Lo que sí ayudó fue desconectar el dispositivo físico y eliminar el
ubuntu--vg-root
dispositivo con el siguiente comando:En ese momento pude activar y descifrar normalmente el dispositivo externo nuevamente con mi configuración habitual:
fuente