Modelový prípad
Záchranu si ukážeme na disku môjho kamaráta, ktorému začal umierať rok starý 2TB disk (schválne neuvádzam model, až sa tu nestrhne flamewar :) ). Z celkovej kapacity bolo zabraných okolo 700GB, pričom drtivú väčšinu tvorili fotografie. Spočiatku sa na disku nedali prečítať niektoré súbory, nasledovali pády súborového systému, ktorý síce Windows pri štarte čiastočne opravil, no po ďalšom reštarte bol súborový systém opäť neprístupný. Z disku sa štandardným kopírovaním podarilo dostať iba 100GB dát.
Už len SMART výpis vyzeral nelichotivo, report môžte nájsť TU. Disk mal 48696 pending sektorov, jeho fitness je nulová. Nakoľko 2TB je pomerne veľká kapacita, disk som naklonoval na druhý, taktiež 2TB disk a kvôli log súboru bol ešte pripojený USB externý disk, ale pohodlne by stačil aj USB kľúč, log súbor má rádovo kilobajty. Plus teda USB kľúč, z ktorého nabootoval Linux. V systéme to teda vyzeralo nasledovne:
- USB kľúč, z ktorého bootuje Rescue Remix
- poškodený 2TB disk, identifikovaný ako /dev/sda
- nový 2TB, na ktorý bude vytvorený klon, /dev/sdb
- externý disk kvôli zápisu log súboru, /dev/sdc, pripojený ako /media/externy
A ideme do akcie:
1.
Ideálne na inom počítači si pripravte USB kľúč s Rescue Remixom. USB kľúč najprv naformátujte na FAT32. Stiahnite ISO Rescue Remixu a program UNetbootin. Spustite UNetbootin, vyberte ISO súbor a počkajte, kým nebude nahratý na USB kľúč.
2.
Pripravte si počítač, na ktorom budete zachraňovať dáta. Odpojte všetky disky, ktoré nepotrebujete, podstatný je len poškodený disk, cieľový disk, prípadne ešte tretí disk/druhý USB kľúč, kam budete ukladať log z ddrescue, nakoľko log nie je možné ukladať na USB kľúč, z ktorého bootujete (teoreticky je, ale museli by ste si vytvoriť perzistentnú Live USB inštaláciu). Pokiaľ budete vytvárať image a nie klon, môžete log uložiť aj na cieľový disk. Počítajte tiež s tým, že počítač, na ktorom pobeží záchrana, môže v závislosti na veľkosti zachraňovaného disku trvať niekoľko dní.
3.
Nabootujte z USB kľúča, bude Vás čakať terminál. V prvom rade musíme disky v systéme identifikovať. K tomu slúži utilita fdisk. Do terminálu napíšte:
sudo fdisk -l |
a mali by ste vidieť výpis podobný tomuto:
(príklad výpisu utility fdisk na mojom notebooku. Výpisy pre jednotlivé disky sú odelené červenou čiarou, zelenou je zvýraznená adresa disku. Vidno dva 320GB disky, každý s 2 partíciami, 128GB SSD s 1 partíciou plus 16GB USB kľúč, z ktorého som nabootoval)
Zaujímajú nás riadky, kde sa uvádzajú cesty ako /dev/sda (ak chceme celý disk, tak bez čísla, ak partíciu, tak aj s číslom podľa zoznamu partícií na disku, napr. /dev/sda2). Disky môžete identifikovať napr. podľa kapacity či počtu partícií. Pokiaľ vytvárate image alebo používate 2 disky identickej veľkosti a rovnakým počtom partícií a neviete ich rozoznať, prejdite na bod 4, ináč skočte na päťku.
4.
Ak vyvárate image, musíte pripojiť filesystem cieľovej partície. Prípadne keď máte zdrojový aj cieľový disk rovnako veľký a neviete ich rozlíšiť, môžete u jedného z nich vyskúšať pripojiť jeho systém súborov. Urobíte to nasledovne:
- najprv treba vytvoriť prípojný bod (priečinok), obvykle do priečinku /media:
sudo mkdir /media/mojDisk
kde mojDisk je meno priečinka, ktorý sa vytvorí, zvoľte aké chcete
- následne pripojíme súborový systém partície príkazom mount, napr. takto (pripájame partíciu, nezabudnúť na číslo):
sudo mount /dev/sdc1 /media/mojDisk
Pokiaľ operácia prebehne rýchlo, jedná sa pravdepodobne o fungujúci disk, kam chcete dáta zachrániť. Ak však ostane blikať kurzor rádovo minúty, je to zlyhávajúci disk, po pár minútach zrejme dostanete chybové hlásenie. Overiť to tiež môžete tak, že sa na obsah pripojeného disku pozriete, spustite:
mc |
(súborový manažér Midnight Commander) a prejdite na miesto, kde ste vytvorili prípojný bod, v tomto príklade /media/mojDisk, a priečinok otvorte, podľa obsahu by ste to mali poznať.
5.
Pokiaľ poznáme cestky k diskom, môžeme pristúpiť k samotnej záchrane. V prvej fáze sa budeme snažiť zachrániť len dáta, ktoré je možné bez problémov prečítať. Ja som použil klonovanie, takže bolo treba pridať aj parameter --force, ktorým potvrdzujete, že obsah cieľového disku bude prepísaný. Väčšina príkazov musí bežať ako root, preto spúšťame cez sudo, heslo nie je vyžadované.
Štruktúra príkazu je ddrescue [-parametre] [zdroj] [cieľ] [log]. Log je síce nepovinný, ale pri záchrane tento parameter určite zadajte. Pokiaľ log súbor neexistuje, bude vytvorený.
Pre vytváranie klonu v prvej fáze vyzerá príkaz takto (cesty k diskom si nastavte podľa seba):
sudo ddrescue --no-split --force /dev/sda /dev/sdb /media/externy/log.txt |
alebo ak vytvárate obraz, napr. takto:
sudo ddrescue --no-split /dev/sda /media/externy/image.img /media/externy/log.txt |
U 2TB disku so skoro 50 tisíc chybnými sektormi trvala táto operácia 2 dni. Na záver vidíte vo výpise, koľko celkovo chybných dát na Vašom disku je. V tomto prípade to bolo okolo 56MB, zvyšok sa podarilo prečítať.
6.
Niekomu môže stačiť záchrana toho, čo sa dalo prečítať a môže preskočiť na bod 7, no ja som sa z disku pokúsil dostať, čo to dá. V druhom prechode povieme ddrescue, nech sa snaží prečítať obsah chybných sektorov, zároveň vyradíme z prevádzky cache operačného systému, aby sme čítali dáta priamo z povrchu.
Pre klon:
sudo ddrescue --direct --force /dev/sda /dev/sdb /media/externy/log.txt |
Pre image:
sudo ddrescue --direct /dev/sda /media/externy/image.img /media/externy/log.txt |
Tu je práve dôležité mať log z predchádzajúceho kroku, nakoľko všetky korektne prečítané dáta budú preskočené, ddrescue sa bude zaoberať len chybnými sektormi. POZOR! V tomto konkrétnom prípade bežala operácia 13 DNÍ! Podarilo sa však znížiť množstvo chybných dát o 44 percent na 31MB. Pokiaľ na disku nemáte až tak dôležité dáta, môžete tento krok preskočiť.
7.
Máme vytvorený image/klon, je na čase ho opraviť. V prvom rade musíme vymazať údaje o chybných sektoroch, nakoľko na fungujúcom disku žiadne nemáme, no v tabuľke súborového systému zo zlyhaného disku sú. To isté platí pre image.
Klon:
sudo ntfsfix -b /dev/sdb |
Image:
sudo ntfsfix -b /media/externy/image.img |
8.
Môžme pristúpiť k oprave súborového systému. Môžte to nechať na Windows, ktorý pri štarte zistí, že sa jedná nekonzistentný disk a spustí CheckDisk, alebo to môžete urobiť priamo v Linuxe. Príkaz je rovnaký ako v kroku 7, akurát že vypustíte parameter -b.
9.
Ak ste robili image, môžete ho cez dd alebo ddrescue "napáliť" na nový disk podobným spôsobom:
sudo ddrescue --force /media/externy/image.img /dev/sda |
Log už v tomto prípade nepotrebujete.
Broslowski
Shatterhand
periodic
Pjetro_de
nManJofo
Pjetro_de
Hiro
felipe25
felipe25
nManJofo
felipe25
pauco