Jak uruchomić dysk kontrolny?

84

Podejrzewam, że na dysku może znajdować się zły sektor. Użyłem systemu plików ext3.

Jakie narzędzie jest najlepszym odpowiednikiem narzędzia do sprawdzania błędów w systemie Windows?

Guillaume Coté
źródło
@PabloBianchi: To pytanie ma dokładnie taki sam zakres. Zgłaszam je jako mod do ich scalenia.
David Foerster

Odpowiedzi:

101

Dyski

Aby sprawdzić uszkodzone sektory, sprawdź dane SMART, prawdopodobnie najlepiej dostępne, uruchamiając narzędzie Dyski ( Palimpsest ). Nawet jeśli nie widzisz żadnych złych bloków, uruchom autotest, aby się upewnić.

Program jest zawarty w gnome-disk-utilitypakiecie. Biegaćgksudo gnome-disks

SMART od Palimpsest

Lub w wersji Ubuntu 16.04 (3.18):

SMART z dysków

Badblocks

Możesz także użyć badblocks

sudo badblocks -sv /dev/sda

aby tylko sprawdzić lub najpierw sprawdzić i naprawić, zapisz wynik do pliku tymczasowego:

sudo badblocks -sv /dev/sda  > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1

sprawdzi cały dysk i wydrukuje wszystkie złe bloki napotkane na / dev / sda .

Z badblocksinstrukcji:

Ważna uwaga: jeśli dane wyjściowe złych bloków mają być podawane do programów e2fsck lub mke2fs, ważne jest prawidłowe określenie rozmiaru bloku, ponieważ generowane numery bloków są bardzo zależne od rozmiaru bloku używanego przez system plików . Z tego powodu zdecydowanie zaleca się, aby użytkownicy nie uruchamiali Badblocks bezpośrednio, ale raczej używali opcji -c programów e2fsck i mke2fs.

fsck

fscksamo w sobie nie pomoże ci znaleźć złych sektorów, a co gorsza, jeśli jest wiele złych sektorów, może jeszcze bardziej uszkodzić twoje dane. Używaj go tylko wtedy, gdy dysk jest w dobrej kondycji.

zorganizować
źródło
1
W rzeczywistości instrukcja badblocks odradza jej bezpośrednie używanie i kieruje użytkowników do e2fsck z opcją „-c” (tylko do odczytu) lub „-cc” (do odczytu i zapisu).
mrówa
2
dla przypomnienia, 13.04 uruchamiasz palimpsest, po prostu uruchamiając „dyski” z menu ubuntu, jednak ... nie widzę opcji uruchomienia autotestu (być może dlatego, że mam tylko jeden dysk, i to on jest uruchomiony) Ubuntu ...)
rogerdpack
2
@ mrówa instrukcja mówi tylko, aby to zrobić, jeśli „wyjście badblocków zostanie przekazane do programów e2fsck lub mke2fs”
Jon
1
Umieść informacje, aby wyświetlić listę wszystkich dysków, użyj sudo fdisk -l
Kangarooo
2
nazywa się to teraz dyskami gnome
endolith
74

W tej odpowiedzi założę, że dysk pamięci pojawia się jako urządzenie blokowe na ścieżce /dev/sdc. Aby znaleźć ścieżkę dysku do przechowywania danych w naszej bieżącej konfiguracji, użyj:

  • Gnome Disks Zainstaluj dyski Gnome (wcześniej Gnome Disk Utility, alias palimpsest), jeśli GUI jest dostępny, lub
  • na terminalu spojrzenie na wyjściu lsblki ls -l /dev/disk/by-idi starają się znaleźć właściwe urządzenie według rozmiarów, partycjonowania, producenta i nazwą modelu.

Kontrola podstawowa

  • wykrywa tylko całkowicie niereagujące media
  • prawie natychmiastowe (chyba że medium zostanie odwirowane lub złamane)
  • bezpieczny
  • działa na nośnikach tylko do odczytu (np. CD, DVD, BluRay)

Czasami nośnik pamięci po prostu w ogóle nie chce działać. Nadal pojawia się jako urządzenie blokujące jądro i menedżer dysku, ale jego pierwszy sektor zawierający tablicę partycji nie jest czytelny. Można to łatwo zweryfikować za pomocą:

sudo dd if=/dev/sdc of=/dev/null count=1

