Jak obnovit smazané soubory na Linuxu pomocí testdisku

Smazali jste někdy soubor a okamžitě toho litovali? Potřebujete to zpět a rychle! Ale co když je soubor tak nový, že ještě nebyl zálohován? Naštěstí se s tím dá něco dělat.

rm: Zkratka pro lítost?

Je až příliš snadné použít příkaz rm a zjistit, že zíráte na okno terminálu s prohlubujícím se pocitem lítosti. Jedna malá chyba se zástupnými znaky a můžete vymazat mnohem více, než jste zamýšleli.

Výchozí souborový systém Linuxu ext4 používá inody k uchovávání dat o každém souboru a tabulku inodů ke sledování inodů. Inode obsahuje metadata o souboru, jako je jeho název, kdo jej vlastní, jaká jsou oprávnění a tak dále.

Obsahuje také vstupní body k pevným odkazům, které ukazují na soubor. Každý soubor má alespoň jeden pevný odkaz. Pokaždé, když vytvoříte nový pevný odkaz, počet pevných odkazů se zvýší o jeden. Pokaždé, když odstraníte pevný odkaz, počet pevných odkazů v inodu se sníží o jeden.

Když smažete soubor, který inode označil jako nepoužitý (a připravený k opětovnému použití), odstraní se poslední pevný odkaz. Když k tomu dojde, soubor se nezobrazí ve výpisech adresářů a nelze jej použít ani k němu přistupovat.

Data, která tvořila obsah souboru, jsou však stále přítomna na pevném disku. Pokud byste mohli opravit inode tak, aby obsahoval správné informace, soubor by byl obnoven. To by samozřejmě fungovalo pouze v případě, že data, která tvoří soubor na pevném disku, zůstanou nedotčená a nebudou přepsána.

Případně můžete vytvořit nový inode, zkopírovat přeživší data ze starého inodu a poté nahradit chybějící bity.

To jsou netriviální činnosti. Obvykle, když omylem smažete soubor, je to v nejhorší možnou chvíli. Je to vždy, když ten soubor potřebujete, a potřebujete ho hned. Nemáte čas se ušpinit od sektorových editorů a dalších utilit. Navíc, pokud se jedná o soubor, který jste právě vytvořili, pravděpodobně ještě nebyl zálohován, takže vám nepomohou ani ty.

  Nejlepší směrovače DD-WRT v roce 2019 pro náročné uživatele

Zde přichází na řadu testdisk. Snadno se používá a nevyžaduje podrobné znalosti souborového systému na nízké úrovni. Pojďme se podívat, jak jej používat!

Instalace testovacího disku

Chcete-li nainstalovat testdisk na Ubuntu, použijte tento příkaz:

sudo apt-get install testdisk

Na Fedoře musíte napsat:

sudo dnf install testdisk

Na Manjaro musíte použít pacman:

sudo pacman -Sy testdisk

Pomocí testovacího disku

Přestože testdisk běží v okně terminálu, má základní rozhraní. K navigaci použijte klávesy se šipkami a k ​​provedení výběru použijte klávesu Enter. Pro udržení pořádku je nejlepší vytvořit adresář pro obnovené soubory.

Zadáme následující, abychom vytvořili adresář s názvem „restored“ pro naše obnovené soubory:

mkdir restored

Chcete-li se přepnout do nového adresáře a spustit testdisk, zadejte následující:

cd restored/

Musíme použít sudo s testdisk, takže zadáme následující:

sudo testdisk

První otázka, kterou testdisk položí, se týká protokolování. Může vytvořit nový soubor protokolu, použít existující nebo nezaznamenat vůbec nic. Nezáleží na tom, kterou možnost zvolíte; neovlivní to způsob, jakým testdisk funguje.

Chcete-li přijmout zvýrazněnou možnost a vytvořit nový soubor protokolu, stačí stisknout Enter. Vytvoří se v adresáři, ze kterého jste spustili testdisk. Když provedete výběr, testdisk se zeptá, na kterém pevném disku je uložen systém souborů, na kterém chcete pracovat.

Obsahuje seznam pevných disků, které může najít, a také soubory squashfs „/dev/loop“. Pro každou aplikaci, kterou jste nainstalovali, bude jeden z nich. Jsou pouze pro čtení, takže by se vám nemělo podařit z těchto systémů souborů nic smazat.

  Chyba modré obrazovky při instalaci ovladačů NVIDIA? (PEVNÝ)

V tomto testovacím počítači je pouze jeden fyzický pevný disk, takže jsme použili šipku dolů ke zvýraznění možnosti „/dev/sda“. Poté jsme pomocí šipky doprava vybrali „Pokračovat“ a poté stiskli Enter.

