Podczas próby odzyskania danych z uszkodzonego dysku twardego uruchamiam polecenie ddrescue
.
Polecenie działało od 9 dni i na podstawie dźwięku aktywności dysku pomyślałem, że może coś robi. Dane wyjściowe z wiersza poleceń wyglądały mniej więcej statycznie:
$ sudo ddrescue -r3 /dev/sdb /home/dave/RECOVERY/usb500.image /home/dave/recovery_usb500.logfile
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 0 B, errsize: 0 B, errors: 0
Current status
rescued: 0 B, errsize: 500 GB, current rate: 0 B/s
ipos: 2539 MB, errors: 1, average rate: 0 B/s
opos: 2539 MB, time from last successful read: 9.7 d
Splitting failed blocks...
Jedyną częścią, która się zmienia, jest to, co mówi ipos
i opos
. Obejście tego problemu zajęło 9 dni 500000 MB
, czyli wielkość uszkodzonego napędu dyskowego. Kiedy jednak się tam dostał, opadł z powrotem na ziemię 0
i znów zaczął się wznosić. Kiedy to piszę, 2580 MB
zaczyna się i liczy.
Tworzony plik obrazu ma długość 0 bajtów.
Plik dziennika ma rozmiar około 3 MB i wygląda następująco:
# Rescue Logfile. Created by GNU ddrescue version 1.14
# Command line: ddrescue -r3 /dev/sdb /home/dave/RECOVERY/usb500.image /home/dave/recovery_usb500.logfile
# current_pos current_status
0x975C3000 /
# pos size status
0x00000000 0x00862000 -
0x00862000 0x00014800 /
0x00876800 0x00800400 -
~~~~~~edited for brevity ~~~~~~~~
0x74702CCE00 0x00320000 -
0x74705ECE00 0x00025800 /
0x7470612600 0x005F3A00 -
Zaczynam się martwić, że to tylko strata czasu i żadne dane nie są odzyskiwane.
Czy z tego wyniku wynika, że dzieje się coś pożytecznego?
Czy jest jakikolwiek powód, aby ddrescue
polecenie było kontynuowane bez zmian, czy powinienem je zatrzymać i zrobić coś innego?
To jest najnowsza zawartość /var/log/syslog
Jun 10 07:29:17 homebase-i3 kernel: [568470.316436] sd 5:0:0:0: [sdb] Sense Key : Medium Error [current]
Jun 10 07:29:17 homebase-i3 kernel: [568470.316443] sd 5:0:0:0: [sdb] Add. Sense: Unrecovered read error
Jun 10 07:29:17 homebase-i3 kernel: [568470.316450] sd 5:0:0:0: [sdb] CDB: Read(10): 28 00 11 ff 02 98 00 00 08 00
Jun 10 07:29:17 homebase-i3 kernel: [568470.316465] end_request: critical target error, dev sdb, sector 301925016
Jun 10 07:29:17 homebase-i3 kernel: [568470.346640] sd 5:0:0:0: [sdb] Unhandled sense code
Jun 10 07:29:17 homebase-i3 kernel: [568470.346646] sd 5:0:0:0: [sdb] Result: hostbyte=invalid driverbyte=DRIVER_SENSE
Jun 10 07:29:17 homebase-i3 kernel: [568470.346651] sd 5:0:0:0: [sdb] Sense Key : Medium Error [current]
Jun 10 07:29:17 homebase-i3 kernel: [568470.346656] sd 5:0:0:0: [sdb] Add. Sense: Unrecovered read error
Jun 10 07:29:17 homebase-i3 kernel: [568470.346662] sd 5:0:0:0: [sdb] CDB: Read(10): 28 00 11 ff 02 98 00 00 08 00
źródło
--force
opcji, jest niepoprawnyPowinieneś być w stanie zatrzymać się,
ddrescue
ponieważ używa pliku dziennika, aby móc ponownie uruchomić swoją operację (zamknąć) w miejscu, w którym ją opuścił. Sprawdziłbym jednak, czy plik dziennika został ostatnio zaktualizowany, sprawdzając znacznik czasu lub wykonując polecenietail -f /home/dave/recovery_usb500.logfile
.To, że plik obrazu jest wciąż tak mały, może mieć związek z tym, że żadne bloki nie zostały jeszcze pomyślnie pobrane z dysku. Byłby to jednak zły wynik po tak długim czasie. Zakładając, że na urządzeniu jest tylko kilka wadliwych bloków i że nie ma ich na początku, status pierwszego wpisu będzie taki
+
. IIRCddrescue
rozpoczyna czytanie, dopóki nie znajdzie błędu, a następnie rozpoczyna dzielenie reszty dysku. Twoja płyta od samego początku wydaje się nie działać.O ile
+
w dzienniku nie ma (wielu) wpisów, a rozmiar pliku nadal byłby taki0
, nie sądzę, żeddrescue
jest źle. Nic nie+
oznacza, że nic z dysku nie można odzyskać. Może to oznaczać smażoną elektronikę lub złą głowę, ponieważ w przypadku awarii tylko kilku sektorów wyniki byłyby znacznie szybsze.Co do robienia czegoś innego. Zakładam, że próbowałeś już przeczytać kilka bloków z normalnym dd. Czy na tej podstawie spojrzałeś na syslog i przejrzałeś znalezione tam wiadomości?
Wyszukiwanie „Wynik: hostbyte = nieprawidłowy driverbyte = DRIVER_SENSE” daje kilka interesujących odczytów (częściowo niemiecki) z kilkoma dodatkowymi sugestiami:
Oprócz chłodzenia nieczytelnego dysku (sprayem chłodzącym) sam nie próbowałem żadnego z nich.
źródło
dd
, ponieważ nie wiem co to jest. Mam wrażenie, że większość dysku i danych jest nienaruszona, ale jest pewna usterka w krytycznym obszarze dysku, na którym odbywa się indeksowanie lub wyświetlanie plików.ddrescue
że pochodnadd
tego nie zatrzymuje się po napotkaniu błędu. Sprawdziłeś+
znaki?+
znaków. Są tylko-
i\
znaki.ddrescue
aby zaczęło się to po tak długim czasie. Jeśli chcesz, możemy porozmawiać na ten temat (link u góry tej strony)/var/log/syslog
pytania.