Gdy byłem z dala od komputera, mój zaszyfrowany dysk USB został przypadkowo odmontowany (chociaż w tym czasie był fizycznie podłączony). Nie udało mi się odzyskać (nie próbowałem jeszcze restartu). Teraz całkowicie odłączyłem urządzenie, ale nadal próbuję usunąć „wiszące urządzenie lub zasób”, gdy próbuję usunąć wiszący wpis w / dev / mapper. Czy mogę ponownie podłączyć i zamontować dysk bez restartu?
Oto, co próbowałem (długa nazwa zmieniona na „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
Po ponownym podłączeniu urządzenia ...
$ sudo cryptsetup luksOpen "/dev/sde1" "luks-xxxxx"
Device luks-xxxxx already exists.
[EDYCJA] Tym razem rozwiązałem problem, zamykając edytor tekstowy GUI, który nie miał otwartych plików, ale został uruchomiony z folderu na danym urządzeniu. Pytanie staje się więc bardziej szczegółowe: jak rozpoznać, która aplikacja utrzymuje urządzenie otwarte?
Należy pamiętać, że lsof
nie wydaje się to łatwym rozwiązaniem, ponieważ po odłączeniu urządzenia powiązane nazwy dostarczone przez lsof
nie zawierają już nazwy odłączonego urządzenia.
Odpowiedzi:
Po dwóch latach walki z tym myślę, że w końcu całkowicie to złamałem!
dmsetup ls
zapewnia potrzebne dane:następnie
Wydaje się, że
sudo
może mieć to kluczowe znaczenie - przynajmniej w niektórych przypadkach.Powinno to dostarczyć informacji niezbędnych do zamknięcia wszystkich otwartych plików na urządzeniu - w tym nazw otwartych plików i identyfikatorów procesów dla szkodliwych aplikacji. Możesz po prostu przejść do tych aplikacji i zamknąć je, ale podejście brutalnej siły może wyglądać następująco:
Po zamknięciu wszystkich plików niektóre narzędzia wiersza polecenia przedstawione w pytaniu mogą być konieczne w celu zamknięcia istniejącego montowania, zanim będzie można go ponownie otworzyć normalnie.
źródło
(252:1)
jest niewielkie tłumaczenie: staje się252,1
.Spróbuj zatrzymać grupę LVM przed zatrzymaniem szyfru:
lvchange -a n [LVM_Group_name]
następnie
cryptsetup -v luksClose [LUKS_name]
Próba:
źródło
kill
zanimkill -9
). Jednak rozwiązanie @ nobar nie było dla mnie wystarczające - wydaje się, że samo jądro miało otwarte urządzenie z powodu odwzorowań urządzeń LVM - które to rozwiązanie rozwiązało.grep
nie znalazła żadnych dopasowań, ale zadziałało.następnym razem spróbuj leniwego umounta
Działa to dla mnie przez większość czasu, szczególnie przydatne w przypadku zawieszonych dysków NFS.
źródło
Oto jak udało mi się rozwiązać ten problem w Linux Mint 17.3 (~ Ubuntu Trusty):
usuń urządzenie z mapera urządzeń
zamapuj to z powrotem
Teraz urządzenia są dostępne.
źródło
dmsetup remove
zgłasza „Polecenie nie powiodło się”.Byłem w podobnej sytuacji, ale nie mogłem rozwiązać problemu przez usunięcie
luks-xxxx
urządzenia. Zamiast tego musiałem usunąćubuntu--vg-root
.Moja sytuacja była następująca:
lsof
nie pokazał żadnych otwartych uchwytów dla urządzenia.Pomocne było odłączenie urządzenia fizycznego i usunięcie
ubuntu--vg-root
urządzenia za pomocą następującego polecenia:W tym momencie byłem w stanie normalnie aktywować i odszyfrować urządzenie zewnętrzne za pomocą mojej zwykłej konfiguracji:
źródło