Bezpieczne usunięcie zewnętrznego dysku USB kończy się niepowodzeniem z powodu przedłużenia $

26

Podczas podłączania zewnętrznego dysku twardego USB 3.0 do portów USB 3.0 nigdy nie mogę go bezpiecznie usunąć.

Jakoś system Windows zawsze utrzymuje otwarte pliki dziennika: wprowadź opis zdjęcia tutaj „Zawsze”, ponieważ w tym czasie podłączyłem tylko dysk, skopiowałem maszynę wirtualną o pojemności 10 GB i chciałem ją później odłączyć (około 15 minut po skopiowaniu, więc całe kopiowanie zostało wykonane).

Jak widać, nie ma innego programu trzymającego uchwyt na dysku oprócz Systemu . Próbowałem zrestartować, explorer.exejak również RemoveDrive.exez Uwe Sieber . Bez powodzenia, blokady na dysku twardym zawsze pozostają.

Moim jedynym rozwiązaniem jest po prostu odłączenie go (podczas gdy boję się uszkodzenia danych?) Lub ponowne uruchomienie komputera (zawsze pomaga, prawda?).

Czy to może mieć coś wspólnego ze mną tylko z dyskiem twardym SSD, a dysk zewnętrzny jest dyskiem zwykłym? Czy może to mieć coś wspólnego ze sterownikami USB 3.0 (hub USB NEC Electronics)? Nigdy nie mam tego problemu podczas korzystania ze zwykłych portów USB 2.0.

Jakieś pomysły na to, jak prawidłowo odmontować dysk?

Dennis G
źródło
Jeśli którakolwiek z tych odpowiedzi była rozwiązaniem, możesz głosować za nią lub oznaczyć ją jako odpowiedź.
user88311

Odpowiedzi:

25

Przyszedłem, szukając możliwego wyjaśnienia lub łatwiejszego (czytaj: zautomatyzowanego / skryptu) sposobu na usunięcie tej „blokady” w metadanych MFT / TxF / NTFS. Pomyślałem, że to tam wyrzucę, ponieważ mam rozwiązanie, które zadziałało dla mnie w niezliczonych sytuacjach. Użyłem go do usuwania wszelkiego rodzaju napędów USB i eSATA, które utknęły w ten sposób. Wydaje się, że problemem są przede wszystkim dyski wymienne montowane jako dyski stałe, takie jak dyski eSATA lub obudowy USB. Pamięci USB zazwyczaj nie wydają mi się powodować tego problemu.

Warto zwrócić uwagę na to ostatnie rozróżnienie: Sandisk Extreme USB 3.0, dziwna bestia składająca się z kontrolera SSD w korpusie klucza USB, również pojawia się jako stały dysk, chociaż wydaje się, że nie ma problemu bez wyciągania go bezceremonialnie i bez każde bezpieczne usuwanie, więc zgaduję, że przynajmniej wyłącza buforowanie zapisu ze względu na jego szybkość i potencjalnie coś innego, ponieważ wydaje się, że nigdy nie ma tego problemu, zawsze zachowując jego natychmiastową usuwalność. Niekoniecznie doskonały przykład, ponieważ nie byłem dogłębnie testowany (to tylko anegdota), ale może rzucić nieco światła na to ze względu na jego „naprawiony” charakter, ale widoczny brak podatności na ten problem. Tylko jedzenie do namysłu.

<- Rozwiązanie ->

W każdym razie, najprościej mówiąc, musisz wyłączyć dysk. Możesz to zrobić na dwa sposoby. Uwaga: Istnieją nieco krótsze sposoby, aby to zrobić, ale oto absurdalnie dokładne kroki, ponieważ nie znam moich odbiorców. Metoda GUI jest zdecydowanie najszybsza, ponieważ diskpart.exe nie przyjmuje przełączników ani wbudowanych poleceń / argumentów.

  1. GUI: Uruchom -> „diskmgmt.msc” -> Znajdź dysk na liście dysków fizycznych (dolny panel) -> kliknij dysk prawym przyciskiem myszy (część najbardziej z lewej strony), a nie partycję -> Kliknij „Offline”

