Jak odznaczyć klaster NTFS jako zły?

14

Jak odznaczyć klastry jako złe w NTFS?

tło

Przez pomyłkę pobiegłem

>chkdsk /R

na moim dysku SSD, gdzie

/ R : lokalizuje uszkodzone sektory i odzyskuje czytelne informacje (implikuje / F)
/ F : naprawia błędy na dysku

A teraz mam klaster oznaczony jako zły na moim dysku. Muszę odznaczyć ten klaster jako zły.

Uwaga : chkdskma opcję ponownej oceny klastra i przywrócenia go do użycia:

/ B : Tylko NTFS: Ponownie ocenia złe klastry w woluminie (implikuje / R)

Niestety ta opcja spowoduje odznaczenie klastra tylko wtedy, gdy nie jest już złe. Potrzebuję niezaznaczonego klastra.

Jak odznaczyć klaster NTFS jako zły?

Dlaczego to robisz?

Nie ma znaczenia, dlaczego ja i setki innych zadaję to pytanie. Ale problem polega na tym, że na moim dysku jest zły sektor. Czas wymienić dysk na nowy. Aby to zrobić, należy wykonać kopię lustrzaną dysku SSD na inny dysk SSD za pomocą kopii oprogramowania Windows .

Niestety znany błąd w kopii lustrzanej NTFS systemu Windows uniemożliwia wykonanie kopii lustrzanej, jak udokumentowano w KB325615 :

Nie można utworzyć kopii lustrzanej oprogramowania, jeśli dysk zawiera uszkodzone bloki

DMIO działa poniżej systemu plików, a jeśli znajdzie błędy We / Wy podczas odczytu z sektora na dysku źródłowym lub podczas próby zapisania danych na dysku docelowym, przerywa operację dublowania.

Oczywistym obejściem było zmniejszenie woluminu systemu operacyjnego, aby zły sektor przekroczył koniec woluminu. W Windows 7, gdy spróbujesz Zmniejsz wolumin będzie automatycznie przenieść pliki z drogi.

wprowadź opis zdjęcia tutaj

To coś dobrego. W dawnych czasach, jeśli chciałeś zmniejszyć wolumin, musiałeś użyć narzędzia do defragmentacji, które popychałoby wszystkie pliki w kierunku przedniej części dysku; pozostawiając wolne miejsce na końcu.

Niestety nie jest teraz nieruchome plik w drodze: $BadClus. Psychiatra Defrag operacja zauważa plik nieruchome w dzienniku zdarzeń:

Analiza zmniejszania objętości została zainicjowana w systemie operacyjnym woluminu (C :). Wpis w dzienniku zdarzeń zawiera szczegółowe informacje o ostatnim nieprzenośnym pliku, który może ograniczyć maksymalną liczbę bajtów, które można odzyskać.

Szczegóły diagnostyczne:

  • Ostatnim nieporuszalnym plikiem jest: \ $ BadClus: $ Bad: $ DATA
  • Ostatni klaster pliku to: 0xdc1ded
  • Zmniejsz potencjalny cel (adres LCN): 0xa91bd9
  • Flagi plików NTFS to: -S - D
  • Faza kurczenia: <analiza>

Więc:

  • nie mogę wykonać kopii lustrzanej woluminu, dopóki złe sektory nie zostaną usunięte
  • zmniejszenie głośności usunie złe sektory
  • nie mogę zmniejszyć głośności, dopóki $BadClusplik rzadki nie zostanie przeniesiony
  • nie mogę się ruszyć, $BadClusgdy fizycznie zajmuje złe skupiska
  • $BadClus fizycznie zajmie złe klastry, podczas gdy NTFS uważa, że ​​klaster jest zły

Jak odznaczyć klaster jako zły?

Również dla osób, które jeżdżą zjawy

Rozwiązanie mojego problemu zadziałałoby również w najczęstszym przypadku:

Ktoś przenosi dysk zawierający uszkodzone sektory na nowy dysk, a wtedy dobry dysk nadal ma te klastry oznaczone jako złe, mimo że są dobre. Zdarza się, że mają do dyspozycji obejście:

>chkdsk /B

Tyle że to nie działa w moim przypadku. (I nawet jeśli zadziałało w moim przypadku, nie pytam o to.)

Bonusowa rozmowa

Oczywiście dysk SSD firmy Kingson nie utrzymuje wolnych sektorów. Gdyby tak było, mógłby dla mnie w przejrzysty sposób zamapować zapasowy sektor i nie chciałbym, aby NTFS próbował przesadnie myśleć.

SpinRite

próbowałem SpinRite'ing na dysku SS. Napotyka wadliwy sektor, ale nie może uzyskać żadnych wartości z dysku:

══════════════════╤═══════════════════════════╤═════════════════════════════════
cylinder : 7,183  │     data samples : 1,999  │  first uncertain bit : · · · · ·
  sector :    17  │   unique samples :     0  │   last uncertain bit : · · · · ·
    head :   187  │  discarded sples :     0  │   uncertain bit span : · · · · ·

Liczba próbek danych liczy do 2000, a następnie powraca do zera i kontynuuje pracę.

wprowadź opis zdjęcia tutaj

Po około 20 pętlach (tj. 40 000 próbek danych) poddałem się.

Klonowanie

Jeszcze raz; nie pomylmy pytania z przykładem. Pytanie brzmi: jak odznaczyć klastry jako złe w NTFS. Długo po tym, jak zrezygnuję i wyrzucę dysk SSD, pytanie pozostanie. Nie pomyl mojego problemu z pytaniem. To nie znaczy, że mogę spróbować rozwiązać problem:

DriveImageXML dociera do uszkodzonego sektora i przerywa działanie.

GParted nie ładuje się. Pojawi się graficzny ekran rozruchowy, następnie okno konsoli przewija tekst, a następnie czarny ekran nic

Clonezilla odmawia sklonowania mojego dysku SSD:

Ten dysk zawiera niedopasowaną partycję GPT i MGR: / dev / sdb
Spowoduje to dezorientację Clonezill i może spowodować, że zapisany obraz będzie bezużyteczny lub nie sklonuje dysku.

Napraw problem HTML, a następnie ponownie uruchom Clonezilla.
Program zakończony.

wprowadź opis zdjęcia tutaj

Jak odznaczyć klaster jako zły w NTFS?

Ian Boyd
źródło
Czy potrzebujesz rozwiązania dla systemu Windows, czy może używanie systemu Linux byłoby w porządku?
Thomas Weller,
2
@ThomasW. nie przeszkadza mi narzędzie do samodzielnego uruchamiania; używając dowolnego systemu operacyjnego. Oczywiście wolałbym narzędzie GUI. Zmęczyłem się używaniem linii poleceń w 1990 roku. Zacząłem szukać użycia CreateFiledo bezpośredniego otwierania woluminu; ale zdałem sobie sprawę, że muszę zacząć od zera, analizując wszystkie nieudokumentowane struktury danych. otworzyłem wolumin bezpośrednio do edycji w moim ulubionym edytorze szesnastkowym, ale miałem ten sam minus, ponieważ musiałem ręcznie parsować struktury szesnastkowe.
Ian Boyd,
@ThomasW. dlaczego nawet pytasz, czy nie możesz odpowiedzieć na pytanie, jak to naprawić w systemie Linux? jeśli wszystko, co chcesz powiedzieć, to to, że jeśli naprawienie go z linuksowego live CD jest w porządku, nie wiesz jak, ale powinien dodać tag linux.
barlop
Jeśli używasz MBR dla partycji dysku sgdisk -z / dev / sdb wyczyści GPT, a clonezilla go skopiuje. backup-utility.com/articles/…
cybernard

Odpowiedzi:

7

Odpowiem na tytułowe pytanie nic więcej. 1

Po pierwsze zauważ, że jeśli sektor jest naprawdę zły, odznaczenie go nie sprawi, że będzie on czytelny. Więc twoje oprogramowanie do klonowania prawdopodobnie dusi się podczas czytania.

W NTFS klaster jest oznaczony jako zły, przypisując go do specjalnego strumienia,$BadClus:$Bad pliku rzadkiego.

Potrzebujesz tego

  • edytuj swoją listę run, aby usunąć odpowiednie przydzielone bloki
  • zaznacz odpowiednie klastry jako wolne w $Bitmap.

  • Aby odznaczyć wszystkie złe bloki, istnieje ntfsfix -b -d( -b= wyczyść listę złych bloków, -d= wyczyść / nie ustaw „brudnej” flagi) ( inna metodantfstruncate robi dokładnie to samo 2 ).

    • Może to wprowadzać niewielkie niespójności do metadanych (w moim przypadku kilka wskaźników najwyraźniej zostało nieposortowanych), nie jestem pewien dlaczego, więc albo uruchom chkdsk -fręcznie, albo pomiń -duruchamianie go podczas uruchamiania systemu Windows, jeśli / w przypadku wystąpienia błędów FS.
  • Usunięcie określonego bloku jest znacznie trudniejsze, ponieważ nie znalazłem żadnego istniejącego oprogramowania, które mogłoby to zrobić po wyjęciu z pudełka 3 . Rozwiązanie problemów z uszkodzonymi sektorami NTFS: Metaplik $ BadClus - kod Katy opisuje sposób - po prostu ręcznie edytuje listę run i mapę bitową.


1 Tylko dlatego, że obsługa uszkodzonych sektorów + klonowanie NTFS + jest zbyt szerokim tematem. Chętnie odpowiem na pytania bezpośrednio związane z omawianą sprawą.
2 sprawdziłem kod źródłowy ntfsfix v2015.3.14.
3 do usilnych te, to nie może to zrobić: ntfscat(nie można odczytać sektory nieczytelne), ntfscp(nie mogę pisać do offset), ntfstruncate, ntfsfallocate, dd(nie można otworzyć $BadClus:$Badna piśmie)

ivan_pozdeev
źródło
To powinno być wybrane jako Najlepsza odpowiedź.
Hashim
1

Miałem dysk twardy, który rozwinął złe klastry. Zastąpiłem go znanym dobrym napędem. Proces przywracania przywrócił złe dane w klastrze, a także inne dane. To było na komputerze z systemem Windows 7 Enterprise.

Moje rozwiązanie polegało na uruchomieniu polecenia „chkdsk d: / b” (jak sugerowano wcześniej). / B mówi mu (tylko dla NTFS), aby ponownie skanował wcześniej oznaczone złe klastry. Przynajmniej w moim przypadku (i podejrzewam, że wszystkie wersje obsługują / b), usuwa listę uszkodzonych klastrów bezpośrednio przed rozpoczęciem skanowania w poszukiwaniu. Gdy zobaczysz komunikat „Usuwanie X klastrów z pliku Bad Clusters”, powinieneś być w stanie zabić proces chkdsk (ponieważ jest to tylko odczyt danych).

Uwaga: Istnieje możliwość, że program chkdsk aktualizuje plik złych klastrów w momencie zabicia procesu, jeśli zdarzy się, że znajdzie uszkodzony sektor na początku dysku. Zaryzykowałem i udało mi się zresetować plik złych klastrów bez konieczności pobierania wielu innych programów, które i tak wymagają pełnego chkdsk. YMMV.

CasaDeRobison
źródło
To faktycznie działało. Po kroku 2 wystarczy zamknąć cmdokno. Następnie uruchom, chkdsk d: /fktóry powie CHKDSK discovered free space marked as allocated in the volume bitmap.i podąży Windows has made corrections to the file system..
Davor Josipovic
0

Najpierw najlepiej jest sklonować dysk. Następnie użyj chkdsk /Bna nowym działającym dysku.

Teraz, jeśli chodzi o odznaczenie prawdziwego złego sektora, co jest trudne. Możesz użyć:

Każdy produkt powinien zmienić mapowanie uszkodzonego sektora, a następnie CHKDSK / B powinien odznaczyć go.

Pobierz gparted lub partedmagic ISO. Uruchom z niego i zmniejsz partycję.

Działa to, ponieważ system Windows NIE jest uruchomiony, więc to oprogramowanie zmniejsza partycję bez względu na wszystko. Potem chkdsk /Bzajmie się resztą.

Jeśli to wszystko zawiedzie, czeka Cię brzydka droga bólu. Musisz uzyskać edytor sektorów i ręcznie edytować system plików. Niestety wykracza poza zakres mojej wiedzy na temat NTFS. W przypadku FAT lub FAT32 jest to bardzo proste.

cybernard
źródło
Jako dysk SSD nie ma wolnych sektorów, na które można dokonać mapowania. Właśnie dlatego SMART napędu wciąż notuje Pending Sector Countzero i Reallocated Sector Countzero.
Ian Boyd,
Katy Coe ma świetnego bloga, który zaczyna zagłębiać się w trzewia NTFS. Ale moje oczy płonęły, gdy musiałem zacząć obliczać przesunięcia, logiczne numery klastrów, wirtualne numery klastrów oraz fakt, że $ BadClus jest plikiem zapasowym , który w rzeczywistości jest wielkości całego woluminu. prawie na pewno zniszczę mój (działający) dysk.
Ian Boyd,
2
W rzeczywistości dysk SSD ma mnóstwo wolnych sektorów. W rzeczywistości SSD 120 GB prawdopodobnie ma do 8 GB wolnych sektorów. Dlaczego twój dysk nie odwzorował go automatycznie, nie jest mi znane. Użyj gparted i zmniejsz partycję.
cybernard
Bardzo możliwe, że jest to stary, wycofany, nieobsługiwany dysk Kingston o pojemności 64 GB. A może to po prostu błąd w oprogramowaniu napędu, w którym zapomnieli zaimplementować mapowanie sektorów.
Ian Boyd,
Również klonowanie dysku kończy się niepowodzeniem, gdy napotkają zły sektor (przynajmniej tak zrobił DriveImageXML ).
Ian Boyd,
0

Ponieważ próbujesz wykonać kopię lustrzaną dysku (i wygląda na to, że używasz systemu Windows 7), istnieje inne podejście:

Użyj wbudowanego narzędzia, aby utworzyć kopię zapasową do przywrócenia na dobrym dysku. Przejdź do Panelu sterowania, System i zabezpieczenia, Kopia zapasowa. Tam utwórz obraz systemu, a także dysk do naprawy systemu.

Następnie możesz wymienić stary wadliwy dysk na dobry, a następnie przywrócić system do stanu za pomocą dysku naprawczego systemu i wykonanej kopii zapasowej.

João Paulo
źródło
0

pakiet gddrescue (gddrescue - narzędzie do odzyskiwania danych GNU) powinien wykonać to za Ciebie.

Pobierz samodzielną dystrybucję opartą na Debianie (CD lub pamięć USB), zainstaluj gddrescue za pomocą „sudo apt-get install gddrescue”, a następnie sklonuj dysk SSd, otwierając okno terminala i wydając:

ddrescue -f / dev / sda / dev / sdb ./ddrescue.log

(gdzie / dev / sda to źródło, a / dev / sdb to docelowy dysk SSD)

ddrescue spróbuje odzyskać zły blok i jeśli nie będzie mógł go pominąć.

Po zakończeniu polecenie chkdsk / f / b powinno zakończyć zadanie.

visnotjl
źródło
0

Wygląda na to, że Twoim celem jest zmniejszenie rozmiaru partycji, a system Windows nie zmniejszy jej z powodu pliku $ BadClus, który istnieje z powodu złych klastrów.

Mam dla ciebie alternatywne rozwiązanie, które powinno zmniejszyć dysk bez konieczności bezpośredniego zajmowania się plikiem $ BadClus. Użyj Kreatora partycji, aby zmniejszyć partycję. Kreator partycji jest łatwy w użyciu, jest darmowy do użytku niekomercyjnego, może być uruchamiany z poziomu systemu Windows za pomocą GUI lub z dysku CD lub rozruchu USB, na którym działa mały Linux, a następnie daje to samo GUI. Ten program może także odzyskać usunięte partycje i konwertować między tabelami partycji MBR i GPT.

Wystąpiły problemy z tym, że system Windows nie zmniejszał partycji poza określony punkt, a następnie wypróbuję Kreatora partycji na tej samej partycji, co robi to bez problemu. Podejrzewam, że Kreator partycji zignoruje plik $ BadClus. Korzystam z tego programu od ponad 8 lat i ostatecznie kupiłem wersję Pro, ponieważ na nią zasłużyli. Znalazłem ten program jako zamiennik PQMagic, który kupiłem w 1996 roku, który był fantastycznym programem do partycjonowania DOS dla mniejszych dysków.

Erik
źródło