Jeśli to polecenie spowoduje wyświetlenie komunikatu o „błędzie wejścia / wyjścia”, oznacza to, że dysk jest uszkodzony lub w inny sposób nie działa zgodnie z oczekiwaniami z jądrem systemu Linux. W tym pierwszym przypadku, przy odrobinie szczęścia, specjalista ds. Odzyskiwania danych z odpowiednio wyposażonym laboratorium może uratować jego zawartość. W tym drugim przypadku warto wypróbować inny system operacyjny. (Natknąłem się na dyski USB, które działają w systemie Windows bez specjalnych sterowników, ale nie w systemie Linux lub OS X.)

SMART autotest

  • regulowana dokładność
  • natychmiastowe do wolnego lub wolniejszego (zależy od dokładności testu)
  • bezpieczny
  • ostrzega przed prawdopodobną awarią w najbliższej przyszłości

Urządzenia, które go obsługują, można zapytać o ich stan zdrowia za pomocą SMART lub poinstruować je o przeprowadzeniu autotestów integralności o różnej dokładności. Jest to zazwyczaj najlepsza opcja, ale zwykle dostępna tylko na (nie starożytnych) dyskach twardych i dyskach SSD. Większość wymiennych nośników flash nie obsługuje tego.

Dalsze zasoby i instrukcje:

Kontrola tylko do odczytu

  • wykrywa tylko niektóre błędy Flash Media
  • całkiem niezawodny dla dysków twardych
  • powolny
  • bezpieczny
  • działa na nośnikach tylko do odczytu (np. CD, DVD, BluRay)

Aby przetestować integralność odczytu całego urządzenia bez zapisywania na nim, możemy użyć w badblocks(8)następujący sposób:

sudo badblocks -b 4096 -c 4096 -s /dev/sdc

Ta operacja może zająć dużo czasu, zwłaszcza jeśli dysk pamięci faktycznie jest uszkodzony. Jeśli liczba błędów wzrośnie powyżej zera, będziemy wiedzieć, że jest zły blok. Możemy bezpiecznie przerwać operację w dowolnym momencie (nawet na siłę podczas awarii zasilania), jeśli nie jesteśmy zainteresowani dokładną ilością (i być może lokalizacją) złych bloków. Z opcją możliwe jest przerywanie automatycznie po błędzie -e 1.

Uwaga dla zaawansowanych zastosowań: jeśli chcemy ponownie wykorzystać dane wyjściowe e2fsck, musimy ustawić rozmiar bloku ( -b) na taki, jaki zawiera system plików. Możemy również dostosować ilość danych ( -cw blokach) testowanych jednocześnie, aby poprawić przepustowość; 16 MiB powinno być w porządku dla większości urządzeń.

Nieniszcząca kontrola odczytu i zapisu

  • bardzo dokładny
  • najwolniej
  • całkiem bezpieczny (poza awarią zasilania lub przerywaną paniką jądra)

Czasami - szczególnie w przypadku Flash Media - błąd pojawia się tylko podczas próby zapisu. (Nie będzie to niezawodnie wykryć (flash) mediów, które reklamują większy rozmiar, niż faktycznie mają; zamiast tego użyj Fight Flash Fraud .)

  • NIGDY nie używaj tego na dysku z zamontowanymi systemami plików ! badblocksi tak odmawia działania na nich, chyba że wymusisz to.

  • Nie przerywaj tej operacji na siłę ! Ctrl+ C(SIGINT / SIGTERM) i oczekiwanie na wdzięczne przedwczesne zakończenie jest w porządku, ale killall -9 badblocks(SIGKILL) nie. Po wymuszonym zakończeniu badblocksnie może przywrócić oryginalnej zawartości aktualnie testowanego zakresu bloków i pozostawi nadpisane niepotrzebne dane i może uszkodzić system plików.

Aby użyć nieniszczących kontroli odczytu i zapisu, dodaj -nopcję do powyższego badblockspolecenia.

Niszcząca kontrola odczytu i zapisu

  • bardzo dokładny
  • wolniej
  • USUWA WSZYSTKIE DANE Z NAPĘDU

Jak wyżej, ale bez przywracania poprzedniej zawartości dysku po wykonaniu testu zapisu, dlatego jest nieco szybszy. Ponieważ dane i tak są usuwane, wymuszone zakończenie pozostaje bez (dodatkowych) negatywnych konsekwencji.

Aby użyć destrukcyjnych kontroli odczytu i zapisu, dodaj -wopcję do powyższego badblockspolecenia.

David Foerster
źródło
43

fsck - sprawdź i napraw system plików Linux. Wywołaj za pomocą