Lub:

  1. CLI: Uruchom -> „cmd.exe” -> wpisz „diskpart” -> wpisz „lista dysku”, znajdź swój dysk # -> wpisz „wybierz dysk x”, gdzie x jest numerem twojego dysku od ostatniego kroku -> wpisz „dysk offline”. Teraz możesz wyjść z wiersza polecenia lub po prostu wpisać „exit” w partycji dysku, a następnie zamknąć wiersz polecenia.

Uwagi:

  • Wszystko, co ważne, powinno być odłączenie woluminu w trybie offline, ponieważ usunie to zatrzymanie NTFS na dysku, ale zaznaczenie dysku jest prostsze i dokładniejsze.

  • Numery dysków są zawsze identyczne między diskpart.exe i diskmgmt.msc, ponieważ pobierają informacje z tego samego miejsca, na wypadek, gdybyś był ciekawy / zmartwiony / ostrożny.

Wieża
źródło
1
Gawron, to wygląda świetnie. Nie mogę się doczekać, aby spróbować. I tak, zawsze dzieje się tak w przypadku dysków stałych - zazwyczaj dysków zewnętrznych obsługujących maszyny wirtualne. Pozostaje jedno pytanie: co po ustawieniu zewnętrznego dysku w trybie offline ? Po prostu odłączyć? Bezpiecznie usunąć?
Dennis G,
To zadziałało dla mnie.
hattenn
Dzięki, to wygląda na przydatne. Odpowiedź @elieux jest najprostsza, jeśli przyczyną problemu jest tylko Menedżer zadań.
Reg Edit
Po prostu wracając do starych pytań i sprawdziłem link do Uwe Sieber removerive.exe, który zauważyłeś, i mam wrażenie, że działałby za pomocą tego samego mechanizmu (konturowanie i zsiadanie jest dość zbliżone pod względem praktycznym, pierwsze będący dla dysku fizycznego (emulowanego lub nie, jak wolumin iSCSI), a ten drugi jest dla zamontowanej partycji / woluminu (tj. C :, X: itp.) ... nie jestem pewien, jak podobnie działają pod arkuszami), jeśli użył opcji „-e”. Zgodnie z instrukcjami removerive.exe: „” [-e] spróbuj zsiąść i wysunąć, jeśli usunięcie się nie powiedzie ””
Rook
Na koniec wygląda na to, że sam Uwe Sieber wyjaśnia podstawy mechanizmów działających na poziomie kodu / API i błędów: codeproject.com/Articles/13839/…
Rook
10

Dzisiaj przyszło mi do głowy zajrzeć do dziennika zdarzeń. Znalazłem to zaraz po próbie usunięcia:

log: System, źródło: Kernel-PnP, identyfikator zdarzenia: 225, poziom: ostrzeżenie

Aplikacja \ Device \ HarddiskVolume2 \ Windows \ System32 \ Taskmgr.exe o identyfikatorze procesu 6436 zatrzymała usuwanie lub wysuwanie urządzenia [...]

Więc zamknąłem Menedżera zadań i Bezpieczne usuwanie działało.

David Macek
źródło
Doskonały! To rozwiązało problem dla mnie. Dlaczego więc Microsoft nie mógł umieścić tej informacji w oknie dialogowym informującym, że „program” nadal korzysta z napędu!
Reg Edit
Świetnie, to również rozwiązało problem. Windows 10. Stwierdziłem, że miałem Taskmgr w Autostart. Dlaczego więc Taskmgr blokuje dyski USB?
weberjn
chociaż podkreślanie (patrz odpowiedź @ rook) i fsutil działały w przeszłości dla mnie, dzisiaj nie. ProcessExplorer pomyślał, że blokowanie odbywa się tylko przez „system”. W każdym razie EventViewer pokazał tego samego winowajcę co ty (TaskManager), więc to zamknąłem i byłem złoty.
MPag
5