testdisk také potřebuje znát typ oddílu. Představuje nabídku možností spolu s typem oddílu, který je automaticky detekován ve spodní části.

Pokud nemáte dobrý důvod, abyste to neudělali, zvýrazněte typ oddílu, který je automaticky detekován, a stiskněte Enter.

V zobrazené nabídce funkcí zvýrazněte „Advanced“ a stiskněte Enter.

Zobrazí se nabídka pro výběr oddílu.

Soubory, které hledáme, jsou v oddílu systému souborů Linux. Na našem pevném disku máme pouze jeden linuxový oddíl, ale můžete jich mít více.

Vyberte oddíl, na kterém byly vaše soubory, pomocí kláves se šipkami doleva a doprava vyberte „Seznam“ a stiskněte klávesu Enter. Zobrazí se nabídka pro výběr souboru.

Pomocí šipek nahoru a dolů nebo kláves PgUp a PgDn procházejte seznam souborů a adresářů. Stiskněte pravou šipku nebo Enter pro vstup do adresáře a levou šipku nebo Esc pro odchod z adresáře.

Hledáme soubory, které vlastnil dave. Soubory pro všechny uživatelské účty jsou v adresáři „Home“. Zvýrazníme tedy adresář „Home“ a poté můžeme stisknout šipku vpravo nebo Enter pro vstup do tohoto adresáře.

Všechny uživatelské účty jsou pak uvedeny pro nás. Zvýrazníme dave a poté stiskněte šipku vpravo nebo Enter pro vstup do tohoto adresáře.

Nyní můžeme vidět soubory, které patří k účtu dave. Červené záznamy byly smazány. Procházíme soubory a adresáře, dokud nenajdeme soubory, které chceme obnovit.

Chcete-li obnovit soubor, zvýrazněte jej a stiskněte c (malá písmena).

Displej se změní a řekne vám, abyste zvolili umístění pro obnovený soubor. Protože jsme vytvořili adresář s názvem „Restored“ a spustili z něj testdisk, první záznam v seznamu (.) je tento adresář. Chcete-li obnovit tento smazaný soubor do tohoto adresáře, stiskneme C (velká písmena).

  Jak vytvořit rozevírací seznam v Tabulkách Google

Poté se vrátíte na obrazovku pro výběr souborů. Pokud chcete obnovit více souborů, stačí proces zopakovat. Zvýrazněte smazaný soubor, stisknutím c (malá písmena) jej zkopírujte a poté stisknutím C (velká písmena) jej obnovte.

Práce s obnovenými soubory

Po obnovení souboru se rekonstruuje strom adresářů do původního umístění, což je užitečné, protože vám to připomene, kde na pevném disku byl původní soubor umístěn. To znamená, že pokud jej potřebujete zkopírovat zpět, víte, kam jej umístit.

Pokud obnovíte několik souborů z různých umístění souborového systému, které náhodou mají stejný název souboru, bude je stejně nutné uložit samostatně.

Chcete-li zobrazit obsah adresáře „Restored“, můžete zadat následující:

ls

Pokud jste požádali testdisk o vytvoření souboru protokolu, bude v adresáři „Restored“. Protože naše obnovené soubory byly umístěny v „/home/dave“, byly zkopírovány do našeho adresáře „Restored“, vnořené do adresářů se stejným názvem.

Do zkopírovaného adresáře „dave“ se můžeme změnit pomocí cd. Ujistěte se, že na cestu neuvádíte úvodní lomítko (/) – chcete se změnit na místní „domov“, nikoli na systémové „/home“.

Zadáme následující:

cd home/dave

Obnovené soubory jsou v tomto adresáři, takže zadáme:

ls

Podívejme se znovu na obnovené soubory pomocí volby -l (dlouhý výpis):

ls -l

Protože jsme ke spuštění testdisku použili sudo, obnovené soubory byly obnoveny s „rootem“ jako vlastníkem. Můžeme změnit vlastníka zpět na „dave“ pomocí chown:

sudo chown dave.dave *

Abychom se ujistili, že bylo obnoveno správné vlastnictví, zadáváme následující:

ls -l

testdisk: Code for Relief

Ten pocit úlevy poté, co obnovíte důležitý soubor, který byl před chvílí nenávratně ztracen, je něco, co vždy oceníte.

Proto je testdisk tak šikovnou utilitou. Poté, co projdete nabídkami a můžete začít obnovovat soubory, je snadné upadnout do rytmu zvýrazňování, c, C, opakování.