Пока я был вдали от компьютера, мой зашифрованный USB-накопитель как-то случайно отключился (хотя в то время он еще был физически подключен). Я не смог восстановиться (еще не пытался перезагрузиться). Теперь я полностью отключил устройство, но все равно получаю сообщение «Устройство или ресурс занят», когда пытаюсь удалить висячую запись в / dev / mapper. Могу ли я подключить и смонтировать диск без перезагрузки?
Вот что я попробовал (длинное имя изменилось на "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
После повторного подключения устройства ...
$ sudo cryptsetup luksOpen "/dev/sde1" "luks-xxxxx"
Device luks-xxxxx already exists.
[РЕДАКТИРОВАТЬ] Я решил эту проблему, на этот раз, закрыв текстовый редактор с графическим интерфейсом, который не имел открытых файлов, но был запущен из папки на соответствующем устройстве. Таким образом, вопрос становится более конкретным: как определить, какое приложение удерживает устройство открытым?
Имейте в виду, что lsof
это, кажется, не представляет собой простое решение, потому что, как только устройство отключено, связанные с ним имена, которые lsof
больше не включают в себя имя отключенного устройства.
Ответы:
После двух лет борьбы с этим, я думаю, что наконец-то полностью взломал!
dmsetup ls
дает вам необходимые данные:тогда
Кажется, что это
sudo
может быть критическим здесь - по крайней мере, в некоторых случаях.Это должно дать вам информацию, необходимую для закрытия всех открытых файлов на устройстве, включая имена открытых файлов и идентификаторы процессов для приложений-нарушителей. Вы можете просто зайти в эти приложения и закрыть их, но подход грубой силы может выглядеть примерно так:
После того, как вы закрыли все файлы, некоторые из инструментов командной строки, показанные в вопросе, могут понадобиться, чтобы закрыть существующее монтирование, прежде чем его можно будет снова открыть обычным образом.
источник
(252:1)
становится252,1
.Попробуйте остановить группу LVM до остановки шифра:
lvchange -a n [LVM_Group_name]
тогда
cryptsetup -v luksClose [LUKS_name]
Образец:
источник
kill
прежде чемkill -9
). Однако мне не хватило решения @ nobar - кажется, что само ядро открыло устройство из-за сопоставлений устройств LVM, - этот ответ разрешен.grep
не нашел совпадений, но это сработало.в следующий раз попробуй ленивый
Это работает для меня большую часть времени, особенно полезно с зависшими NFS-дисками.
источник
Вот как мне удается решить эту проблему в Linux Mint 17.3 (~ Ubuntu Trusty):
удалить устройство из устройства-картографа
отобразить его обратно
Теперь устройства доступны.
источник
dmsetup remove
сообщается «Команда не выполнена».Я был в похожей ситуации, но не смог решить проблему, сняв
luks-xxxx
устройство. Вместо этого мне пришлось удалитьubuntu--vg-root
.Моя ситуация была:
lsof
не показывал никаких открытых ручек для устройства.Помогло отключение физического устройства и удаление
ubuntu--vg-root
устройства с помощью следующей команды:В этот момент я смог нормально активировать и дешифровать внешнее устройство снова с моей обычной настройкой:
источник