Przede wszystkim nie rób nic więcej na dysku (przynajmniej nigdy na nim nie pisz ). Dysk nie został rozpoznany (w przeciwieństwie do „rozpoznania i znalezienia go jako pustego lub z nieczytelnymi danymi”) wydaje się wskazywać albo dysk całkowicie zniszczony, co chkdsk
nie jest normalne, albo coś złego w tabeli partycji lub geometrii dysku lub sposób, w jaki obsługuje go obudowa USB. Możliwa jest także awaria sprzętu.
Może się to zdarzyć i nastąpi, gdy obudowy USB spróbują negocjować między dyskiem a komputerem, do którego są podłączone. Pierwszą rzeczą do zrobienia byłoby zrobienie obrazu dysku na (oczywiście większym) dysku na możliwie najbliższym fizycznym poziomie, używając dd
Linuksa. Następnie możesz bawić się kopią obrazu w treści swojego serca, bez ryzyka dalszego uszkodzenia prawdziwego dysku.
Aktualizacja: rozpoznawanie urządzenia w systemie Linux
Na naszym „dysku zewnętrznym” mamy nie mniej niż trzy podmioty. Sprzęt obudowy USB, odsłaniający się jako urządzenie blokowe. Dysk fizyczny w obudowie. Urządzenie fizyczne, tj. Sekwencja sektorów LBA od pierwszego do ostatniego. I wreszcie zero lub więcej partycji danych, hostujących systemy plików. Aby zostać „rozpoznanym” i wyświetlonym na pulpicie, wszystkie linki łańcuchów muszą działać. Ale aby zrobić zdjęcie fizycznego urządzenia, potrzebujesz tylko dwóch pierwszych. Jeśli podłączysz urządzenie i uruchomisz wiersz poleceń dmesg
(jako root), powinieneś zobaczyć coś takiego:
[4984939.028491] usb 8-6: new high speed USB device using ehci_hcd and address 3
[4984939.166658] usb 8-6: configuration #1 chosen from 1 choice
[4984939.170660] scsi7 : SCSI emulation for USB Mass Storage devices
[4984939.172003] usb-storage: device found at 3
[4984939.172005] usb-storage: waiting for device to settle before scanning
... czyli rozpoznawanie obudowy, a następnie identyfikowanie się i jej zawartości:
[4984939.170660] usb 8-6: New USB device found, idVendor=1058, idProduct=1021
[4984939.170660] usb 8-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[4984939.170660] usb 8-6: Product: Ext HDD 1021
[4984939.170660] usb 8-6: Manufacturer: Western Digital
[4984939.170660] usb 8-6: SerialNumber: 574D43305431303831303734
[4984944.400970] usb-storage: device scan complete
Następny zobaczysz kierowca informując jej geometrii, przyrody, a pośrednio jej węzeł urządzenie, tutaj sdd
(dla dysków SCSI Czwórki, ponieważ sda
, sdb
i sdc
zostały już podjęte):
[4984944.404739] scsi 7:0:0:0: Direct-Access WD Ext HDD 1021 2021 PQ: 0 ANSI: 4
[4984944.404739] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
[4984944.407367] sd 7:0:0:0: [sdd] Write Protect is off
[4984944.407369] sd 7:0:0:0: [sdd] Mode Sense: 17 00 10 08
[4984944.407371] sd 7:0:0:0: [sdd] Assuming drive cache: write through
[4984944.408741] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
Następnie jądro rozpoznaje partycję (jeśli jej nie widzisz, partycji nie ma lub jest niepoprawna):
[4984944.411497] sdd: sdd1
Teraz Linux ma wszystko, czego potrzebuje i zgłasza pomyślne załączenie:
[4984944.416739] sd 7:0:0:0: [sdd] Attached SCSI disk
[4984944.416739] sd 7:0:0:0: Attached scsi generic sg4 type 0
I tak zaczyna się wyszukiwanie partycji danych, tzn. OK, mamy sdd1
, ale co tam jest? , a odpowiedź brzmi:
[4984997.498613] NTFS driver 2.1.29 [Flags: R/W MODULE].
[4984997.554613] NTFS volume version 3.1.
[4984997.568859] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean. Mounting read-only. Mount in Windows.
[4985390.027808] NTFS-fs error (device sdd1): ntfs_remount(): Volume has errors and is read-only. Cannot remount read-write.
[4985442.423299] NTFS volume version 3.1.
[4985442.425032] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean. Mounting read-only. Mount in Windows.
To było „dobre” mocowanie. Ale sama wiedza, że urządzenie jest sdd
, lub sdc
lub sdb
, pozwala mi wykonać kopię binarną (zakładając, że mam wystarczająco dużo wolnego miejsca /mnt/backupdisk
): plik wejściowy, plik /dev/sdd
wyjściowy DiskImage.raw
, rozmiar bloku 1 MB :
# dd if=/dev/sdd of=/mnt/backupdisk/DiskImage.raw bs=1M
Zauważ, że plik wejściowy jest /dev/sdd
i nie /dev/sdd1
(lub jakikolwiek inny numer). Teraz, gdybym chciał, mógłbym znaleźć przesunięcie partycji danych wewnątrz DiskImage.raw
i zamontować ją za pomocą urządzenia pętlowego. Tutaj znajdziesz brudne szczegóły.
Pierwsza próba odzyskania
Drugą rzeczą do zrobienia byłoby umieszczenie dysku fizycznego w innej obudowie, zapewniając w ten sposób, że obudowa jest dobra, i zyskując szansę na poprawną interpretację dysku przez nową obudowę. Jeśli dysk pojawi się ponownie, być może uszkodzona była poprzednia obudowa. Na wszelki wypadek wykonaj kopię zapasową całej nowo znalezionej stacji dysków, sprawdź kopię zapasową, wyzeruj dysk za pomocą narzędzia do nadpisywania dysku, aby całkowicie zgasł (nie możesz mieć dwóch urządzeń o różnych opiniach w łańcuchu urządzeń), sformatuj go ponownie natywnie z Windows i przywracaj dane. To szczęśliwy strzał, ale widziałem, jak to się stało; a próba nie jest zbyt droga, dobre obudowy kosztują około 19,99 USD nowych.
W przypadku, gdy oryginalna obudowa była zła, nie będzie można ponownie sformatować dysku lub dysk nie będzie dostępny. Można ponowić nową obudowę, a jeśli to działa, albo zastąpić starą obudowę, lub zachować stosując nowy (ale to się opłaca, czy nowa obudowa jest dość lepsze niż US $ 19.99 El cheapo).
Profesjonalne odzyskiwanie
Profesjonalne usługi odzyskiwania, te, które można znaleźć w Google. Niezbyt uczciwym sposobem byłoby przesłanie go przez dysk fizyczny i - w przypadku otrzymania komunikatu „Tak, nie nastąpi uszkodzenie sprzętu, a my możemy odzyskać wszystkie dane za jedyne $ $$$, $ $$! ” odpowiedź - dobrze byś wiedział, że dane wciąż można odzyskać. Możesz więc spróbować zrobić to samemu za darmo na utworzonej kopii zapasowej obrazu i zapłacić tylko za diagnozę i dysk S&H. Jeśli ci się nie uda, nadal będzie dostępna opcja odkrztuszania żądanego ciasta. Jeśli nie ma uszkodzenia sprzętu, profesjonalny serwis jest w zasadzie swoją jedynie opcją. Istnieje kilka sztuczek voodoo, które (tymczasowo) przywrócą „martwy” dysk, często wystarczająco długi, aby odzyskać przynajmniej najważniejsze dane,żadna z nich nie gwarantuje, że będzie działać za każdym razem (nagrzewanie dysku, chłodzenie go, „kręcenie” nim - widziałem nawet, jak sugerować inteligentne zgrywanie go o twardą powierzchnię). Wszystkie zada więcej obrażeń, tzn. Musisz upewnić się, że użyjesz jednej sztuczki, która zadziała za pierwszym razem, inaczej zabijesz dysk na zawsze. Właśnie dodałem to, aby wyjaśnić, dlaczego zobaczysz historie sukcesu ożywionych dysków: są takie historie. Ale jeśli chcesz być (w większości) pewien, że zdarzy się wam dobrze - zatrudnić zawodowego.
Jeśli masz pewność, że sprzęt jest w porządku - dyski się obracają, brak grzechotek, brak dziwnych dźwięków lub brzęczeń, brak ponownej kalibracji kliknięć-klakotów - wtedy wszystko, co się zdarzyło, to zepsucie chkdsk
niektórych danych.
Odzyskiwanie DIY
Odzyskiwanie „domowe” zwykle przebiega w ten sposób (w zasadzie to samo, co zawodowcy zrobiliby po obniżeniu uszkodzenia sprzętu), pracując na kopii obrazu dysku:
sprawdź, czy pierwszy sektor obrazu dysku jest prawidłową tablicą partycji. Jeśli nie, zeskanuj obraz dysku w poszukiwaniu prawidłowej tablicy partycji lub rozpoznawalnego sektora rozruchowego NTFS lub FAT32, w zależności od tego, jaki FS był na urządzeniu (dla 1 TB, NTFS wydaje się jedyną logiczną możliwością). Tak czy inaczej, powinieneś znaleźć coś w ciągu pierwszych kilku megabajtów.
jeśli tablica partycji zostanie znaleziona, sprawdź, czy partycja danych znajduje się tam, gdzie jest wskazana tablica partycji. Jeśli tak nie jest, jest to bardzo dobra wiadomość: prawdopodobnie tablica partycji jest wszystkim, co jest złe. Naprawienie tego jest łatwe (zrobi to kilka edytorów partycji Linuksa) i można oczekiwać, że dysk odzyska 100%. Aby być bezpiecznym, spróbuj zamontować partycję danych w systemie Linux za pomocą urządzenia pętlowego w trybie tylko do odczytu, aby sprawdzić, czy można ją odczytać. Jeśli tak, to korekcja partycji jest potwierdzana, a dysk może zostać wymówiony w drodze do pewnego i pełnego odzyskania. Jeśli tak nie jest, być może partycja ma rację i (część) partycji danych została przepisana. To jest złe; patrz poniżej w „rzeczy kwaśne”.
jeśli zostanie znaleziony i poprawny, sprawdź go pod kątem geometrii dysku, a jeśli się nie zgadzają, jest to również dobra rzecz, ponieważ mogłaś znaleźć podstawową przyczynę problemu. Możesz zmusić geometrię fizyczną do jądra (i uzyskać ją przy starcie systemu Linux ). Sprawdź, czy nowa geometria prowadzi do rozpoznania dysku w systemie Linux. Jeśli tak, wykonaj kopię zapasową danych, sprawdź, czy kopia zapasowa jest poprawna, i wyzeruj dysk za pomocą dd
(wystarczy kilka megabajtów zer do odpowiedniego sd
urządzenia). Wyłącz komputer (nie tylko uruchamiaj ponownie; OK, jest paranoikiem, ale kosztuje niewiele i może coś osiągnąć), a następnie uruchom system Windows i sformatuj dysk, który nie ma pojęcia, w najlepszym wydaniu. Zapewnia to brak konfliktów z systemem Windows. Przywróć dane na dysku. Cieszyć się.
jeśli sztuczka z geometrią nie działa lub nie można znaleźć partycji lub gdy okaże się, że jest pusta, sytuacja się pogarsza. Potrzebujesz narzędzia do odzyskiwania zdolnego do skanowania obrazu dysku w poszukiwaniu obszarów danych (MFT itp.) Utraconych danych. Po znalezieniu zinterpretuj je, aby uzyskać dostęp do danych. To trudne zadanie i nie zawsze może być w pełni zautomatyzowane. Na niższym i bardziej desperackim poziomie wymaga to skanowania podpisów poszczególnych plików, mając nadzieję, że będą one znajdować się w ciągłych blokach na dysku. Ten rodzaj operacji chętnie jednak pozostawiłbym profesjonalistom. Zrobiłem to kilka razy, zawsze z powodzeniem, na starych dyskach FAT. Zrobiłem to ponownie, około 50% pomyślnie, z nowszymi, większymi i bardziej rozdrobnionymi dyskami FAT32. I próbował kilka razy, z kiepskimi wynikami (ale miałem pełne kopie zapasowe i tak naprawdę nie dawałem z siebie wszystkiego), na znacznie bardziej skomplikowanych systemach plików NTFS i ext4.
Ręczne odzyskiwanie z systemu Linux
OK, więc próbujesz zamontować partycję w Linuksie i uzyskać błędy ( zwróć uwagę na to /dev/sdc
i są różne rzeczy - obraz odnosi się )./dev/sdcN
/dev/sdc
# mount -t ntfs /dev/sdc1 /mnt/recovery
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 1024 usa_ofs: 0 usa_count: 65535: Invalid argument
Record 1 has no FILE magic (0x0)
Failed to open inode $MFTMirr: Input/output error
... wydaje się to wskazywać, że partycja, jak uważa system , jest niewłaściwa lub poważnie uszkodzona. Najpierw sprawdźmy pierwszą opcję:
# fdisk /dev/sdc
Otrzymujesz coś takiego:
Disk /dev/sdc: 1000.2 GB, 1000204885504 bytes
1 heads, 63 sectors/track, 31008335 cylinders, total 1953525167 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9d2b7596
Device Boot Start End Blocks Id System
/dev/sdc1 63 1953520127 976760032+ 7 HPFS/NTFS/exFAT
Następnym krokiem będzie sprawdzenie faktycznego rozpoczęcia partycji. Szukając pliku obrazu (lub /dev/sdc
), szukamy podpisu NTFS:
00000000:EB 52 90 4E 54 46 53 20 -20 20 20 00 02 08 00 00 .R.NTFS ........
00000010:00 00 00 00 00 F8 00 00 -3F 00 FF 00 3F 00 00 00 ........?...?...
00000020:00 00 00 00 80 00 80 00 -4A F5 7F 00 00 00 00 00 ........J.......
# dd if=/dev/sdc bs=512 count=1 skip=63 2>/dev/null | hexdump -C | head -n 1
... z powyższymi danymi oczekujemy, że boot NTFS będzie w sektorze 63, dlatego ustawiliśmy skip
. Ponadto spróbujemy z każdym sektorem w pierwszym (powiedzmy) megabajcie ...
# dd if=/dev/sdc bs=512 count=2000000 2>/dev/null | hexdump -C | grep "00:EB 52 90 4E 54 46 53"
... żeby się upewnić, że istnieje tylko jeden sektor rozruchowy (zdarzyło mi się to. Na dysku FAT32, ale nadal ) i że nigdzie nie ma błędów odczytu.
Twój wynik
00007e00 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
jest dokładnie tym, czego byśmy się spodziewali: sektor 63 daje przesunięcie 63 × 512 = 32256 = 7e00 w systemie szesnastkowym. Sektor rozruchowy NTFS jest tam i tablica partycji wydaje się być poprawna .
Możemy więc teraz skopiować dużą część /dev/sdc1
, powiedzmy, /tmp/mydisk.img
i spróbować naprawić to z Linuksa. Nie uszkodzi to dysku fizycznego, który będzie nadal dostępny bez zmian dla innych prób. A ponieważ teraz wiemy, że PT jest poprawny, możemy wykorzystać /dev/sdc1
tę kopię i rozbudzić nadzieje, których wcześniej nie mogliśmy:
# dd if=/dev/sdc1 of=/tmp/mydisk.img bs=1G count=10
...after copying 10 gigabytes...
# ntfsfix /tmp/mydisk.img
Jeśli NTFSfix nie działa, to mamy kłopoty. Istnieją jednak bardziej dokładne narzędzia, które można wypróbować. A jeśli musisz odzyskać pliki obrazów JPEG, a system plików nie został pofragmentowany, można to zrobić automatycznie, wyszukując nagłówki JPEG. To samo dotyczy dokumentów PDF, TIFF i Office, z tym że nie wiem, jak je rozpoznać (w przypadku plików JPEG :-)). Jako ostatnią opcję znalazłem tych facetów - nie znam ich, nie jestem z nimi spokrewniony i nie przyjmę żadnej winy. Jednak w miarę upływu czasu cena jest bardzo rozsądna.