• Jak obnovit souborový systém v fsck. Kontrola FS a obnova smazaných souborů v Linuxu

    Kvůli různým problémům nebo neočekávanému vypnutí počítače může dojít k poškození souborového systému. Během normálního vypnutí jsou všechny souborové systémy připojeny pouze pro čtení a všechna neuložená data se zapisují na disk.

    Pokud se však napájení neočekávaně vypne, některá data se ztratí a důležitá data se mohou ztratit, což má za následek poškození souborový systém. V tomto článku se podíváme na to, jak obnovit souborový systém fsck pro několik populárních souborových systémů, a také si promluvíme o tom, jak funguje obnova ext4.

    Jak víte, systém souborů obsahuje všechny informace o všech souborech uložených v počítači. Jedná se o samotná data souboru a metadata, která řídí umístění a atributy souborů v systému souborů. Jak jsem řekl, data se nezapisují okamžitě HDD a nějakou dobu jsou in paměť s náhodným přístupem a v případě neočekávaného vypnutí může za určitých okolností dojít k poškození souborového systému.

    Moderní souborové systémy se dělí na dva typy – žurnálované a nežurnálované. Žurnálové souborové systémy zapisují do protokolu všechny akce, které se chystají provést, a po provedení tyto záznamy vymažou. To vám umožní velmi rychle pochopit, zda byl souborový systém poškozen. Ale při rekonvalescenci to moc nepomáhá. Chcete-li obnovit systém souborů linux, musíte zkontrolovat každý blok systému souborů a najít chybné sektory.

    Pro tyto účely se používá nástroj fsck. Ve skutečnosti se jedná o obal pro další nástroje zaměřené na práci pouze s určitým souborovým systémem, například existuje jeden nástroj pro tuk a zcela jiný pro ext4.

    Na většině systémů se kontrola fsck spouští automaticky pro kořenový oddíl, ale to neplatí pro ostatní oddíly a nebude fungovat, pokud kontrolu zakážete.

    základy fsck

    V tomto článku se podíváme na ruční práci s fsck. Pokud je kořenový oddíl poškozen, můžete ke spuštění nástroje potřebovat médium LiveCD. Pokud ne, systém se bude moci spustit do režimu obnovy a odtud budete nástroj používat. Fsck můžete také spustit na již zavedeném systému. Ke spuštění potřebuje pouze práva superuživatele, takže to udělejte pomocí sudo.

    A nyní se podívejme na syntaxi samotného nástroje:

    $ fsck [možnosti] [možnosti_souborového_systému][oddíl_disku]

    Hlavní možnosti určují způsob, jakým se nástroj, shell fsck, chová. Oddíl disku je soubor zařízení oddílu v adresáři /dev, například /dev/sda1 nebo /dev/sda2. Možnosti systému souborů jsou specifické pro každý jednotlivý kontrolní nástroj.

    Nyní se pojďme podívat na to nejvíce užitečné možnosti fsck:

    • -l- nespouštějte pro to další instanci fsck pevný disk dokud nedokončí ten aktuální. U SSD je parametr ignorován;
    • -t- nastavit typy systémů souborů, které se mají kontrolovat. Není nutné specifikovat zařízení, můžete zkontrolovat několik oddílů jedním příkazem pouhým zadáním požadovaný typ souborový systém. Může to být samotný souborový systém, jako je ext4, nebo jeho možnosti ve formátu opts=ro. Nástroj kontroluje všechny systémy souborů připojené k fstab. Pokud zadáte také sekci, bude na ni aplikována kontrola přesně zadaného typu, bez automatické detekce;
    • -A- zkontrolujte všechny souborové systémy z /etc/fstab. Zde platí možnosti kontroly systému souborů uvedené v /etc/fstab, včetně priority. Nejprve se kontroluje kořen. Obvykle se používá při startu systému;
    • -C- zobrazit průběh kontroly souborového systému;
    • -M- nekontrolovat, zda je souborový systém připojen;
    • -N- nedělat nic, ukázat, že kontrola byla úspěšně dokončena;
    • -R- nekontrolovat kořenový souborový systém;
    • -T- nezobrazovat informace o nástroji;
    • -PROTI- nejpodrobnější výstup.

    Toto byly globální možnosti nástroje. A nyní se podívejme na možnosti práce se souborovým systémem, je jich méně, ale o to budou zajímavější:

    • -A- při kontrole opravte všechny zjištěné chyby bez jakýchkoliv dotazů. Tato možnost je zastaralá a nedoporučuje se;
    • -n- pouze zkontrolujte souborový systém, nic neopravujte;
    • -r- zeptat se před opravou každé chyby, která se standardně používá pro systémy souborů ext;
    • -y- na všechny otázky týkající se opravy chyb odpovídá kladně, můžeme říci, že se jedná o ekvivalent a.
    • -C- najít a zakázat vše rozbité bloky na pevném disku. Dostupné pouze pro ext3 a ext4;
    • -F- vynucená kontrola souborového systému, i když je podle logu čistý;
    • -b- nastavte adresu superbloku, pokud byl poškozen hlavní;
    • -p- další moderní analog volby -a, provádí ověření a opravu automaticky. Ve skutečnosti lze pro tento účel použít jednu ze tří možností: p, a, y.

    Nyní máme vše seřazeny a vy jste připraveni provést obnovu souborů linuxové systémy. Pojďme pracovat.

    Jak obnovit souborový systém v fsck

    Řekněme, že jste již zavedli systém LiveCD nebo režim obnovení. Stručně řečeno, jsme připraveni obnovit ext4 nebo jakýkoli jiný poškozený souborový systém. Utilita je již standardně nainstalována ve všech distribucích, takže nemusíte nic instalovat.

    Obnova souborového systému

    Pokud je váš souborový systém na oddílu /dev/sda1, spusťte:

    sudo fsck -y /dev/sda1

    Možnost y je volitelná, ale pokud to neuděláte, nástroj vás jednoduše zahltí otázkami, na které je třeba odpovědět ano.

    Obnova poškozeného superbloku

    Obvykle se tento tým vyrovná se všemi škodami s třeskem. Ale pokud jste udělali něco vážného a poškodili superblok, pak fsck nemusí pomoci. Superblok je začátek souborového systému. Bez toho nebude nic fungovat.

    Ale nespěchejte s loučením se svými daty, stále je možné je obnovit. Pomocí tohoto příkazu se podíváme, kde byly napsány rezervní superbloky:

    sudo mkfs -t ext4 -n /dev/sda1

    Ve skutečnosti tento příkaz vytvoří nový souborový systém. Místo ext4 nahraďte souborový systém, do kterého byl oddíl naformátován, velikost bloku musí také odpovídat, jinak nebude nic fungovat. S volbou -n se na disku neprovádějí žádné změny, ale zobrazují se pouze informace včetně informací o superblocích.

    Teď jich máme šest záložní adresy superbloky a můžeme se pokusit obnovit souborový systém pomocí každého z nich, například:

    sudo fsck -b 98304 /dev/sda1

    Poté s největší pravděpodobností budete moci obnovit systém souborů. Ale podívejme se na pár dalších příkladů.

    Kontrola čistého systému souborů

    Pojďme zkontrolovat systém souborů, i když je čistý:

    sudo fsck -fy /dev/sda1

    Rozbité sektory

    Nebo můžeme najít špatné sektory a nic jiného do nich nepište:

    sudo fsck -c /dev/sda1

    Instalace souborového systému

    Můžete určit, který systém souborů se má na oddílu zkontrolovat, například:

    sudo fsck -t ext4 /dev/sdb1

    Kontrola všech systémů souborů

    Pomocí parametru -A můžete zkontrolovat všechny souborové systémy připojené k počítači:

    Ale takový příkaz bude fungovat pouze v režimu obnovy, pokud jsou kořenový oddíl a další oddíly již připojeny, zobrazí chybu. Ale můžete vyloučit kořenový oddíl z kontroly přidáním R:

    sudo fsck -AR -y

    Nebo vyloučit všechny připojené souborové systémy:

    Můžete také zkontrolovat ne všechny systémy souborů, ale pouze ext4, k tomu použijte následující kombinaci možností:

    sudo fsck -A -t ext4 -y

    Nebo můžete také filtrovat podle možností připojení v /etc/fstab, například zkontrolovat souborové systémy, které jsou připojeny pouze pro čtení:

    sudo fsck -A -t opts=ro

    Kontrola připojených souborových systémů

    Dříve jsem řekl, že to není možné. Ale pokud není jiné východisko, pak je to možné, i když se to nedoporučuje. Chcete-li to provést, musíte nejprve znovu připojit systém souborů do režimu pouze pro čtení. Například:

    sudo mount -o remount,ro /dev/sdb1

    A nyní kontrola souborového systému fsck v nuceném režimu:

    sudo fsck -fy /dev/sdb1

    Zobrazit informace

    Pokud nechcete nic opravovat, ale pouze se podívat na informace, použijte volbu -n.

    Někdy z různých důvodů (v důsledku selhání, nesprávného vypnutí) se v souborových systémech hromadí chyby. Samotné chyby jsou „neshodné“ datové struktury. Přirozeně, že pokud taková situace nastane, je nutné dát poškozeného co nejdříve do pořádku. Nástroj odvádí s tímto úkolem vynikající práci. fsck. Je skutečně velmi efektivní a správci systému jej velmi často používají především k obnově nebo opravě souborových systémů.

    Jak fsck funguje?

    Utility fsck (F ile S ystem Konzistence Che ck) zpočátku hluboce zkontroloval všechny datové struktury v řadě, tedy celý souborový systém. K nalezení chyb používala metody heuristická analýza urychlit a optimalizovat proces hledání chyb. I v tomto případě však u velkých souborových systémů může tento postup trvat mnoho hodin.

    Později bylo implementováno schéma hodnocení stavu souborového systému, které je založeno na znaku „čistého bitu souborového systému“. Pokud došlo k selhání a souborový systém (FS) byl nesprávně demontován, pak byl tento bit nastaven v superbloku FS. Ve výchozím nastavení se v systémech Linux v jedné z fází spouštění systému kontrolují systémy souborů, které jsou registrovány v souborech /etc/fstab, /etc/vfstab a také v /etc/filesystems. Analýzou „čistého bitu“ FS během spouštění systému tedy obslužný program určí, zda stojí za kontrolu.

    Žurnálové souborové systémy v současnosti umožňují obslužnému programu pracovat pouze s těmi datovými strukturami, které je skutečně nutné opravit nebo obnovit. V případě potřeby může fsck obnovit celý FS díky stejným logům FS.

    Některé funkce použití fsck v Linuxu

    Poměrně často u linuxových systémů (zejména s ext FS) může být kontrola FS organizována tak, že bude provedena po určitém počtu demontáží, i když je FS plně funkční. To platí zejména pro stolní počítače, které se mohou každý den vypnout / zapnout, restartovat kvůli zvláštnosti jejich práce a aplikace a také kvůli volnému přístupu k nim pro připojení externí zařízení. V takových případech se kontrola FS (ač je to užitečný a příznivý postup) ukazuje jako příliš častá, a tudíž nesmyslná.

    Ve výchozím nastavení Linux kontroluje systém souborů po 20 odpojení. Chcete-li změnit počet odpojení, po kterých je potřeba kontrola FS, musíte použít příkaz tune2fs:

    $ sudo tune2fs -c 50 /dev/sda1 tune2fs 1.44.1 (24. března 2018) Nastavení maximálního počtu připojení na 50

    Syntaxe a základní možnosti pro fsck

    tým fsck následující syntaxe:

    fsck [možnost] -- [možnosti FS] [<файловая система> . . .]

    Hlavní parametry:

    Volba Popis
    -A Kontroluje všechny FS
    -S [ ] Ukazuje stav provedení. Zde fd je deskriptor souboru při zobrazení přes GUI
    -l Blokuje zařízení pro výhradní přístup
    -M Zakazuje kontrolu připojených souborových systémů
    -N Zobrazuje simulované provedení bez spuštění skutečného testu
    -P Zkontrolujte společně s kořenovým FS
    -R Přeskočí kontrolu kořenového FS. Lze použít pouze s volbou -A
    -r [ ] Zobrazuje statistiky pro každé kontrolované zařízení
    -T Nezobrazovat záhlaví při spuštění
    -t<тип> Určuje FS ke kontrole. Můžete zadat více FS výpisem odděleným čárkami
    -PROTI Displeje Detailní popis provedené akce

    Kromě základních možností pro fsck existují také specifické možnosti, které závisí na prováděné úloze a/nebo na souborovém systému. O tom se můžete podrobněji dočíst na příslušných stránkách pomocí příkazu muž fsck. Obsah hlavní příručky pro obslužný program (pod "VIZ TAKÉ") obsahuje odkazy na další stránky, jako je fstab(5), mkfs(8), fsck.ext2(8), fsck.ext3(8) atd. Informace tyto odkazy lze zobrazit spuštěním příkazu man s příslušnými volbami, jako je man fsck.ext3.

    V následující tabulce jsou uvedeny další (speciální) možnosti a také nejčastěji používané možnosti, které vám pomohou používat příkaz s maximální flexibilitou a účinností:

    Volba Popis
    -A Zastaralá možnost. Určuje, že všechny nalezené chyby budou opraveny bez souhlasu uživatele.
    -r Používá se pro ext souborové systémy. Řekne fsck, aby se zeptal uživatele před opravou každé chyby.
    -n Provádí pouze kontrolu souborového systému, bez opravy chyb. Slouží také k získávání informací o FS
    -C Používá se pro systémy souborů ext3/4. Označí všechny špatné bloky, aby se zabránilo dalšímu zápisu do nich
    -F Nuceně kontroluje FS, i když je FS v pořádku
    -y Automaticky potvrzuje požadavky uživatele
    -b Nastaví adresu superbloku
    -p Automaticky opravit nalezené chyby. Nahrazuje zastaralou volbu -a

    Příklady použití fsck

    Pro nejtypičtější situaci, typickou pro případy, kdy potřebujete obnovit (nebo spíše „opravit“) souborový systém, například na zařízení /dev/sdb2, byste měli použít příkaz:

    $ sudo fsck -y /dev/sdb2

    Zde je potřeba volba -y, protože pokud chybí, budete muset dávat potvrzení příliš často. Následující příkaz vám umožní vynutit kontrolu FS, i když funguje:

    $ sudo fsck -fy /dev/sdb2

    Jednou z nejužitečnějších je možnost označit vadné sektory a tato možnost se používá nejčastěji. K takovým situacím (s vadnými sektory) obvykle dochází po selháních způsobených abnormálním výpadkem napájení:

    $ sudo fsck -c /dev/sdb2

    Práce se souborovými systémy by měla být provedena, když jsou odpojeny z diskových oddílů. Pokud však nastane situace, kdy stále potřebujete zkontrolovat připojené systémy souborů, pak před použitím příkazu fsck s příslušnou volbou musíte nejprve znovu připojit požadovaný systém souborů v režimu pouze pro čtení:

    $ sudo mount remount,ro /dev/sdb2 $ sudo fsck -fy /dev/sdb2

    Chcete-li určit, který FS použít pro oddíl:

    $ sudo fsck -t ext4 -y /dev/sdb2

    Pokud fsck nedokáže opravit/opravit souborový systém (což se stává velmi zřídka), může to být způsobeno poškozeným superblokem souborového systému. Může být také obnoven, když jsou superbloky zálohovány. Nejprve ale musíte zjistit, na jakých adresách byly tyto kopie napsány, a poté se pokusit obnovit superblok z jedné z nich. zálohy:

    $ sudo fdisk -l $ sudo mkfs -t ext4 -n /dev/xvdb1 $ sudo fsck -b 163840 /dev/xvdb1

    Příkaz -l je v tomto příkladu uveden pro ilustraci skutečnosti, že si nejprve musíte představit, se kterým zařízením pracovat, protože zobrazuje seznam (v tento závěr vynecháno) dostupné oddíly. Příkaz mkfs je určen k vytvoření souborového systému, ale s volbou -n jej lze použít k získání informací o souborovém systému, včetně umístění superbloků. Měli byste se ujistit, že přepínač -t pro mkfs je nastaven na souborový systém odpovídající skutečnému stavu, in tento případ ext4.

    Závěr

    V tomto článku jsme zkoumali fungování a použití nástroje fsck. Jak je vidět z článku, použití utility nepřináší mnoho složitosti. A možnosti kontroly a obnovy souborových systémů v Linuxu jsou poměrně velké, takže znalost této utility správce systému jsou prostě nutné.

    Pokud najdete chybu, zvýrazněte část textu a klikněte Ctrl+Enter.

    S tímto problémem jsem se také musel potýkat. Můj jeden přítel, který má Ubuntu k tomu starému notebook ASUS, a kdo si zkrátka nechce alespoň občas zapnout mozek, obrátil se na mě s takovým problémem. Na jeho notebooku je nainstalováno nové Ubuntu 12.10 a systém se velmi často nechce nabootovat, hází jej na černou obrazovku nebo zamrzá na fialovém pozadí. Ale v Nedávno začala vyskakovat zpráva jako tato, něco jako „Operační systém nelze spustit. Vyberte pro další akce požadovaný klíč... „A pak přijde popis toho, na co je potřeba kliknout. Nepamatuji si přesně, jaké klávesy systém navrhuje stisknout, ale význam je ten, že pro automatickou opravu chyb stiskněte určitou klávesu, pro ruční ladění jinou a pro ignorování této zprávy se doporučuje stisknout třetí tlačítko. Automatická oprava chyb k ničemu nevedla a načítání operačního systému nedospělo ke svému logickému závěru. Rozhodl jsem se tedy zkusit slavný tým fsck.

    Nejprve musíte zavést buď z spouštěcí flash disk s Ubuntu (Lubuntu, Xubuntu, Kubuntu atd.), nebo s Disk Ubuntuživé cd. Nyní musíme přesně zjistit, který oddíl Ubuntu musíme skenovat, abychom opravili souborový systém. Spusťte Terminál (Ctrl-Alt-T) a spusťte příkaz:

    sudo fdisk -l

    Tento příkaz nám zobrazí všechny disky, flash disky, které jsou připojeny k systému. Uvedu příklad s mým osobní počítač a ne s kamarádovým notebookem. Stalo se mi toto:

    [e-mail chráněný]:~$ sudo fdisk -l

    Disk /dev/sda: 640,1 GB, 640135028736 bajtů
    255 hlav, 63 sektorů/stopa, 77825 válců, celkem 1250263728 sektorů



    Identifikátor disku: 0x0009d6f7


    /dev/sda1 * 2048 61442047 30720000 83 Linux
    /dev/sda2 61442048 73730031 6143992 82 Linux swap / Solaris
    /dev/sda3 73730048 1250263039 588266496 83 Linux

    Disk /dev/sdb: 500,1 GB, 500107862016 bajtů
    255 hlav, 63 sektorů/stopa, 60801 válců, celkem 976773168 sektorů
    Jednotky = sektory 1 * 512 = 512 bajtů
    Velikost sektoru (logický/fyzický): 512 bajtů / 512 bajtů
    Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
    Identifikátor disku: 0xb9ff6f01

    Spouštění zařízení Start End Blocks ID System
    /dev/sdb1 * 16065 100197404 50090670 83 Linux
    /dev/sdb2 105322201 976771071 435724435+ 5 Rozšířené
    /dev/sdb3 100197405 105322139 2562367+ 82 Linux swap / Solaris
    /dev/sdb5 105322203 832110591 363394194+ 7 HPFS/NTFS/exFAT
    /dev/sdb6 832112640 860755218 14321289+ 83 Linux
    /dev/sdb7 860758016 862613503 927744 82 Linux swap / Solaris
    /dev/sdb8 862615552 976771071 57077760 83 Linux

    Položky tabulky oddílů nejsou v pořadí disků

    Disk /dev/sdc: 8115 MB, 8115978240 bajtů
    250 hlav, 62 sektorů/stopa, 1022 válců, celkem 15851520 sektorů
    Jednotky = sektory 1 * 512 = 512 bajtů
    Velikost sektoru (logický/fyzický): 512 bajtů / 512 bajtů
    Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
    Identifikátor disku: 0xc3072e18

    Spouštění zařízení Start End Blocks ID System
    /dev/sdc1 * 32 15847625 7923797 b W95 FAT32

    Jak můžete vidět z výstupu příkazu sudo fdisk -l, Mám 2 pevné disky(sda) 640 GB a (sdb) 500 GB a také flash disk (sdc) 8 GB, ze kterého jsem vlastně bootoval. Vím, že můj základní systém Ubuntu 12.04 je na jednotce sda ​​a oddíl operačního systému se podle toho jmenuje sda1.

    Nyní, když známe sekci ke skenování, můžeme ji skutečně začít kontrolovat. V terminálu:

    sudo fsck -y -f -c /dev/sda1

    pokud uvidíte chybu, pak s největší pravděpodobností budete muset odpojit tento oddíl:

    sudo umount /dev/sda1

    Příkazové klávesy a parametry fsck:

    y- na všechny otázky vždy odpovídejte ano (existuje alternativa: klávesa p - spustí kontrolu v plně automatickém režimu);

    F- vynucená kontrola souborového systému (i když je souborový systém označen jako plně funkční)

    C- hledá rozbité bloky (špatné bloky) a podle toho je označí

    /dev/sda1- zařízení nebo oddíl, který má být zkontrolován. I když příkaz může mít jinou podobu. Například:

    sudo fsck -p /dev/sda1

    V tomto případě je přidán pouze přepínač -p. Právě jste si přečetli o všech možnostech příkazu fsck a přidali přesně ty možnosti, které potřebujete. Chcete-li se dozvědět o všech funkcích programu, zadejte do Terminálu:

    muž fsck

    Zde je to, co Terminál vydal po kontrole:

    [e-mail chráněný]:~$ sudo fsck -y -f -c /dev/sda1
    fsck z util-linux 2.20.1
    e2fsck 1.42.5 (29. července 2012)
    Kontrola chybných bloků (test pouze pro čtení): 0,00 % hotovo, uplynulo 0:00. (0/0/0 chyba
    /dev/sda1: Aktualizace chybného bloku inode.
    Průchod 1: Kontrola inodů, bloků a velikostí
    Průchod 2: Kontrola adresářové struktury
    Průchod 3: Kontrola připojení adresáře
    Průchod 4: Kontrola počtu referencí
    Průchod 5: Kontrola souhrnných informací o skupině

    linux je jedním z nejspolehlivějších operačních systémů, jaký kdy uvidíte, ale to neznamená, že hardware, na kterém běží Linux, je stejně spolehlivý. Pevné disky může pracovat s chybami a v důsledku toho - budete mít chyby ve svých souborových systémech. Bez ohledu na to, jak jste spolehlivý operační systém pokud jste omylem smazali potřebné soubory nebo adresáře. Pokud se vám však něco takového stalo, nezoufejte. Linux má vše, co potřebujete, abyste se mohli zotavit ztracené soubory v důsledku smazání nebo selhání disků a souborových systémů. O jakých nástrojích mluvíme? Nejprve se s vámi podíváme na inženýrské sítě e2fsck, skalpel A lsof. V dnešní poznámce uvidíme, jak pomocí této sady nástrojů můžete opravit chyby FS a obnovit smazané soubory.

    Kontrola ext2/ext3/ext4 FS pomocí e2fsck

    Utility e2fsck je potomkem slavného nástroje UNIX fsck, určený ke kontrole souborových systémů. S pomocí e2fsck můžete zkontrolovat chyby a provádět opravy na souborových systémech ext2/ext3/ext4.

    Jeden z nejvíce důležité body v práci s e2fsck je to, že s ním můžete pracovat pouze na nepřipojeném souborovém systému, jinak si můžete způsobit ještě větší bolesti hlavy, na což samotná utilita varuje, když se ji pokusíte spustit pro práci na připojeném FS. Pokud kontrolovaný FS není root, můžete vypnout všechny uživatele, přepnout do režimu jednoho uživatele ( init 1), odpojte FS a pracujte s ním.

    Autor však stále doporučuje používat jeden a po zavedení z něj udělat veškerou práci. Pomocí této metody budete mít k dispozici odpojené systémy souborů, aniž byste museli provádět jakékoli další kroky.

    Pokud z nějakého důvodu zvolíte první možnost, pak po přepnutí do režimu pro jednoho uživatele:

    # init 1

    odpojte souborový systém, se kterým chcete pracovat:

    # umount /dev/sdb1

    a po úspěšném spuštění odpojení e2fsck:

    # e2fsck -y /dev/sdb1

    Volba "-y"řekne utilitě e2fsckže předem souhlasíme se všemi jejími dotazy a odcházíme pít kávu v naději, že vše zvládne sama. V závislosti na velikosti systému souborů může kontrola a obnova nějakou dobu trvat. Po dokončení testu můžete vždy test spustit znovu, abyste se ujistili, že ve FS nenastaly žádné nové chyby, které mohou být způsobeny hardwarovými problémy disku.

    Po dokončení všech kontrol a obnovovacích prací můžete připojit kontrolovaný souborový systém a vrátit se do režimu pro více uživatelů. Nebo můžete jednoduše restartovat systém.

    Obnovení smazaných souborů pomocí /proc a lsof

    Nyní se podívejme na proces obnovy smazané soubory. Obecně je důvodem, proč můžete smazaný soubor obnovit, to, že „soubor“ je pouze odkaz na inode souboru ( inode). Přesně v inode ukládá informace o fyzickém umístění souboru. Když smažete soubor, fakticky smažete odkaz na něj inode, zatímco samotný deskriptor bude nějakou dobu existovat: dokud proces, který dříve otevřel tento soubor, neuvolní odpovídající deskriptor pro zápis. Existuje tedy určitá doba, i když krátká, během níž lze obsah smazaného souboru obnovit. Klíčem k tomuto procesu je souborový systém, který obsahuje mimo jiné informace o všech procesech běžících v systému a souborech, které mají otevřené. Každý proces běžící v systému má adresář odpovídající jeho PID /proc. Když známe PID procesu, který stále drží vzdálený soubor otevřený, můžeme vždy obnovit jeho obsah z adresáře /proc// procesu, který jej otevřel. Pokračujme jednoduchý příklad podívejme se, jak se to dělá.

    Nejprve si vytvoříme nějaký soubor:

    $ echo "Velmi důležitá data" > ~/myfile.txt

    Nyní máme soubor myfile.txt s důležitými daty umístěnými v domovském adresáři. Zkusme jej odstranit a poté obnovit následovně. Nejprve otevřeme soubor pro prohlížení pomocí příkazu méně, po kterém pozastavíme jeho práci, čímž ponecháme soubor, který potřebujeme, otevřený. Takže krok za krokem.

    Otevřete soubor pomocí příkazu méně zobrazit

    $ méně ~/myfile.txt

    Jakmile je soubor otevřený a uvidíte jeho obsah, klikněte ctrl+z pozastavit provádění méně.

    Smazat soubor:

    $ rm ~/myfile.txt

    Ujistěte se, že soubor tam již není

    $ ls -l ~/myfile.txt

    Od práce dříve zahájené námi méně ještě nedokončeno, soubor pro něj zůstane otevřený a ve skutečnosti se nesmaže. Pojďme to obnovit.

    Nejprve musíte zjistit PID procesu, který soubor otevřel, a číslo deskriptoru souboru. To lze provést pomocí programu lsof:

    $ lsof | grep myfile.txt méně 2675 ashep 4r REG 8.1 37 294478 /home/ashep/myfile.txt (smazáno)

    Ve druhém výstupním poli lsof obsahuje PID - 2675 a čtvrté číslo deskriptoru - 4. Nyní můžete začít obnovovat:

    $ cp /proc/2675/fd/4 ~/recovered.txt

    Zkontrolujte, zda je obsah v souboru, který potřebujeme:

    $ cat ~/recovered.txt Velmi důležitá data

    Jak vidíte, vše proběhlo v pořádku a podařilo se nám obnovit smazaný soubor.

    Obnova smazaných souborů pomocí skalpelu

    Po ukončení procesu, který soubor otevřel, je obnovení souboru obtížnější, protože se uvolní inode a ztratí se jakékoli spojení mezi daty v blocích na disku a systémem souborů. Dokud nejsou data na disku fyzicky přepsána, je možné je pomocí utility obnovit skalpel. Tento nástroj postupně, blok po bloku, obchází obsah disku a analyzuje jeho obsah a snaží se najít známky existence souborů na něm. Pro vyhledávání skalpel používá vzory ze sekvence bajtů vlastní určitým typům souborů. Například soubory PNG obsahují sekvenci bajtů \x50\x4e\x47.

    skalpel najdete v repozitářích většiny moderních distribucí. Po instalaci nástroje je první věcí, kterou musíte udělat, rozhodnout, jaké soubory bude program při práci hledat. Definice vyhledávacích vzorů jsou v souboru /etc/scalpel/scalpel.conf. Ve výchozím nastavení je obsah souboru zcela zakomentován a než začnete pracovat, musíte odkomentovat potřebné šablony a / nebo přidat vlastní. Formát popisu šablony je poměrně jednoduchý:

    Záhlaví velikosti rozšíření rozlišující malá a velká písmena

    • rozšíření určuje příponu souboru, který skalpel přidá na zotavení;
    • citlivý na velká písmena informuje obslužný program, zda záleží na velikosti písmen ve vyhledávacím vzoru;
    • pomocí velikosti se určuje maximální velikost obnovitelné soubory;
    • PROTI záhlaví a volitelné zápatí jsou popsány sekvence hlavičky souboru a jeho spodní části.

    Například definice šablony pro soubory JPG může vypadat takto:

    Jpg y 20000000 \xff\xd8\xff\xe0\x00\x10 \xff\xd9

    Poté, co provedete potřebné změny konfigurační soubor Skalpelem a připravte prázdný (povinný!) adresář pro uložení nalezených souborů, můžete zahájit proces vyhledávání a obnovy:

    # skalpel -o ~/recovered /dev/sdb1

    kde použít možnost "-Ó" definuje cestu k adresáři pro uložení nalezených souborů. Proces nástroje je obvykle velmi dlouhý, protože skenuje celé zařízení, takže si udělejte chvilku a jděte se projít ven, Čerstvý vzduch zatím to nikomu nevadilo ;)

    Po skalpel dokončí svou práci, prozkoumejte obsah výstupního adresáře, abyste zjistili, zda obsahuje soubory, které potřebujete.

    Závěr

    Málokdo by se rád dostal do situace, kdy dojde k náhodnému smazání nebo poškození důležitých dat. A i když linux nabízí nástroje pro obnovu ztracených dat, není v tomto procesu nic příjemného. Buďte proto ke svým datům vždy maximálně pozorní a pracujte s nimi. A samozřejmě nezapomeňte na včasnou - starou a osvědčenou metodu, která zachránila více než tisíc nervových buněk před jistou smrtí.

    Program fsck se používá ke kontrole systémů souborů a k opravě chyb systému souborů, pokud existují. Základním požadavkem pro kontrolu souborového systému je, že souborový systém musí být odpojen. Spuštění fvek na již připojeném souborovém systému může vést k jeho zničení – pak nepomůže ani fsck. Program fsck lze použít ke kontrole souborových systémů, které jsou podporovány jádrem Linuxu.
    Formát volání programu je následující:
    sudo fsck [možnosti] [systém souborů]

    Parametry, jako je systém souborů, lze vynechat. Pokud neurčíte systém souborů, program začne kontrolovat všechny systémy souborů uvedené v souboru /etc/fstab. To je vysoce nežádoucí, protože tyto souborové systémy mohou být připojeny, což může způsobit poškození souborového systému.

    Pořadí kontroly souborového systému by mělo být následující:
    1. Odpojte systém souborů.
    2. Spusťte f sck a otestujte to.

    Chcete-li například zkontrolovat systém souborů oddílu /dev/hda5, nejprve jej odpojte a poté spusťte f sck:
    sudo -i
    # umount /dev/hda5
    # fsck /dev/hda5

    Někdy ale nemůžeme odpojit souborový systém, jako když potřebujeme zkontrolovat kořenový souborový systém. V tomto případě je třeba provést následující:
    1. Restartujte v režimu jednoho uživatele.
    2. Znovu připojte kořenový souborový systém v režimu pouze pro čtení.
    3. Zkontrolujte systém souborů.

    Chcete-li restartovat v režimu jednoho uživatele, restartujte systém (příkaz reboot) a při zavádění předejte jeden parametr jádru.
    V režimu pro jednoho uživatele, jak by se dalo očekávat, může pracovat pouze jeden uživatel - root.
    Všechny služby jsou vypnuté, takže by nemělo nic narušovat kontrolu souborového systému. Chcete-li znovu připojit systém souborů, zadejte příkaz:
    # mount -o remount th -t ext3 /
    Volba -o příkazu mount umožňuje zadat různé volby. V tomto případě specifikujeme možnosti remount and go, což znamená opětovné připojení v režimu pouze pro čtení. Volba -t určuje typ systému souborů ext3 a poslední volbou je kořenový systém souborů (/).