fsck /dev/sda1

gdzie / dev / sda1 to dysk, który chcesz sprawdzić. Aby uzyskać więcej informacji, zobacz „man fsck”.

Istnieje również polecenie „badblocks”, które sprawdza urządzenie pod kątem, zgadłeś, złych bloków.

Po zaznaczeniu dysk musi zostać odmontowany, więc aby sprawdzić partycję główną, należy utworzyć plik „forcefsck” w katalogu głównym partycji i zrestartować komputer. Urządzenie zostanie sprawdzone przy następnym uruchomieniu:

sudo touch /forcefsck
sudo reboot

Alternatywnie możesz uruchomić komputer z Live CD i uruchomić stamtąd sprawdzanie.

Siergiej
źródło
Dzięki, maszyna działa bez monitora, czy jest sposób na uzyskanie dostępu do wyniku kontroli po ponownym uruchomieniu?
Guillaume Coté
Utworzyłem plik i uruchomiłem ponownie, ale był bardzo szybki i nie ma nic nowego w boot.log.
Guillaume Coté
fsck po prostu bardzo szybko sprawdź, próbowałem -c, aby sprawdzić, czy nie ma złego bloku.
Guillaume Coté
fsck -c właśnie powiedział: / dev / sda9: Aktualizowanie uszkodzonego i-węzła bloku. Nie mam informacji o tym, ile złych węzłów i jaka część systemu plików reprezentują.
Guillaume Coté
sudo dumpe2fs -b /dev/sda9. Ale myślę, że lepiej jest, jeśli dysk zajmuje się uszkodzonymi sektorami, a nie systemem plików (SMART, złe bloki itp., Zobacz mój post).
umów się
20

złe bloki

Możesz sprawdzić, czy nie ma uszkodzonych bloków uruchamiających polecenie

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-resultdo nieniszczącego testu odczytu i zapisu. To wygeneruje plik wywołany bad-blocks-resultz uszkodzonymi sektorami.
    • -n Użyj nieniszczącego trybu odczytu i zapisu. Domyślnie wykonywany jest tylko nieniszczący test tylko do odczytu.

    • -s Pokaż postęp skanowania, zapisując przybliżone procentowe ukończenie bieżącego przejścia z błędami przez dysk.

    • -v Tryb pełny.

  2. Następnie możesz uruchomić, sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]aby powiedzieć systemowi plików, gdzie znajdują się uszkodzone sektory i przenieść dane, jeśli to możliwe.

Więcej informacji na ten temat można znaleźć tutaj .

Sprzedaż Dielson
źródło
1
Aby kontynuować z badblocks później lub jeśli zapomniałeś wyeksportować zły sektor do pliku tekstowego (takiego jak ja), ta odpowiedź pomoże ci: superuser.com/a/693000/218025
chelder
czy mogę użyć złych bloków do sprawdzenia partycji Windows? A może w jakiś sposób może to uszkodzić?
Prywatny
1
@ Prywatne Jeśli masz nowe pytanie, użyj linku „Zadaj pytanie” u góry.
Jan
fsckPolecenia nie powiedzie się z btrfssystemów plików.
Luís de Sousa
20

smartctl

IMO smartctl jest lepszym narzędziem. Najpierw prawdopodobnie musisz go zainstalować

sudo apt-get install smartmontools 

Następnie

sudo smartctl -a /dev/sda | less

aby wydrukować dane o kondycji dysku, atrybuty i dostępne wyniki testu. Aby rzucić mniej, wpisz q. Alternatywnie

sudo smartctl -H /dev/sda

po prostu wydrukować dane dotyczące zdrowia.

Aby rozpocząć nowy krótki (kilka minut) lub długi (do wielu godzin) autotest w tle:

sudo smartctl -t [short|long]

GSsmartControl ( strona główna ) i Dyski Gnome są graficznymi nakładkami, jeśli wolisz.

Zobacz też

Pantera
źródło
5
Świetne rozwiązanie, jeśli urządzenie obsługuje SMART. Wiele (tani) wymiennych dysków flash i bardzo stare dyski twarde nie.
David Foerster,
Początkowo byłem zaskoczony, gdy smartctlzgłoszono: „Nieznany most USB”, „Proszę podać typ urządzenia za pomocą opcji -d”. Potrzebne mi dane znalazłem na: smartmontools.org/wiki/Supported_USB-Devices .
nobar
10

