No se puede eliminar el volumen obsoleto

Tengo un disco duro externo conectado a mi computadora portátil Ubuntu a través de USB. Todo el disco duro está encryption LUKS. Al lado de la capa de encryption se encuentra un volumen LVM que puedo montar en /mnt/es . Una vez abierto, lsblk ve todo como:

 sdc 8:32 0 2.7T 0 disk └─es (dm-6) 252:6 0 2.7T 0 crypt └─externalstorage-externalstorage (dm-7) 252:7 0 2.7T 0 lvm /mnt/es 

A veces, de alguna manera, el disco duro se "separa" de los volúmenes, en cuyo caso los datos se vuelven inaccesibles:

 sdc 8:32 0 2.7T 0 disk es (dm-6) 252:6 0 2.7T 0 crypt └─externalstorage-externalstorage (dm-7) 252:7 0 2.7T 0 lvm 

Noté que típicamente sucede cuando la computadora portátil se va a dormir.

Ahora, el problema es que una vez que sdc ha [sido?] Separado, no puedo deshacerme de los dos volúmenes obsoletos es y externalstorage-externalstorage store para reutilizar sus nombres nuevamente. Lo primero que hago es umount /mnt/es que va bien. Pero luego, aunque el volumen no esté montado, no puedo eliminarlo:

 dmsetup remove --force /dev/mapper/externalstorage-externalstorage device-mapper: resume ioctl on externalstorage-externalstorage failed: Invalid argument device-mapper: remove ioctl on externalstorage-externalstorage failed: Device or resource busy Command failed 

El command info muestra que el volumen está abierto:

 dmsetup info -c /dev/mapper/externalstorage-externalstorage Name Maj Min Stat Open Targ Event UUID externalstorage-externalstorage 252 7 L--w 1 1 0 LVM-R4bAWzxJ8Cy3MBIjmPps60Rd3cFVyBStxTeKaR6gBHdefTYfJNWhHfA8tzqOBHns 

Aquí está lo que parece contener el volumen pero no me dice mucho:

 fuser -m /dev/mapper/externalstorage-externalstorage Cannot stat file /proc/5687/fd/4: Stale file handle Cannot stat file /proc/5687/fd/5: Stale file handle Cannot stat file /proc/5687/fd/6: Stale file handle Cannot stat file /proc/5687/fd/7: Stale file handle Cannot stat file /proc/5687/fd/11: Stale file handle 

Desde el punto de vista de LVM, tampoco es accesible:

 pvdisplay /dev/externalstorage/externalstorage: read failed after 0 of 4096 at 2981780979712: Input/output error /dev/externalstorage/externalstorage: read failed after 0 of 4096 at 2981781037056: Input/output error /dev/externalstorage/externalstorage: read failed after 0 of 4096 at 0: Input/output error /dev/externalstorage/externalstorage: read failed after 0 of 4096 at 4096: Input/output error 

Curiosamente, en este punto, cryptsetup luksClose es se puede repetir cualquier cantidad de veces sin ningún impacto visible o post de error.

Entonces, ¿cómo puedo deshacerme de esos volúmenes obsoletos (aparte de reiniciar)? ¿Y hay alguna manera de evitar que el problema ocurra en primer lugar, es decir, por qué se desconecta sdc y otra vez?

[Ubuntu 14.04.3 LTS, kernel 3.19.0-42-generic]

Actualizar

vgchange -an produce errores similares a los anteriores:

 /dev/mapper/es: read failed after 0 of 4096 at 3000590794752: Input/output error /dev/mapper/es: read failed after 0 of 4096 at 3000590876672: Input/output error /dev/mapper/es: read failed after 0 of 4096 at 0: Input/output error /dev/mapper/es: read failed after 0 of 4096 at 4096: Input/output error /dev/externalstorage/externalstorage: read failed after 0 of 4096 at 2981780979712: Input/output error /dev/externalstorage/externalstorage: read failed after 0 of 4096 at 2981781037056: Input/output error /dev/externalstorage/externalstorage: read failed after 0 of 4096 at 0: Input/output error /dev/externalstorage/externalstorage: read failed after 0 of 4096 at 4096: Input/output error 

Es más como una conjetura, pero parece que tendrá que desactivar el lvm antes de que pueda eliminar el mapeo de la cripta, básicamente trabajando hacia atrás desde adentro:

Primero, necesitarás desmontar cualquier F rancio en el lvm:

 umount -f /mnt/es 

Luego, desactive la lvm que parece tener en la parte superior de cryptsetup. Incluso si tiene otros vgs, lo siguiente debería desactivar todo lo que pueda, sin dañar el sistema si usa cualquier otro vg:

 vgchange -an 

Después de esto, puede usar dmsetup para eliminar la asignación creada por cryptsetup (!)

 dmsetup remove externalstorage 

(Puede que haya confundido algunos de los nombres, no dude en corregirlo)

Parece ser el problema básico que durante el modo de suspensión, la unidad USB se está cayendo del bus, y cuando vuelve, el sistema de bloques encuentra que sdb desapareció, aunque ahora hay un sdc.