Stworzyłem ten skrypt wsadowy, aby „odblokować” dowolny wolumin. Po prostu uruchom skrypt .bat jako administrator, wybierz wolumin i naciśnij ENTER. Po tym powinieneś móc normalnie użyć „Bezpiecznego usuwania”, aby odłączyć urządzenie.

@echo off
@cls

set tempfile="%TEMP%\diskscrp.dsk"

echo.
echo   === Disk removal tool ===
echo.
echo   Select the disk volume number
echo   (if the disk has multiple volumes, select any of them)
echo.
echo list volume | diskpart | findstr /C:Volume /C:---
echo.
set /p volume="   Selected volume: "
echo.

echo select volume %volume% >>%tempfile%
echo offline disk >>%tempfile%
echo online disk >>%tempfile%

diskpart /s %tempfile% | findstr /C:"not valid"

if "%ERRORLEVEL%"=="1" (
  echo   Disk has been unlocked successfully.  Try to safely remove it now.
)

del /F %tempfile%

Ten skrypt jest oparty na sugestii @Rook, więc używa go diskpartdo przełączenia dysku w tryb offline. Gdy to nastąpi, wszystkie uchwyty zostaną przymusowo zamknięte. Różnica w tym skrypcie polega na tym, że dysk automatycznie przełącza się z powrotem do trybu online, dzięki czemu można go rozpoznać przy następnym podłączeniu do systemu.

Diego Queiroz
źródło
Słodkie! Nie korzystałem z niego, ale doceniam twoją inicjatywę, aby ułatwić wszystkim innym ... Mam kilka innych narzędzi, które dają więcej informacji (np. Hotswap !: mt-naka.com/hotswap/index_enu.htm ) na temat dyski wymienne / stałe niż wbudowany system Windows, ale nie znalazłem szybkiego i brudnego rozwiązania opartego na trybie offline, więc to świetnie!
Rook
3

Znaczna część kombinacji dysku zewnętrznego / systemu operacyjnego Windows ma ten problem, być może większość.

To, co robię, to uśpienie mojego komputera (laptopa) i odczekanie dziesięciu sekund potrzebnych na wyłączenie dysku zewnętrznego (słyszę to). Następnie odłącz.

Jeśli system śpi, wszystkie operacje we / wy są zakończone, a szyna we / wy jest zawieszona. Na dodatek do czekania na wyłączenie jest „pas i szelki”.

(Należy zauważyć, że jeśli ktoś jest zbyt paranoiczny, aby zastosować takie podejście, wykonanie hibernacji powinno być w pełni wystarczające. Nie powinno być wymagane pełne wyłączenie zasilania.)

Daniel R. Hicks
źródło
Obejście, ale to powinno zadziałać.
Dennis G
1

Na razie możesz po prostu spróbować odłączyć urządzenie zewnętrzne, wyłączając komputer, a następnie odłączając go, tym samym próbując utracić dane, a następnie skonfigurować go w celu łatwego usunięcia, aby zapobiec utracie danych po prostu odłączając go bez odinstalowywania.

Szczerze mówiąc, brzmi to trochę jak błąd MBR, w którym dysk utknął, widząc się jak zawsze podłączony, w takim przypadku, jeśli miałbyś odłączyć dysk podczas zasilania, możesz uszkodzić MBR i pozostawić ci 2 opcje, ręczne naprawianie MBR lub próba użycia oprogramowania, takiego jak naprawa MBR, aby móc ponownie uzyskać dostęp do dysku, lub użyj oprogramowania takiego jak gparted, aby ponownie sformatować dysk i ustawić nową tablicę partycji, w której najprawdopodobniej wystąpił błąd.

