Obnovte data v Linuxu pomocí ddrescue

Obnovte Data V Linuxu Pomoci Ddrescue



ddrescue je nástroj používaný k obnově dat ze souboru nebo blokového zařízení, jako je pevný disk, SSD, RAM disky, CD, DVD a úložná zařízení USB. Kopíruje data z jednoho blokového zařízení do druhého, ponechává poškozené datové bloky a přesouvá pouze ty dobré. ddrescue je účinný nástroj pro obnovu, který je zcela automatizovaný, protože během operace obnovy nevyžaduje žádné rušení. Navíc jej lze kdykoli zastavit a obnovit díky mapový soubor ddrescue . Další klíčové funkce ddrescue jsou uvedeny níže:
  • Nepřepíše obnovená data, ale vyplní mezery v případě opakované obnovy. Může však být zkrácen, pokud má nástroj k tomu explicitní pokyn.
  • Obnovte data do jednoho souboru z více souborů nebo bloků.
  • Podporuje různé typy rozhraní zařízení, jako jsou SATA, ATA, SCSI, MFM mechaniky, diskety a SD karty.

V této příručce prozkoumám tento neuvěřitelně užitečný nástroj pro obnovu dat. Budu také diskutovat o jeho instalačním procesu a o tom, jak jej použít k obnovení blokového zařízení nebo oddílu.

Poznámka: Pro pokyny v této příručce používám distribuci Linuxu (Ubuntu 22.04). Proces instalace nástroje ddrescue se může lišit, ale pokyny budou stejné ve všech distribucích Linuxu.







Instalace ddrescue

Zvláště pro instalaci ddrescue na Linux Ubuntu a jeho příchutě popř Na bázi Debianu distribuce, použijte:



sudo apt Nainstalujte gddrescue

Chcete-li to nainstalovat REHL , Fedora , a CentOS , nejprve povolte TEPLÝ (Extra balíčky pro Enterprise Linux).



sudo mňam instalace teplé uvolnění

Výše uvedený příkaz je pro novější verze příslušné distribuce.





Poté spusťte následující příkaz pro instalaci ddrescue:

sudo mňam instalace ddrescue

Pro distribuce Linuxu založené na Arch, jako je např Arch-Linux a Manjaro , použijte níže uvedený příkaz k instalaci obslužného programu pro obnovu ddrescue.



sudo pacman -S ddrescue

Protože používám Ubuntu 22.04, použiji k instalaci správce balíčků APT.

Pochopení základů

Před použitím nástroje ddrescue k obnově dat bych doporučil uživatelům, kteří jsou v procesu obnovy noví, aby pochopili některé konvence pojmenování Linuxu.

Linux rozpozná bloky (zařízení) jako soubory a umístí je do /dev adresář. Chcete-li zobrazit seznam souborů v adresáři /dev, použijte ls /dev příkaz.

The pevné disky (úložné bloky) jsou reprezentovány s sd následují abecedy; v případě více úložných zařízení budou soubory reprezentovány jako /dev/sd A, /dev/sd b, a tak dále.

Pokud má úložné zařízení oddíly , pak budou reprezentovány číslem s příslušným názvem souboru jednotky, například /dev/sda 1 , /dev/sda 2 , a tak dále.

Chcete-li zobrazit seznam všech bloků a dalších připojených zařízení se systémem, použijte blok seznamu lsblk příkaz:

lsblk

Příkaz ddrescue může obnovit celý blok (obsahující MBR a oddíly) nebo také oddíl. Na druhou stranu, pokud potřebujete obnovit pouze konkrétní soubory z konkrétního oddílu, pak je lepší obnovit oddíl místo celého bloku.

Důležité úvahy

Před použitím nástroje ddrescue je třeba zvážit několik velmi klíčových bodů:

  • Nepokoušejte se obnovit připojený blok, blok by neměl být ani v režimu pouze pro čtení.
  • Nepokoušejte se opravit blok s chybami I/O.
  • Systém může při restartu změnit názvy vstupních a výstupních zařízení. Před zahájením procesu kopírování se ujistěte, že názvy zařízení jsou správné.
  • Pokud jako výstupní zařízení používáte samostatný blok, budou všechna data na zařízení přepsána.

Pomocí ddrescue

Po instalaci obslužného programu ddrescue a pochopení konvencí pojmenování je dalším krokem identifikace vadného disku a jeho obnovení pomocí nástroje ddrescue.

Obnova poškozeného bloku

První příklad bude zahrnovat proces obnovy celého bloku. Nejprve uveďte seznam bloků pomocí lsblk příkaz:

lsblk NAME,SIZE,FSTYPE

The příznak se používá k určení typu informací (polí), které má příkaz vydat. Zmínil jsem se o NÁZEV , VELIKOST , a FSTYPE nebo typ souborového systému.

