Odzyskaj dane w systemie Linux za pomocą ddrescue

Odzyskaj Dane W Systemie Linux Za Pomoca Ddrescue



ddrescue to narzędzie służące do odzyskiwania danych z pliku lub urządzenia blokowego, takiego jak dysk twardy, dyski SSD, dyski RAM, płyty CD, DVD i urządzenia pamięci masowej USB. Kopiuje dane z jednego urządzenia blokowego na drugie, pozostawiając uszkodzone bloki danych i przenosząc tylko te dobre. ddrescue to potężne narzędzie do odzyskiwania, które jest całkowicie zautomatyzowane, ponieważ nie wymaga żadnej ingerencji podczas operacji odzyskiwania. Co więcej, można go zatrzymać i wznowić w dowolnym momencie dzięki plik mapy ddrescue . Inne kluczowe funkcje ddrescue są wymienione poniżej:
  • Nie nadpisuje odzyskanych danych, ale uzupełnia luki w przypadku odzyskiwania iteracyjnego. Można go jednak obciąć, jeśli narzędzie otrzyma taką instrukcję.
  • Odzyskaj dane do jednego pliku z wielu plików lub bloków.
  • Obsługuje wiele typów interfejsów urządzeń, takich jak dyski SATA, ATA, SCSI, MFM, dyskietki i karty SD.

W tym przewodniku omówię to niezwykle przydatne narzędzie do odzyskiwania danych. Omówię także proces jego instalacji oraz sposób wykorzystania go do odzyskania urządzenia blokowego lub partycji.

Notatka: Aby uzyskać instrukcje zawarte w tym przewodniku, korzystam z dystrybucji Linuksa (Ubuntu 22.04). Proces instalacji narzędzia ddrescue może się różnić, ale instrukcje będą takie same we wszystkich dystrybucjach Linuksa.







Instalowanie ddrescue

Zwłaszcza, aby zainstalować ddrescue na Linuksie Ubuntu i jego smaki lub Oparte na Debianie dystrybucje, użyj:



sudo trafny zainstalować gddrescue

Aby go zainstalować REHL , Fedora , I CentOS , najpierw włącz CIEPŁY (Dodatkowe pakiety dla Enterprise Linux).



sudo mniam, zainstaluj ciepłe wydanie

Powyższe polecenie dotyczy nowszych wersji danej dystrybucji.





Następnie wykonaj następujące polecenie, aby zainstalować ddrescue:

sudo mniam, zainstaluj ddrescue

W przypadku dystrybucji Linuksa opartych na Arch, takich jak Arch-Linux I Manjaro , użyj poniższego polecenia, aby zainstalować narzędzie do odzyskiwania ddrescue.



sudo Pacman -S ddrescue

Ponieważ używam Ubuntu 22.04, do jego zainstalowania użyję menedżera pakietów APT.

Zrozumienie podstaw

Przed użyciem narzędzia ddrescue do odzyskiwania danych zalecam użytkownikom, którzy nie mają doświadczenia w procesie odzyskiwania, zapoznanie się z niektórymi konwencjami nazewnictwa systemu Linux.

Linux rozpoznaje bloki (urządzenia) jako pliki i umieszcza je w /rozw informator. Aby wyświetlić listę plików w katalogu /dev, użyj metody ls /rozw Komenda.

The dyski twarde (bloki pamięci) są reprezentowane przez SD po których następują alfabety; w przypadku wielu urządzeń pamięci masowej pliki będą reprezentowane jako /dev/sd A, /dev/sd B, i tak dalej.

Jeśli urządzenie magazynujące ma partycje , wówczas będą one reprezentowane przez liczbę z odpowiednią nazwą pliku na dysku, np. /dev/sda 1 , /dev/sda 2 , i tak dalej.

Aby wyświetlić listę wszystkich bloków i innych urządzeń podłączonych do systemu, użyj bloku listy lsblk Komenda:

lsblk

Komenda ddrescue może odzyskać cały blok (zawierający MBR i partycje) lub także partycję. Z drugiej strony, jeśli chcesz odzyskać tylko określone pliki z określonej partycji, lepiej jest odzyskać partycję, a nie cały blok.

