картопостроитель устройства: удалите ioctl на отказавшем luks-xxxx: Устройство или занятый ресурс

В то время как я был вдали от своего компьютера, моя зашифрованная Карта памяти была случайно размонтирована так или иначе (хотя это было все еще физически соединено в то время). Я не смог восстановиться (еще не попробовали перезагрузку). Я теперь полностью отключил устройство, но я все еще получаю "Устройство или ресурс, занятый", когда я пытаюсь удалить повисшую запись в/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.

[РЕДАКТИРОВАНИЕ] я решил проблему, на этот раз, путем закрытия текстового редактора GUI, который не имел никаких открытых файлов, но был запущен от папки на рассматриваемом устройстве. Таким образом, вопрос становится более конкретным: Как можно определить, какое приложение содержание является открытым устройством?

Примите во внимание это lsof кажется, не представляет легкое решение, потому что, после того как устройство отключено, связанные имена, обеспеченные lsof больше не включайте название отключенного устройства.

28
задан 6 March 2014 в 05:37

5 ответов

После двух лет борьбы с этим я думаю, что наконец взломал ее полностью!

dmsetup ls дает Вам данные, в которых Вы нуждаетесь:

$ sudo dmsetup ls
luks-xxxxx (252:1)

затем

sudo lsof |grep 252,1

кажется, что sudo может быть очень важным здесь - по крайней мере в некоторых случаях.

<час>

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

kill -9 (process ID)

, После того как Вы закрыли все файлы, некоторые инструменты командной строки, показанные в вопросе, могут быть необходимыми для закрытия существующего монтирования, прежде чем это сможет быть обычно вновь открыто.

27
ответ дан 16 November 2019 в 11:35

Попытайтесь остановить группу LVM до шифра остановки:

lvchange -a n [LVM_Group_name]

затем

cryptsetup -v luksClose [LUKS_name]

Образец:

lvchange -a n My_vg_crypt
cryptsetup -v luksClose My_Crypt
12
ответ дан 16 November 2019 в 11:35

следующий раз пробует ленивый umount

umount -l /<folder>

, Это работает на меня большинство времен, особенно полезных с подвешенными дисками NFS.

4
ответ дан 16 November 2019 в 11:35

Вот то, как мне удается решить эту проблему на Linux Mint 17.3 (~Ubuntu Надежный человек):

  1. удаляют устройство из картопостроителя устройства

    $ sudo dmsetup remove luks-xxyyzz
    
  2. карта это назад

    $ sudo cryptsetup open /dev/sdc1 luks-xxyyzz
    Enter passphrase for /dev/sdc1:
    

Теперь, устройства доступны.

2
ответ дан 16 November 2019 в 11:35

Я был в аналогичной ситуации, но не мог решить проблему путем удаления luks-xxxx устройство. Вместо этого я должен был удалить ubuntu--vg-root.

Моя ситуация была:

  • я случайно удалил устройство, прежде чем оно было заблокировано.
  • Попытка заблокировать или удалить устройство удач после того, как факт перестал работать с занятый сообщение об ошибке.
  • Разблокирование того же устройства перестало работать, потому что устройство с тем же именем уже существовало.
  • lsof не показал открытых дескрипторов для устройства.

то, Что действительно помогало, должно было отключить физическое устройство и удалить ubuntu--vg-root устройство со следующей командой:

sudo dmsetup remove ubuntu--vg-root

В той точке я смог обычно активировать и дешифровать внешнее устройство снова с моей обычной установкой:

udisksctl unlock -b /dev/sda3
sudo lvchange --activate y ubuntu-vg/root
0
ответ дан 16 November 2019 в 11:35

Другие вопросы по тегам:

Похожие вопросы: