Pełna kontrola fizyczna HD


17

Chciałbym przeprowadzić pełną, fizyczną kontrolę sektor po sektorze na niektórych zewnętrznych dyskach twardych. O ile mi wiadomo, chkdsknie zapewnia tej opcji.

Czy istnieje obejście problemu chkdsklub dobry zamiennik? Korzystam z systemu Windows 7 na tym komputerze, ale mile widziane są również rozwiązania dla Linuksa z płyty CD na żywo.

Dzięki,

Adam Matan


Z jakiego systemu operacyjnego korzystasz? Ponieważ wspomniałeś o chkdsk, zakładam, że jest to Windows NT, XP, Vista, 7, Server 2003 lub Server 2008.
rob

Odpowiedzi:


28

W systemie Windows NT / XP / Vista / 7 możesz otworzyć monit CMD i korzystać z niego

chkdsk /r x:

gdzie x to litera dysku USB, przy założeniu, że dysk jest podzielony na partycje i ma przypisaną literę dysku.

Sugeruję zdobycie Live CD z Ubuntu i uruchomienie systemu Linux, a następnie użycie Badblocks do skanowania w poszukiwaniu wad fizycznych.

Użyj, sudo fdisk -laby wyświetlić listę wszystkich dysków i ich partycji. Dla każdego dysku :

sudo badblocks -nvs /dev/sdx

gdzie twój dysk twardy to / dev / sdx. Spowoduje to wykonanie nieniszczącego testu odczytu / zapisu na dysku bez sprawdzania systemu plików.

Jeśli nie przejmujesz się danymi, możesz to zrobić zamiast tego, aby przeprowadzić dokładniejsze skanowanie:

sudo badblocks -wvs /dev/sdx

Opcja -w nakazuje badblocks napisać znany wzorzec, a następnie ponownie odczytać dane, aby upewnić się, że pasuje do wzorca. Robi to 4 razy, używając wzorów 0xaa, 0x55, 0xff i 0x00 (naprzemiennie zera i zera, następnie wszystkie zera, a następnie wszystkie zera). Pamiętaj, że spowoduje to zastąpienie wszystkich danych na dysku i wyczyści wszystkie partycje.

Jeśli na dysku znajduje się system plików Linux, możesz sprawdzić błędy systemu plików i jednocześnie uruchomić złe bloki. Najpierw uzyskaj listę wszystkich dysków i ich partycji:

sudo fdisk -l

Następnie dla każdej partycji :

sudo e2fsck -fcc /dev/sdx#

Ponownie, / dev / sdx jest dyskiem twardym, który chcesz przeskanować. # to numer partycji (np. / dev / sdb1). Dwukrotne podanie c wymusi uruchomienie fsck i użyje złych bloków do wykonania nieniszczącego testu odczytu i zapisu. Jeśli użyjesz tylko raz opcji c, badblocks wykona test tylko do odczytu.

Uruchamiam badblocks -wvs na każdym nowym dysku twardym, który kupuję przed uruchomieniem.


1
Nie sądzę, że chkdsk / r naprawdę skanuje każdy blok ... działa znacznie szybciej niż się spodziewałem po coś czytającego każdy blok. Może warto zwrócić uwagę na nieniszczącą opcję testu badblocków, ponieważ ma on już dane na dyskach.
davr

@davr: Dzięki; Wspomniałem już o nieniszczącym teście badblocks w poleceniu fsck, ale dodałem jawne, że badblocks -vs jest dokładny. Polecenie chkdsk / r sprawdza, czy nie ma uszkodzonych bloków i kiedy je uruchamiam, zajmuje to trochę czasu, ale prawdopodobnie nie jest tak dokładne jak badblocks -w. Czy na pewno nie myślisz o chkdsk / f lub chkdsk / p, które naprawią tylko błędy systemu plików, ale nie będą skanować w poszukiwaniu złych bloków?
rob

@davr: Pomyślałem o jednej rzeczy ... chkdsk prawdopodobnie nie sprawdza rekordu rozruchowego ani tablicy partycji. Ponieważ jako argument przyjmuje tylko nazwę woluminu (tj. Literę dysku, punkt instalacji lub nazwę woluminu), co sugeruje, że można sprawdzić wolumin logiczny tylko pod kątem błędów nośnika, a wszystko poza określonym woluminem (partycją) jest ignorowane. Nie powinno to jednak mieć większego znaczenia pod względem szybkości skanowania. Czy o tym mówisz?
rob

1
Twoje użycie fsck jest tak naprawdę odniesieniem do e2fsck. Standardowy plik fsck nie zawiera -cargumentu wiersza polecenia. Poza dobrą odpowiedzią.
DaveParillo

Masz rację, Dave. Dzięki; Przesunąłem instrukcje badblocks z góry, odkąd korzysta z systemu Windows, ale naprawiłem instrukcje e2fsck i przeniosłem je na koniec dla każdego, kto korzysta z tego systemu i używa Linuksa.
Rob

