aygıt eşleştiricisi: luks-xxxx üzerindeki ioctl dosyasını kaldırma işlemi başarısız oldu: Aygıt veya kaynak meşgul


28

Bilgisayarımdan uzaktayken, şifrelenmiş USB sürücüm bir şekilde yanlışlıkla kaldırıldı (hala fiziksel olarak bağlı olmasına rağmen). Kurtarılamamıştım (henüz bir yeniden başlatma denemedim). Artık cihazın bağlantısını tamamen kestim, ancak / dev / mapper'daki sarkan girişi kaldırmaya çalışırken hala "Aygıt veya kaynak meşgul" oluyorum. Sürücüyü yeniden başlatmadan yeniden bağlayıp takabilir miyim?

İşte denedim (uzun isim "xxxxx" olarak değiştirildi) ...

$ 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

Cihazı tekrar bağladıktan sonra ...

$ sudo cryptsetup luksOpen "/dev/sde1" "luks-xxxxx"
Device luks-xxxxx already exists.

[EDIT] Bu kez sorunu, açık dosyaları olmayan, ancak söz konusu cihazdaki bir klasörden başlatılmış bir GUI metin editörünü kapatarak çözdüm. Böylece soru daha belirgin hale gelir: Hangi uygulamanın cihazı açık tuttuğunu nasıl belirlersiniz?

lsofKolay bir çözüm sunmuyor gibi göz önünde bulundurun, çünkü cihaz bağlantısı kesildiğinde, lsofartık sağlanan ilgili isimler artık bağlantısı kesilmiş cihazın adını içermez.


Aynı soruna ancak CentOS'ta. Bu linki buldum : krenel.org/… fakat cihaza monte edildiğini göstermiyorum
Lars Nordin

Bu sabit hata raporuna oldukça benzer görünüyor : bugs.debian.org/cgi-bin/bugreport.cgi?bug=574126
nobar

Uyarı kelimesi: Burada gösterildiği gibi sudo ile monte etmek, kullanıcı alanı dosya yöneticisini kullanarak normal şekilde çıkmanızı önleyebilir.
nobar

Yanıtlar:


27

İki senedir bununla kavga ettikten sonra, sanırım sonunda tamamen kırdım!

dmsetup ls İhtiyacınız olan verileri size verir:

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

sonra

sudo lsof |grep 252,1

Burada sudokritik öneme sahip gözüküyor - en azından bazı durumlarda.


Bu, açık dosyaların adları ve rahatsız edici uygulamaların işlem kimlikleri dahil, cihazdaki tüm açık dosyaları kapatmak için gerekli bilgileri size vermelidir. Bu uygulamalara gidip bunları kapatabilirsiniz, ancak kaba kuvvet yaklaşımı şunun gibi olabilir:

kill -9 (process ID)

Tüm dosyaları kapattıktan sonra, mevcut montajı normal şekilde yeniden açmadan önce kapatmak için, soruda gösterilen komut satırı araçlarından bazıları gerekli olabilir.


4
Gerekli hafif çeviri dikkat edin: (252:1)olur 252,1.
nobar

12

Şifreyi durdurmadan önce LVM grubunu durdurmayı deneyin:

lvchange -a n [LVM_Group_name]

sonra

cryptsetup -v luksClose [LUKS_name]

Numune:

lvchange -a n My_vg_crypt
cryptsetup -v luksClose My_Crypt

1
Önce @ nobar'ın cevabını kullanın (ancak daha killönce deneyin kill -9). Bununla birlikte, @ nobar'ın çözümü benim için yeterli değildi - görünüşe göre çekirdeğin LVM cihaz eşlemeleri nedeniyle açık olduğu anlaşılıyor - bu cevabın çözdüğü.
Tom Hale,

+1 Benim durumumda kabul edilen cevap grepherhangi bir eşleşme bulamadı, ancak bu işe yaradı.
user000001

4

bir dahaki sefere tembel bir miktar dene

umount -l /<folder>

Bu, çoğu zaman benim için işe yarar, özellikle asılı NFS sürücülerinde faydalıdır.


Bunu denedim, ancak eldeki sorun için yardımcı olmadı. NFS üzerinden LUKS kullanamayacağınızı ve bunun sadece karanlıkta bir öneri olduğunu varsayıyorum.
Nobar

bu tam olarak benim
sorunumdu,

2

İşte bu sorunu Linux Mint 17.3'te (~ Ubuntu Trusty) çözmeyi nasıl başardım:

  1. aygıtı aygıt eşleyiciden çıkarın

    $ sudo dmsetup remove luks-xxyyzz
    
  2. geri haritala

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

Şimdi cihazlara erişilebilir.


2
Bu gönderi birine yardımcı olabilir, ancak soruda belirtildiği gibi - bazen dmsetup remove"Komut başarısız" olarak bildirilir.
nobar

0

Benzer bir durumdaydım, ancak luks-xxxxcihazı çıkararak sorunu çözemedim . Bunun yerine çıkarmak zorunda kaldım ubuntu--vg-root.

Durumum:

  • Kilitlenmeden önce yanlışlıkla cihazı çıkardım.
  • Meşgul bir hata mesajı ile başarısız olduktan sonra luks cihazı kilitlemeye veya çıkarmaya çalışmak .
  • Aynı cihazın kilidini açmak başarısız oldu çünkü aynı isimde bir cihaz zaten mevcuttu.
  • lsof cihaz için herhangi bir açık tutamaç göstermedi.

Yardım eden şey, fiziksel aygıtın fişini çekip ubuntu--vg-root, aşağıdaki komutu kullanarak aygıtı çıkarmaktı :

sudo dmsetup remove ubuntu--vg-root

Bu noktada, normal cihazımı tekrar normal kurulumumla tekrar aktif hale getirip şifresini çözdüm:

udisksctl unlock -b /dev/sda3
sudo lvchange --activate y ubuntu-vg/root
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.