Nyní můžete identifikovat cílový blok, oddíl a umístění pro uložení souboru zachráněného obrazu.

Další důležitou věcí je poznamenat, že v Linuxu je název bloku přidělován dynamicky při bootování a po restartu se názvy bloků mohou změnit. Buďte tedy opatrní při zapisování názvů bloků.

Nyní použijte následující syntaxi k záchraně bloku jako obrazového souboru se souborem protokolu v kořenovém adresáři.

sudo ddrescue -d -rX / dev / [ blok ] [ cesta / název ] .img [ název_logového_souboru ] .log

Poznámka: Nahradit [blok] , [cesta/název] obrazového souboru a [logfile_name] s odpovídajícími preferovanými názvy.

V tomto příkladu obnovuji /dev/sda v kořenovém adresáři s názvem souboru obrázku recovery.img . Soubor protokolu známý také jako soubor mapy je nezbytný, pokud chcete kdykoli obnovit obnovu.

sudo ddrescue -d -r2 / dev / sda2 recovery.img recovery.log

Ve výše uvedeném příkazu jsou použity dva důležité příznaky.

d -nepřímý Používá se k tomu, aby řekl nástroji, aby přímo přistupoval na disk a ignoroval mezipaměť jádra
rX – opakování průchodů Používá se k tomu, aby nástroj řekl, aby opakoval chybný sektor Xkrát

Po provedení výše uvedeného příkazu si všimnete, že se v prohlížeči souborů objeví dva soubory s názvy recovery.img a recovery.log .

Doba obnovy závisí na velikosti vstupního bloku a poškození. Pokud obnovujete velký blok, doporučuji mít soubor protokolu, protože dokončení procesu může trvat několik hodin nebo dokonce dní.

Výstup výše uvedeného příkazu je uveden níže:

Na výstupním obrázku ipos je vstupní pozice vstupního souboru, odkud začíná kopírování, a vředy je výstupní pozice ve výstupním souboru, kam se zapisují data.

The nevyzkoušeno je velikost bloku nečeká na vyzkoušení. The zachránili označuje velikost úspěšně obnoveného bloku. The pct zachráněno označuje úspěšnou obnovu dat v procentech. podmínky, neořezané , nesešrotované , špatný sektor , a špatné oblasti jsou samozřejmé. Nicméně, chyby čtení termín označuje neúspěšné pokusy o čtení v číslech.

The doba běhu zobrazuje čas, který nástroj potřeboval k dokončení procesu, zatímco zbývající čas je čas zbývající do dokončení procesu obnovy. Výše uvedený výstup ukazuje zbývající čas 0, protože proces skončil, přečtěte si výstup na následujícím obrázku nedokončeného procesu.

Podívejme se, co získáme v souboru protokolu; k otevření vygenerovaného souboru protokolu použijte vim recovery.log příkaz.

The aktuální stav je +, což znamená, že proces je dokončen, zatímco aktuální_pos je pozice na bloku.

Seznam aktuálních stavů je uveden v následující tabulce:

? Kopírování
* Ořezávání
/ Sešrotování
Opakuji pokus
F Vyplnění určených bloků
G Generování souboru protokolu
+ Proces je dokončen

Pod tímto souborem protokolu jsou indikace stavu dříve zachráněných bloků ve formě znaků uvedených níže:

? Blok není vyzkoušený
* Neoříznutý neúspěšný blok
/ Neodstraněný neúspěšný blok
Selhal blok špatného sektoru
+ Hotový blok

Obnovení souboru obrázku do nového bloku

Jakmile dokončíte proces obnovy a budete mít soubor s obrázkem. Nyní můžete chtít, aby se přesunul na nový disk z poškozeného disku. Chcete-li přesunout soubor obrázku do nového bloku, nejprve připojte tento blok k systému a poté identifikujte název bloku pomocí lsblk příkaz.

Předpokládejme, že ano /dev/sdb , pomocí následujícího příkazu zkopírujte obrázek do nového bloku.

sudo ddrescue -F recovery.img / dev / sdb logfile.log

The -F příznak se používá k přepsání nového bloku, pokud existují nějaká data. Mějte na paměti, že název souboru protokolu se musí lišit, aby byl oddělen od dříve uloženého souboru protokolu.

Výše uvedenou operaci lze také provést pomocí dd , další mocný příkaz používaný ke kopírování souborů.

sudo dd -li =recovery.img z = / dev / sdb

Před provedením obnovy mějte na paměti, že nový blok musí být dostatečně velký, aby zachoval celý obnovený blok; pokud je například obnovovací blok 5 GB, nový blok by měl být větší než 5 GB.