użytkownik88311
źródło
„następnie skonfiguruj go w celu łatwego usunięcia” <- czy mógłbyś rozwinąć to, co masz na myśli? Skąd mam wiedzieć, że dysk uważa, że ​​zawsze jest podłączony, tzn. Że nie jest zewnętrznym dyskiem USB?
Dennis G
Podłącz dysk ponownie, gdy zostanie on usunięty w stanie wyłączonym i komputer zostanie ponownie uruchomiony, właściwości, sprzęt, kliknij dysk, właściwości, zasady, zoptymalizuj pod kątem szybkiego usunięcia. EDYCJA: W swoim pytaniu stwierdzasz, że w rzeczywistości jest to zewnętrzny dysk USB.
user88311,
W większości przypadków system instaluje dyski zewnętrzne z ustawioną flagą „szybkie usuwanie”. I, jak rozumiem, to ustawienie ma sprawić, że „jest wysoce nieprawdopodobne”, że samo odłączenie napędu spowoduje problemy.
Daniel R Hicks
1

Uważam, że te pliki należą do Transactional NTFS (TxF).

Słyszę, że Transactional NTFS jest używany przez automatyczną aktualizację, ale nie mam pojęcia, dlaczego system chciałby umieścić to na dysku zewnętrznym, a następnie nie byłby w stanie zatrzymać go na żądanie bezpiecznego usunięcia. Informacje o zasobie Fsutil nie pokazują żadnej aktywności.

Wypróbuj w konsoli cmd:

przystanek zasobów fsutil E:

lub, jeśli to nie pomoże,

fsutil zasób setautoreset true

i uruchom ponownie. Możesz także spróbować zatrzymać usługę związaną z TxF w Zarządzaniu / usługach komputerowych

Sem
źródło
To całkiem interesujące rzeczy! Zajmę się tym następnym razem.
Dennis G,
2
Ale ... nie działa. Podczas wykonywania fsutil resource stop <drive:>sysinternals handle.exenie pokazuje żadnych uchwytów. Są więc usuwane, ale kiedy próbuję je bezpiecznie usunąć, uchwyty są z powrotem tam, gdzie były.
Dennis G,
0

Ostatnio to samo działo się z dyskiem flash. Tak jak ty, ciągle pokazywałem aktywne uchwyty $ Extend i zakładałem, że uniemożliwiają mi bezpieczne usunięcie dysku. Natknąłem się na to pytanie i bezskutecznie wypróbowałem fsutilsugestię Sem . Dla mnie zadziałało ręczne odmontowanie dysku. Ponieważ mój dysk flash został zamontowany jako F :, uruchomiłem:

mountvol f: /d

Następnie odłączyłem napęd, ponownie go podłączyłem, ponownie mountvol f: <volumename>zamontowałem i używałem przez pewien czas. Kiedy skończyłem, sprawdziłem aktywne uchwyty i zobaczyłem te same wpisy $ Extend, które zauważyłem wcześniej. Kiedy próbowałem wykonać „normalne” bezpieczne usuwanie, udało się to pomimo aktywnych uchwytów.

Nie wiem, czy to była dla mnie zwykła szansa, ale dodam ją tutaj na wypadek, gdyby pomógł komukolwiek innemu.

ajk
źródło
Myślę, że $ Extension to czerwony śledź - jest jeszcze jeden powód, który powstrzymuje system Windows przed demontażem dysku.
Daniel R Hicks
Zgadzam się, że ta realizacja była największym powodem, dla którego opublikowałem tę odpowiedź. Goniłam bez końca problemy z rozszerzaniem i odkryłam, że te uchwyty nie powodują żadnych problemów z bezpiecznym usunięciem. Mam tylko nadzieję, że skoro ten czerwony śledź doprowadził mnie do tego pytania, być może ta odpowiedź pomoże następnemu pechowemu rybakowi :).
ajk