F3 (Fight Flash Fraud) to kolejna opcja, która powinna dodatkowo wykrywać fałszywe dyski flash (dyski flash, których faktyczna pojemność stanowi ułamek pojemności reklamowanej):

  1. Zainstaluj F3

    sudo apt install f3
    
  2. Włóż dysk

  3. Zapisz dane testowe w wolnym miejscu na dysku (sprawdź, gdzie jest zamontowany dysk lsblk)

    f3write /media/$USER/D871-DD7C/
    
  4. Przeczytaj dane testowe

    f3read /media/$USER/D871-DD7C/
    

Odniesienie:

Badblocks działa dobrze, ale nie jest przeznaczony do wykrywania fałszywych dysków flash i może nie zgłaszać żadnych błędów .

bmaupin
źródło
badblocksz -wlub z fsckzaznaczonymi sektorami jako złe / uszkodzone, więc nie są używane. f3 może zwrócić coś takiego Corrupted: 16.01 MB (32784 sectors), ale czy oznacza to jako złe sektory? Czy nadal potrzebujemy do tego wad? Próbuję zdumpe2fs -b i wydaje się, że id nie oznacza.
Pablo A
4

Możesz przetestować-odczytać cały dysk, pokazując wskaźnik postępu:

time sudo pv /dev/sdc >/dev/null

Pewne problemy z dyskami objawiają się jako zgłaszane błędy we / wy. Jest to nieco ładniejsze niż ddze względu na wskaźnik postępu i ponieważ interfejs wiersza poleceń jest nieco bardziej standardowy i nieco mniej podatny na literówki . Zauważ, że pvjest to w zasadzie ulepszona wersja cat. Może nie być instalowany domyślnie, ale można go zainstalować za pomocą sudo apt-get install pv.

Podobne podejście polega na odczytywaniu dysku za pomocą jednego z kilku dostępnych narzędzi, które są szczególnie świadome błędów we / wy dysku - i mają funkcję „trudnego ratowania danych”. Wyszukaj ddrescuew menedżerze pakietów.

nobar
źródło
Nie wykryje to problemów, które pojawiają się tylko podczas dostępu do zapisu i nie zgłosi dotkniętego regionu nośnika pamięci, który należałoby naprawić lub obejść. dd count=1jest również dość szybki, chyba że nośnik pamięci jest całkowicie uszkodzony (lub nieobsługiwany).
David Foerster,
Zobacz także:ddrescueview
nobar
Ponieważ GNU Coreutils 8.24+ ddma wskaźnik postępu z status=progress.
Pablo A
1

Jeśli masz partycję, której NIE MOŻNA UTRACIĆ DANYCH, wykonaj następujące kroki

  1. Określ, którą partycję chcesz sprawdzić pod kątem uszkodzonego sektora, używając

$fdisk -l commnd

Załóżmy, że partycja do sprawdzenia nazywa się / dev / sdPTC (partycja do sprawdzenia) i że masz inną partycję do przechowywania wyników zamontowanych w folderze / scan / resultPath /

2. Następnie możesz uruchomić to polecenie

$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt

który określi złe bloki danego urządzenia i zapisze je w pliku o nazwie badsectors.txt

  1. Teraz możesz użyć fsckpolecenia, aby powiedzieć Ubuntu, aby nie używał uszkodzonych sektorów wymienionych w pliku badsectors.txt.

$sudo fsck -l /scan_result/badsectors.txt /dev/sda

W ten sposób życie dysku twardego jest nieco zwiększane, dopóki nie pojawi się nowy do wymiany.


Jeśli masz kompletną partycję, którą chcesz sprawdzić pod kątem wadliwych sektorów fizycznych i MOŻESZ POPRAWIĆ WSZYSTKIE DANE na tej partycji lub PUSTY, wykonaj następujące kroki

  1. $sudo apt-get install gnome-disk-utility

  2. $sudo gnome-disks

  3. Sprawdź i dokładnie sprawdź, czy na tej partycji nie ma ważnych danych

  4. Używanie gnome-disksDELETE / REMOVE partycji ręcznie za pomocą znaku „-”

  5. Za pomocą gnome-disksUTWÓRZ nową partycję i wybierz opcję „powolną”, która sprawdzi podane miejsce pod kątem błędów

wprowadź opis zdjęcia tutaj

Mauricio Gracia Gutierrez
źródło
Czy ma znaczenie, która to wersja Ubuntu? Czy bionic beaverobsługuje kontrole dysku inaczej?
Gabriel Fair
Nie próbowałem tego procesu w tej wersji.
Mauricio Gracia Gutierrez