Ważne uwagi

Przed użyciem narzędzia ddrescue należy wziąć pod uwagę kilka kluczowych punktów:

  • Nie próbuj odzyskiwać zamontowanego bloku, blok nie powinien być nawet w trybie tylko do odczytu.
  • Nie próbuj naprawiać bloku zawierającego błędy we/wy.
  • System może zmienić nazwy urządzeń wejściowych i wyjściowych po ponownym uruchomieniu. Przed rozpoczęciem procesu kopiowania upewnij się, że nazwy urządzeń są prawidłowe.
  • Jeśli używasz oddzielnego bloku jako urządzenia wyjściowego, wszelkie dane na tym urządzeniu zostaną nadpisane.

Używając ddrescue

Po zainstalowaniu narzędzia ddrescue i zapoznaniu się z konwencjami nazewnictwa następnym krokiem jest identyfikacja uszkodzonego dysku i odzyskanie go za pomocą narzędzia ddrescue.

Odzyskiwanie uszkodzonego bloku

Pierwszy przykład obejmie proces odzyskiwania całego bloku. Najpierw wypisz bloki za pomocą lsblk Komenda:

lsblk -O NAZWA, ROZMIAR, FSTYP

The -O flaga służy do określenia typu informacji (pól), jakie polecenie powinno wyświetlić. Wspomniałem o NAZWA , ROZMIAR , I FSTYP lub typ systemu plików.

Teraz możesz określić docelowy blok, partycję i lokalizację, w której chcesz zapisać uratowany plik obrazu.

Kolejną ważną rzeczą, na którą należy zwrócić uwagę, jest to, że w systemie Linux nazwa bloku jest przydzielana dynamicznie podczas rozruchu, a po ponownym uruchomieniu nazwy bloków mogą ulec zmianie. Zachowaj więc ostrożność podczas zapisywania nazw bloków.

Teraz użyj następującej składni, aby uratować blok jako plik obrazu z plikiem dziennika w katalogu głównym.

sudo ddrescue -D -rX / rozw / [ blok ] [ ścieżka / nazwa ] .img [ nazwa_pliku dziennika ] .dziennik

Notatka: Zastępować [blok] , [ścieżka/nazwa] pliku obrazu oraz [nazwa pliku dziennika] z preferowanymi nazwami.

W tym przykładzie odzyskuję plik /dev/sda w katalogu głównym podając nazwę pliku obrazu recovery.img . Plik dziennika, zwany także plikiem mapy, jest niezbędny, jeśli chcesz w dowolnym momencie wznowić odzyskiwanie.

sudo ddrescue -D -r2 / rozw / sda2 recovery.img recovery.log

W powyższym poleceniu użyto dwóch ważnych flag.

D -pośredni Służy do informowania narzędzia o bezpośrednim dostępie do dysku, ignorując pamięć podręczną jądra
rX –ponowne próby Służy do informowania narzędzia o konieczności ponawiania próby usunięcia uszkodzonego sektora X razy

Po wykonaniu powyższego polecenia w przeglądarce plików pojawią się dwa pliki z nazwami recovery.img I recovery.log .

Czas odzyskiwania zależy od wielkości bloku wejściowego i uszkodzenia. Jeśli odzyskujesz duży blok, zalecam posiadanie pliku dziennika, ponieważ ukończenie procesu może zająć kilka godzin lub nawet dni.

Wynik powyższego polecenia podano poniżej:

Na obrazie wyjściowym ipos jest pozycją wejściową pliku wejściowego, od której rozpoczyna się kopiowanie, a wrzody to pozycja wyjściowa w pliku wyjściowym, w którym zapisywane są dane.

The niewypróbowany to rozmiar bloku nie oczekuje na wypróbowanie. The uratowany wskazuje rozmiar bloku, który został pomyślnie odzyskany. The proc. uratowanych wskazuje pomyślne odzyskanie danych w procentach. Warunki, nieprzycięte , nie złomowany , zły sektor , I złe obszary są oczywiste. Jednakże odczytaj błędy termin oznacza nieudane próby odczytu w liczbach.

The czas pracy pokazuje czas potrzebny narzędziu na ukończenie procesu, natomiast pozostały czas to czas pozostały do ​​zakończenia procesu odzyskiwania. Powyższe wyjście pokazuje pozostały czas 0, ponieważ proces się zakończył. Przeczytaj wynik na poniższym obrazie niedokończonego procesu.

Zobaczmy, co otrzymamy w pliku dziennika; aby otworzyć wygenerowany plik dziennika, użyj vim recovery.log Komenda.

The aktualny stan to +, co oznacza, że ​​proces się zakończył, natomiast bieżąca_poz to pozycja na bloku.

Lista aktualnych statusów znajduje się w poniższej tabeli:

? Biurowy
* Lamówka
/ Złomowanie
Ponawiam próbę
F Wypełnianie określonych bloków
G Generowanie pliku dziennika
+ Proces został zakończony

Poniżej pliku dziennika znajdują się wskazania stanu wcześniej uratowanych bloków w postaci znaków wymienionych poniżej:

? Blok nie wypróbowany
* Nieprzycięty, uszkodzony blok
/ Niezezłomowany uszkodzony blok
Blokada uszkodzonego sektora nie powiodła się
+ Gotowy blok

Przywracanie pliku obrazu do nowego bloku

Po zakończeniu procesu odzyskiwania i posiadaniu pliku obrazu. Możesz teraz chcieć przenieść go na nowy dysk z uszkodzonego dysku. Aby przenieść plik obrazu do nowego bloku, najpierw podłącz ten blok do systemu, a następnie określ nazwę bloku za pomocą lsblk Komenda.

Załóżmy, że tak /dev/sdb , użyj poniższego polecenia, aby skopiować obraz do nowego bloku.

sudo ddrescue -F recovery.img / rozw / sdb plik dziennika.log

The -F flaga służy do nadpisania nowego bloku, jeśli są jakieś dane. Należy pamiętać, że nazwa pliku dziennika musi być inna, aby można było go oddzielić od poprzednio zapisanego pliku dziennika.

Powyższą operację można również wykonać za pomocą dd , kolejne potężne polecenie używane do kopiowania plików.

sudo dd Jeśli =odzyskiwanie.img z = / rozw / SDB

Przed wykonaniem przywracania należy pamiętać, że nowy blok musi być wystarczająco duży, aby pomieścić cały odzyskany blok; na przykład, jeśli blok odzyskiwania ma rozmiar 5 GB, nowy blok powinien być większy niż 5 GB.

Jeśli odzyskany plik obrazu generuje wiele błędów, można je naprawić za pomocą fsck polecenie w systemie Linux w pewnym stopniu. Będąc w systemie Windows, możesz skorzystać z CHKDSK Lub SFC polecenia, aby to zrobić. Jednak odzyskanie zależy od liczby błędów wygenerowanych przez uszkodzony plik.

Teraz proces odzyskiwania i przywracania został zakończony. Kolejną ważną rzeczą, na którą warto zwrócić uwagę, jest to, że uszkodzony blok można odzyskać bezpośrednio w innym bloku, zamiast tworzyć plik obrazu, a następnie kopiować go do nowego bloku. Cóż, w następnej sekcji opiszę ten proces szczegółowo.

Odzyskiwanie bloku do innego bloku

Aby odzyskać blok bezpośrednio do nowego bloku, najpierw podłącz blok do systemu i ponownie użyj lsblk polecenie identyfikujące nazwę bloku. Nieprawidłowe nazwy bloków mogą zepsuć cały proces i spowodować utratę danych.

Po zidentyfikowaniu bloku źródłowego i bloku docelowego użyj następującego polecenia, aby odzyskać blok:

sudo ddrescue -D -F -r2 / rozw / [ źródło ] / rozw / [ miejsce docelowe ] kopia zapasowa.log

Załóżmy /dev/sdb jest blokiem docelowym, więc aby skopiować /dev/sda katalog do nowego bloku użyj:

sudo ddrescue -D -F -r2 / rozw / sda / rozw / sdb kopia zapasowa.log

