Intereting Posts

Не удалось удалить устаревший объем

У меня есть внешний жесткий диск, подключенный к ноутбуку Ubuntu через USB. Весь жесткий диск зашифрован LUKS. Рядом с уровнем шифрования находится том LVM, который я монтирую в /mnt/es . После открытия, lsblk видит все это как:

 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 

Иногда каким-то образом жесткий диск «отделяется» от томов, и в этом случае данные становятся недоступными:

 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 

Я заметил, что это обычно происходит, когда ноутбук ложится спать.

Теперь проблема заключается в том, что когда sdc отключен, я не могу избавиться от двух устаревших томов es и externalstorage-externalstorage чтобы снова использовать их имена. Первое, что я делаю, это umount /mnt/es который идет хорошо. Но тогда, хотя объем не установлен, я не могу его удалить:

 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 

Команда info показывает, что том открыт:

 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 

Вот что, похоже, держит громкость, но это не говорит мне многого:

 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 

С точки зрения LVM он недоступен:

 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 

Интересно, что на этом этапе cryptsetup luksClose es может повторяться любое количество раз без какого-либо видимого воздействия или сообщения об ошибке.

Итак, как я могу избавиться от этих устаревших томов (кроме перезагрузки)? И есть ли способ предотвратить возникновение проблемы в первую очередь, то есть, почему sdc отсоединяется снова и снова?

[Ubuntu 14.04.3 LTS, ядро ​​3.19.0-42-generic]

Обновить

vgchange -an дает аналогичные ошибки, как указано выше:

 /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 

Это больше похоже на догадки, но похоже, что вам нужно будет деактивировать lvm, прежде чем вы сможете удалить склеп-картографию, в основном, используя свой путь изнутри:

Во-первых, вам нужно убрать все устаревшие fs на lvm:

 umount -f /mnt/es 

Затем отключите lvm, который, по вашему мнению, находится поверх cryptsetup. Даже если у вас есть другие vgs, следующее должно деактивировать все, что может, без ущерба для системы, если оно использует любой другой vg:

 vgchange -an 

После этого вы можете использовать dmsetup для удаления сопоставления, созданного cryptsetup (!)

 dmsetup remove externalstorage 

(Возможно, я ошибался в некоторых именах, не стесняйтесь их исправить)

По-видимому, основная проблема заключается в том, что во время сна ваш USB-накопитель отключается от шины, и когда он возвращается, блочная система обнаруживает, что sdb исчез, хотя теперь есть sdc.