5

Chciałbym przeprowadzić pełną, fizyczną kontrolę sektor po sektorze na niektórych zewnętrznych dyskach twardych.

Pobierz i uruchom HD Tune , wybierz dysk, który chcesz skanować z menu rozwijanego, kliknij kartę Skanowanie błędów (upewnij się, że pole Szybkie skanowanie jest wyczyszczone) i naciśnij Start .

wprowadź opis zdjęcia tutaj

HD Tune jest bezpłatny do użytku osobistego i przenośny (nie wymaga instalacji).


1
Freeware ?? 15-dniowa wersja próbna! To tylko HD Tune, które jest darmowe.
Loren Pechtel

przepraszam, zredagowałem post ... nie robi to jednak wielkiej różnicy, ponieważ funkcja, o której mówię, jest dostępna w bezpłatnej wersji, jak widać na zrzucie ekranu.

1

Wielu producentów napędów, takich jak Western Digital i Seagate, udostępnia narzędzia, które przeprowadzą tego rodzaju kontrolę. Zwykle narzędzie Windows.


O ile mi wiadomo, to po prostu uruchamia autotest SMART, który nie jest pełnym skanowaniem dysku.
endolith,

endolith - Testy WD semm wykraczają poza SMART. Bezpłatne pobieranie, więc spróbuj, jeśli masz dysk WD
Dave M

1

W systemie Windows użyję darmowej wersji HDTune do skanowania w poszukiwaniu uszkodzonych sektorów. Jednak program Linux BadBlocks jest znacznie lepszy, daje dokładną listę każdego uszkodzonego bloku i obsługuje zarówno sprawdzanie odczytu, jak i zapisu (chociaż zapis jest destrukcyjny).


2
badblocks ma również nieniszczący test zapisu. odczytuje blok, zapisuje nową wartość, sprawdza nową wartość, a następnie zapisuje oryginalny blok z powrotem. więc nie zniszczy żadnych ważnych danych na dysku. minusem jest to, że dodatkowe operacje sprawiają, że działa znacznie wolniej.
davr

1

Każdy nowoczesny dysk automatycznie mapuje nieczytelne / niepewne bloki. System operacyjny zwykle nie otrzyma błędu odczytu bloku, chyba że blok jest naprawdę nieczytelny, a zapisanie tego bloku spowoduje, że dysk go odwzoruje. To się nie powiedzie tylko wtedy, gdy w napędzie nie ma wolnych bloków, w takim przypadku nadszedł czas, aby wymienić napęd!

Rezultatem jest to, że system operacyjny oznaczający „złe bloki” w stylu skandisku jest zwykle bezcelowy.

Powiedziawszy to, użyłbym rozszerzonego autotestu SMART. smartmontools powinny działać. Możesz także uzyskać liczbę ponownie mapowanych bloków.

Zauważ, że w Linuksie zwykły dd if=/dev/sdx of=/dev/null, gdzie sdx jest urządzeniem blokującym dysk, wykona pełny logiczny odczyt dysku. Jeśli jakieś bloki są nieczytelne, pojawi się błąd. Jeśli nie masz nic przeciwko blokowaniu danych, możesz dd if=/dev/zero of=/dev/sdxpo prostu nadpisać cały dysk, powodując w razie potrzeby ponowne mapowanie dysku.


1
Zamiast używać „dd”, lepiej użyć polecenia linux „badblocks”, które jest specjalnie zaprojektowane do tego zadania.
davr

1
Chodzi mi o to, że „to zadanie” jest tak samo przestarzałe, jak pojęcie „złego bloku”.
Kapitan Segfault,

Dysk twardy nie naprawia uszkodzonych bloków, dopóki do nich nie napiszesz. Jednym z dobrych sposobów pisania do nich jest użycie złych bloków w trybie nieniszczącym. : D
endolith

Chciałbym, żeby to była prawda. Mylisz dyski wewnętrzne z dyskami zewnętrznymi USB. Obudowy dysków USB wymagają lepszego oprogramowania układowego z raportowaniem SMART, którego w większości nie ma.
Nicolay77,

@endolith Niektóre dyski twarde przenoszą podejrzane bloki również podczas czytania. Przynajmniej niektóre dyski twarde dla przedsiębiorstw.
Roland Pihlakas

-1

Nigdy nie przepadałem za zewnętrznymi dyskami USB, ponieważ tak naprawdę nie istniały, gdy napisano jedne z najlepszych narzędzi, takich jak ScanDisk . Szczególnie podoba mi się wersja ScanDisk dostarczana z systemem Windows 98 SE.

Tak więc, jeśli jest to dysk zewnętrzny, prawdopodobnie należy go umieścić na komputerze, a następnie uruchomić fsck -fna dysku z Linux LiveCD, takiego jak ratunkowa płyta CD PLD .


1
ScanDisk jest przestarzały. fsck -f wymusi uruchomienie fsck, ale nie wykona testu nośnika fizycznego.
rob
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.