Przed przystąpieniem do tego procesu ponownie zapoznaj się z krytycznymi uwagami wymienionymi we wcześniejszych sekcjach.

Odzyskiwanie określonych danych z odzyskanych plików obrazów

W wielu przypadkach celem odzyskiwania danych jest odnalezienie określonych plików z uszkodzonych dysków. Aby uzyskać dostęp do określonego pliku, musisz zamontować plik obrazu. W systemie Linux odzyskany plik obrazu można przeglądać za pomocą metody uchwyt Komenda.

Przed zamontowaniem pliku obrazu utwórz folder lub katalog, do którego chcesz wyodrębnić zawartość pliku obrazu.

mkdir Mocowanie odzyskiwania

Następnie zamontuj plik obrazu za pomocą:

sudo uchwyt -O pętla recovery.img ~ / Mocowanie odzyskiwania

Flaga -o wskazuje opcje, natomiast opcja pętli służy do traktowania pliku obrazu jako urządzenia blokowego.

Masz teraz dostęp do zawartości pliku obrazu, jak pokazano na poniższym zrzucie ekranu.

Aby odmontować blok, użyj opcji ilość Komenda.

sudo ilość ~ / Mocowanie odzyskiwania

Zaawansowane funkcje

Aby rozpocząć odzyskiwanie od określonego punktu, użyj przycisku -I flaga lub –pozycja-wejściowa . Powinien być w bajtach, domyślnie tak jest 0 bajty. Jest to ważne, aby wznowić kopiowanie od określonego miejsca. Na przykład, jeśli chcesz rozpocząć proces kopiowania od punktu 10 GB, użyj poniższego polecenia.

sudo ddrescue -i10GiB / rozw / sda plik obrazu.img plik dziennika.log

Aby zdefiniować maksymalny rozmiar urządzenia wejściowego, plik -S flaga będzie używana. The -S oznacza rozmiar i może być również używany jako -rozmiar w bajtach. Jeśli narzędzie nie rozpozna rozmiaru pliku wejściowego, użyj tej opcji, aby go określić.

sudo ddrescue -s10GiB / rozw / sda plik obrazu.img plik dziennika.log

The -zapytać opcja może być całkiem przydatna, ponieważ wyświetla monit o potwierdzenie bloków wejściowych i wyjściowych przed rozpoczęciem procesu kopiowania. Jak wspomniano wcześniej, system dynamicznie przypisuje nazwy blokom, które zmieniają się po ponownym uruchomieniu. W takim przypadku ta opcja może być przydatna.

sudo ddrescue --zapytać / rozw / sda plik obrazu.img plik dziennika.log

Ponadto poniżej znajduje się lista innych opcji:

-R -odwracać Aby odwrócić kierunek kopiowania
-Q -całkiem Aby ukryć wszystkie komunikaty wyjściowe
-W -gadatliwy Aby opracować, wszystkie komunikaty wyjściowe
-P –wstępna alokacja Aby wstępnie przydzielić miejsce dla pliku wyjściowego
-P –podgląd danych Linie wyświetlania ostatniego odczytu danych domyślnie to 3 linie

Jak działa ddrescue

ddrescue wykorzystuje potężny algorytm odzyskiwania, który jest podzielony na cztery fazy:

1. Kopiowanie

2. Przycinanie

3. Skrobanie

4. Ponawianie próby

Wykonanie algorytmu ddrescue pokazano na poniższym obrazku.

Wniosek

The ddrescue to potężne narzędzie do odzyskiwania służące do odzyskiwania danych z uszkodzonego lub uszkodzonego dysku na inny dysk poprzez kopiowanie danych. Można go łatwo zainstalować w dowolnej dystrybucji Linuksa za pomocą domyślnego menedżera pakietów. Przed użyciem tego narzędzia należy zwrócić uwagę na ważną kwestię opisaną w tym przewodniku. Proces kopiowania danych jest prosty, odmontuj dysk i użyj polecenia ddrescue z nazwą dysku źródłowego i nazwą dysku docelowego. Nie zapomnij użyć pliku dziennika, ponieważ wznowienie procesu odzyskiwania staje się bardzo przydatne.