Pokud obnovený soubor obrazu vykresluje mnoho chyb, lze je opravit pomocí fsck příkaz na Linuxu do určité míry. V systému Windows můžete použít CHKDSK nebo SFC příkazy k tomu. Obnova však závisí na počtu chyb, které poškozený soubor vygeneroval.

Nyní je proces obnovy a obnova dokončen. Další důležitá věc, kterou je třeba poznamenat, je, že poškozený blok můžete obnovit přímo v jiném bloku, namísto vytvoření souboru obrázku a jeho následného kopírování do nového bloku. No, v následující sekci se tomuto procesu věnuji podrobně.

Obnovení bloku do jiného bloku

Chcete-li obnovit blok přímo do nového bloku, nejprve jej připojte k systému a znovu použijte lsblk příkaz k identifikaci názvu bloku. Nesprávné názvy bloků mohou narušit celý proces a můžete přijít o data.

Po identifikaci zdrojového a cílového bloku použijte k obnovení bloku následující příkaz:

sudo ddrescue -d -F -r2 / dev / [ zdroj ] / dev / [ destinace ] backup.log

Předpokládejme /dev/sdb je cílový blok, takže zkopírujte /dev/sda adresář do nového bloku použijte:

sudo ddrescue -d -F -r2 / dev / sda / dev / sdb backup.log

Před pokusem o tento proces si znovu přečtěte kritické úvahy uvedené v předchozích částech.

Obnova konkrétních dat z obnovených obrazových souborů

V mnoha případech je účelem obnovy dat najít konkrétní soubory z poškozených disků. Chcete-li získat přístup ke konkrétnímu souboru, musíte připojit soubor obrazu. V Linuxu lze obnovený obrazový soubor prozkoumat pomocí namontovat příkaz.

Před připojením souboru obrazu vytvořte složku nebo adresář, do kterého chcete extrahovat obsah souboru obrazu.

mkdir RecoveryMount

Dále připojte soubor obrazu pomocí:

sudo namontovat loop recovery.img ~ / RecoveryMount

Parametr -o označuje volby, zatímco volba loop se používá k zacházení se souborem obrazu jako s blokovým zařízením.

Nyní máte přístup k obsahu souboru obrázku, jak je zobrazeno na následujícím snímku obrazovky.

Chcete-li blok odpojit, použijte umount příkaz.

sudo umount ~ / RecoveryMount

Pokročilé funkce

Chcete-li zahájit obnovu z určitého bodu, použijte -i vlajka nebo – vstupní pozice . Měl by být v bajtech, ve výchozím nastavení je 0 bajtů. To je důležité pro obnovení kopírování od určitého bodu. Pokud například chcete zahájit proces kopírování od bodu 10 GB, použijte následující příkaz.

sudo ddrescue -i10GiB / dev / sda imagefile.img logfile.log

Chcete-li definovat maximální velikost vstupního zařízení, -s bude použita vlajka. The -s označuje velikost a může být také použit jako -velikost v bajtech. Pokud nástroj nerozpozná velikost vstupního souboru, použijte tuto možnost k určení velikosti.

sudo ddrescue -S10GiB / dev / sda imagefile.img logfile.log

The -dotázat se Tato možnost může být docela užitečná, protože před zahájením procesu kopírování vyžaduje potvrzení vstupních a výstupních bloků. Jak bylo uvedeno výše, systém dynamicky přiřazuje názvy blokům a ty se po restartu změní. Takže v tom případě může být tato možnost užitečná.

sudo ddrescue --dotázat se / dev / sda imagefile.img logfile.log

Kromě toho je níže uveden seznam některých dalších možností:

-R -zvrátit Pro obrácení směru kopírování
-q -docela Chcete-li potlačit všechny výstupní zprávy
-v – mnohomluvný Pro upřesnění, všechny výstupní zprávy
-p – předběžně přidělit Chcete-li předem přidělit úložiště pro výstupní soubor
-P – náhled dat Řádky zobrazení posledních načtených dat jsou standardně 3 řádky

Jak ddrescue funguje

ddrescue používá výkonný algoritmus obnovy, který je rozdělen do čtyř fází:

1. Kopírování

2. Ořezávání

3. Škrábání

4. Opakuji pokus

Provedení algoritmu ddrescue je znázorněno na následujícím obrázku.

Závěr

The ddrescue je výkonný nástroj pro obnovu používaný k obnově dat z poškozeného nebo selhávajícího disku na jiný disk zkopírováním dat. Lze jej bez námahy nainstalovat na jakoukoli distribuci Linuxu pomocí výchozího správce balíčků. Před použitím tohoto nástroje si všimněte důležitého aspektu uvedeného v této příručce. Proces kopírování dat je jednoduchý, odpojte disk a použijte příkaz ddrescue s názvem zdrojového disku a názvem cílového disku. Nezapomeňte použít soubor protokolu, protože je docela užitečné obnovit proces obnovy.