Mam pamięć USB, która z jakiegoś powodu jest nieczytelna. Chcę zrobić jego zdjęcie do celów przechowywania, aby później móc spróbować pobrać dane z obrazu.
Jak mógłbym zacząć tworzyć taki nieco identyczny obraz pamięci USB?
To jest błąd, który pojawia się podczas używania dd
:
oshirowanen@desktop:~$ sudo dd if=/dev/sdd of=/USB_image
[sudo] password for oshirowanen:
dd: reading `/dev/sdd': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.00783 s, 0.0 kB/s
oshirowanen@desktop:~$
backup
usb-storage
disk-image
oshirowanen
źródło
źródło
/dev/sdx
wskazującego na pamięć USB, istnieje poważny problem i myślę, że nie ma dostępnych narzędzi dla zwykłych użytkowników, które działałyby. Zobacz ten link, aby uzyskać więcej informacji, askubuntu.com/questions/144852/... ; Nie poddawaj się od razu. Spróbuj zgodnie z listą rzeczy, które mogą sprawić, że czytanie zacznie działać. Może uda ci się rozdzielić pendrive USB i znaleźć kartę micro SD, która nadal działa zgodnie z komentarzem @ ubfan1 (na powiązaną odpowiedź).Odpowiedzi:
dd
to!Użycie byłoby podobne do tego,
sudo dd if=/dev/sdb of=~/USB_image
gdzie / dev / sdb to dysk USB wymieniony przezsudo fdisk -l
a ~ / USB_image to plik obrazu, w którym zostanie wykonana kopia (ścieżka, w której zostanie utworzony plik obrazu).Aby przywrócić obraz na inny dysk USB, po prostu odwróć proces:
sudo dd if=~/USB_image of=/dev/sdb
przywróci ~ / USB_image do urządzenia sdb . Upewnij się tylko, że nowy dysk USB jest tak duży lub większy niż oryginalny.Możesz także zamontować utworzony plik obrazu na ścieżce bez konieczności przywracania go najpierw na innym dysku USB
mount ~/USB_image /mnt/USB_image -o loop
.źródło
fdisk -l
nie widać dysku USB? Widzę go jednak z programu Disk Utility jako / dev / sdd, ale kiedy próbuję użyć polecenia, wydaje się, że zawodzi.status='progress'
zdd
Ubuntu lub znajdź PID swojegodd
polecenia i wyślij muSIGUSR1
sygnał. Nie jestem jednak pewien co do innych implementacji.Zastosowanie
ddrescue
. Będzie kontynuowany po błędach, gdziedd
po prostu zawiedzie.Dodatkowo
ddrescue
znajduje się w repozytoriach. W dniu 13.04 napisałem,sudo apt-get install gddrescue
aby zainstalować.Użyj
sudo fdisk -l
lub,dmesg
aby ustalić lokalizację urządzenia, np .:/dev/sdb
, a następnie uruchom polecenie, takie jakistnieje wiele opcji
ddrescue
i możesz przeczytaćman
strony. Nie jestem też pewien, dlaczego twój sprzęt zawiesza się i zrzucadd
. Jeden zły blok możedd
zakończyć, ale może również powodować sporadyczne awarie zasilania.dmesg
może powiedzieć ci więcej o awariach sprzętu, których możesz doświadczać.UPEWNIJ SIĘ, że urządzenie nie jest zamontowane! podczas próby odzyskania danych, obrazowania itp. Może to powodować problemy.
Istnieje wiele rzeczy, które mogą pójść nie tak w odzyskiwaniu danych. Napisz z powrotem, jeśli masz problemy.
testdisk
to dobre narzędzie do odzyskiwania danych po utworzeniu obrazu.Czy dla jasności jest to dysk twardy USB czy urządzenie USB (pamięć półprzewodnikowa)?
Błędy we / wy zazwyczaj wskazują na awarie sprzętowe, a nie na uszkodzenie systemu plików.
Spróbuj także uzyskać analizę danych SMART urządzenia, jeśli jest dostępna. Może ci to powiedzieć, że jeśli urządzenie jest przegrzane, włączone przez długi czas, ma uszkodzone sektory, narażone na więcej niż X nie. Gs itp.
źródło
sudo
dladdrescue
, * gdzie dd po prostu nie * jest jakby nie do końca prawda, ponieważ można skonfigurowaćdd
, aby zignorować błędy odczytu.testdisk
jest niesamowity, gdy możesz odczytać utracone sektory danych, a nie kiedy dysk jest zepsuty.gddrescue
przeciw,ddrescue
ponieważgddrescue
jest nowszy i bardziej zdolny do wykonania pracy, któraddrescue
działa.Za pomocą można utworzyć obraz pamięci USB (lub innego urządzenia)
dd
.Na przykład
Możesz dodać więcej parametrów,
dd
aby zoptymalizować polecenie (npbs
.).źródło
dd
, jak wspomniano w poprzednim plakacie, jest rodzimą drogą. Będziesz jednak chciał, aby nadal występowały błędy, więc zacznij od:Ważna część jest ostatnia:
conv=sync
mówi dd, aby wstawił wszystkie te bloki, które mógłby odczytać tylko częściowo zerami, więc wynikowy obraz może mieć kilka zer za dużo, ale będzie strukturalnie równy płatkowemu dyskowi, pomniejszając jego błędy odczytu.conv=noerror
zajął się tymi błędami odczytu, mówiąc dd, aby kontynuował z następnym blokiem. W tym momencie rozmiar bloku ma znaczenie, ponieważ jeśli jest większy niż to konieczne, aby pominąć błąd, czytelne dane zostaną tutaj utracone. Blocksize powinien zawsze być dwa razy większy - w razie wątpliwości,512k
powinien załatwić sprawę .Następnie sugeruję:
(Częściowo zacytowałem się z artykułu napisanego w 2010 roku)
Jeśli nie musisz pozostać natywny, zawsze możesz wypróbować narzędzia, które próbują nieco ułatwić proces, takie jak ddrescue (pakiet
gddrescue
) i jego towarzyszddrescueview
( sourceforge ) w celu wizualizacji błędów.źródło
W odniesieniu do drugiej połowy twojego pytania „To jest błąd, który otrzymuję podczas używania dd”: Widzę kilka możliwości.
~
przed/USB_image
. Innymi słowy, próbujesz wypisać katalog główny systemu plików zamiast do katalogu domowego./dev/sdd
może nie być prawidłowy dysk. Uruchomsudo fdisk -l
i porównaj rozmiar napędu ze znanym rozmiarem pamięci USB. Na przykład, wiem, że to moja pamięć USB, ponieważ jest blisko do 16GB:Disk /dev/sdf: 15.8 GB, 15805186048 bytes
.źródło