Eu tenho um disco rígido externo conectado ao meu laptop Ubuntu via USB. Todo o disco rígido é LUKS criptografado. Ao lado da camada de criptografia está um volume LVM que eu montei em /mnt/es
. Depois de aberto, lsblk
vê tudo 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
Às vezes, de alguma forma, o disco rígido fica "desconectado" dos volumes e, nesse caso, os dados ficam inacessíveis:
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
Eu notei que isso geralmente acontece quando o laptop vai dormir.
Agora, o problema é que, uma vez que sdc
foi [?] desanexado, não consigo me livrar dos dois volumes obsoletos es
e externalstorage-externalstorage
para reutilizar seus nomes novamente. A primeira coisa que faço é umount /mnt/es
, o que funciona bem. Mas, mesmo que o volume não esteja montado, não consigo removê-lo:
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
O comando info
mostra que o volume está aberto:
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
Aqui está o que parece estar segurando o volume, mas não me diz muito:
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
Do ponto de vista da LVM, não está acessível:
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, neste momento, cryptsetup luksClose es
pode ser repetido qualquer número de vezes sem qualquer impacto visível ou mensagem de erro.
Então, como posso me livrar desses volumes antigos (além da reinicialização)? E existe alguma maneira de evitar que o problema aconteça em primeiro lugar, ou seja, por que sdc
se destaca de vez em quando?
[Ubuntu 14.04.3 LTS, kernel 3.19.0-42-genérico]
Atualizar
vgchange -an
gera erros semelhantes como acima:
/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