2. Teljes partíciók tartalmának mentése (első rész)
1. Első lépésként szedjük le a system rescue cd-t és írjuk ki egy korongra. Az első jó hír most fog érni bennünket: Az ezen található Partimage verzió le fogja tudni menteni az MBR-ünket is, így vissza tudja állítani majd a Grub rendszerbetöltőt.
2. Mentsük el a partíciós táblánk szöveges formáját! Ebből vissza fogjuk tudni majd állítani úgy körülbelülre a partíciókat.
Egy mount parancs kiírja, hogy is hívják a merevlemezünket ezen a héten:
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
Nagyszerű, ami a lényeg itt, hogy /dev/sda a vinyó, ezen a /dev/sda1 a "/", és /dev/sda2 a "/var". Nézzük a partíciós táblát:
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda2 on /var type ext3 (rw,noatime)
securityfs on /sys/kernel/security type securityfs (rw)
bagoj@mycogen:~$ sudo fdisk -l /dev/sda
Ezt tegyük el fájlba és ne felejtsük el elmenteni! :-) sudo fdisk -l /dev/sda > particiok.txt
/dev/sda lemez: 250.0 GB, 250059350016 bájt
255 fej, 63 szektor, 30401 cilinder
Egység: cilinderek 16065 * 512 = 8225280 bájt
Lemezazonosító: 0x3954d97b
Eszköz Boot Start End Blocks Id System
/dev/sda1 * 1 3659 29390886 83 Linux
/dev/sda2 3660 30284 213865312+ 83 Linux
/dev/sda3 30285 30401 939802+ 82 Linux swap / Solaris
Megjegyzés: Itt majd páran javasolják, hogy lehet alkalmazni a dd if=/dev/sda of=particiok.dump bs=512 count=1 parancsot, de nekem valahogy nem sikerült ebből a partíciós tábla visszaállítása. Mellesleg ez az extended partíciókat nem is menti, ahhoz az sfdisk -d /dev/sda > extended_particiok.dump parancs kéne. Így hát inkább bízom a szöveges fájlban...
Ennek ellenére, ha valaki a vázolt két paranccsal mentette a partíciós tábláját, álljon itt a visszaállítás módszere is:
dd if=particiok.dump of=/dev/hda
sfdisk /dev/hda < extended_particiok.dump
3. Ezek után bootoljunk be a System Rescure CD-vel!
Amint az látható, ez egy testreszabott Gentoo Linux live cd. Az indulás után röviddel (sima enter a legelső menün, a billentyűkiosztásnál 18 és enter (azaz magyar kiosztás)) root parancssort kapunk, egy oldalnyi szöveges súgóval. Pont ez a kedvencem! Igazi férfimunka! :-)
Gyorsan kalapáljunk egy hálózatot: az ifconfig eth0 up; dhclient3 parancsok futtatásával DHCP-n máris kaptunk egy IP-címet. Ha esetleg nincs DHCP szerver kéznél, az ifconfig eth0 <IP-cím> netmask <netmask> parancs, illetve a route add default gw <gateway> parancs segít (a hálózati paramétereit nyilván mindenki tudja, aki nem az ne hálózatra mentsen!). Ezek után parancssorból fellőttem a mentőszoftvert: partimage. A karaktergrafikus felületen a szokásos le-fel, tab gombokkal tudunk közlekedni.
A képernyő tetején mindenféle fura nevű ram1, ram2, ... ram15 nevű partíciókat látunk, ezzel nem kell törődni. Ott vannak viszont alatta a mieink! Nekem sda1 (ntfs), sda2 (swap) és sda3 (ext3fs). Az ugye világos, hogy ha nem hálózatra és nem egyből DVD-re mentünk (azaz egy saját partícióra), akkor legalább egy partíciót nem tudunk elmenteni, valamint azon a partíción kell lennie elég helynek a mentéshez. Egyszerre csak egy partíciót tudunk kijelölni (amin a "fénygerenda" áll), illetve meg tudjuk adni, hogy mi legyen annak az image fájlnak a neve, amire mentjük a partíciót. Első okosság: Hogyan adjuk meg azt a partíciót, amire menteni akarunk? Hát, azt úgy hogy előbb fel kell csatolni, persze kézzel. Nem egy nagy buktató, ALT+F2-vel kérünk egy terminált, készítünk egy helyet a felcsatolásnak, majd fel is csatoljuk. Nekem van még egy partícióm, a /dev/sda5, én erre fogok menteni. Tehát most ezt gépelem be az ALT+F2 után:
mkdir /mnt/mentesek; mount /dev/sda5 /mnt/mentesek
A felcsatolásnak simán kell mennie, utána visszaváltok ALT+F1-gyel a partimage felületére és begépelem az "Image file to create/use" részbe teljes elérési úttal az image fájl nevét. Például ez nekem /mnt/mentesek/linugz.image lesz ha az sda3-at mentem, és /mnt/mentesek/windows.image, hogyha a /dev/sda1-en lévő ntfs partíciót menteném.
Megjegyzés: Ha van egy Windows gép a hálózatban megosztással, és oda mentenénk, akkor az előbb vázolt módszert kell szintén alkalmazni, az alábbi különbséggel:
mkdir /mnt/samba; mount -t smbfs //192.168.0.1/Temp /mnt/samba
Az "Action to be done" álljon a "Save partition into a new image file" álláson, szerver nevet pedig nem adok meg, tehát F5-tel mehetünk is tovább a második képernyőre.
A következő képernyőn választható a tömörítés módja (hagyjuk Gzip-en! Ennek oka az, hogy a 0.6.7-es verzióban egy hiba miatt a Bzip2-vel tömörített image-be nem tudja elmenteni az MBR-t). A "Check partition before saving" mindig egy hasznos dolog, hiszen ha hibás a partíciónk, itt az idő hogy meg tudjuk, ezért csak ellenőrizze bátran. Az "Image split mode" mindig jó, ha az "Into files whose size is....2037"-en áll, ekkor 2Gb-os darabokat fog gyártani ami DVD-re kiírható és minden oprendszer alatt lehet másolni is. Más szóval a második képernyőn én mindent úgy hagytam, ahogy volt. :-)
A harmadik képernyőn egy leírást adhatunk meg, én ide mindig beírom a dátumot és a partíció azonosítóját (esetünkben /dev/sda3), így mindig tudom, hol volt. Akinek több gépe van, itt megadhatja azt is, hogy ez most melyik gépe.
Az OK után elkezd dolgozni a kicsike, úgyhogy én épp nekiláttam egy krémtúró elfogyasztásának, amikor még egy ablakot feldobott, annak a partíciónak az adataival, amelyre a mentés készül. Simán nyomtam egy OK-t és foglalkoztam tovább a krémtúróval... "sajnos" sok időm nem volt, 5:35 alatt lementette az 1,1Gb-os partíciómat, majd visszalépett parancssorba. Az előbb elmondottakat lehet alkalmazni a többi partícióra is.
Kérdés: Na és hol lehet egyből DVD-re írni a partíció adatait?
Válasz: A Partimage önmagában nem képes CD-t vagy DVD-t írni, ehhez picit hegeszteni kell. Semmi nagy kaland, itt leírtam: DVD+RW packet writing.
Adatok visszaállításának menete
1. Bootoljunk be a SystemRescueCD-nkkel.
3. Csatoljuk fel azt a partíciót (esetleg DVD-t), amin az elmentett image fájl van.
3. Indítsuk el a partimage parancsot. Válasszuk ki felül azt a partíciót, amit vissza akarunk állítani. Válasszuk az "Action to be done" részen a "Restore partition from an image file" lehetőséget. Írjuk be az "Image file to create/use" részen az image fájl nevét teljes elérési úttal. (A mentéskor a split miatt egy ".000", ".001" kerül a fájl végére. A ".000"-t is be kell írni.) Választható opciók, hogy csak szimulálja a visszaállítást, illetve hogy nullákkal töltse fel a nem használt helyeket (a partíción, amire visszaállítunk, nyilván minden törölve lesz).
A visszaállítás 5:04 alatt sikerült is. Ne felejtsük el az MBR (azaz az abban lévő rendszerbetöltő és az elsődleges partíciós tábla) visszaállítását sem! Indítsuk el még egyszer a partimage-et, és a "Restore an MBR from the imagefile"-t válasszuk, majd újra ugyanazt az image-et. Az F5 után válasszuk ki, hogy hova akarjuk az MBR-t visszaállítani és kész is. FONTOS, hogy ha az MBR visszaállításakor valami hiba történik, akkor a szívás dedikált esete forog fenn: mindent elveszthetünk a merevlemezről! Én szóltam.
Mivel az MBR csesztetése mindig kockázatos, én azt szoktam csinálni, hogy a mentés 2-es lépésében elmentett fájlt odarakom az image mellé, és szépen megcsinálom kézzel a partíciókat, illetve a grubot kézzel telepítem az MBR-be. Erről is fogok írni nemsoká'.
Remélem, senki nem szontyolodott el, hogy ez bonyolult lenne. Nem az, de sok minden apróságot kell hozzá megtanulni. Ha egyszer sikerült bejáratni, akkor viszont nagyon gyorsan menni fog, egyszerűnek fog tűnni, plusz arcoskodhatunk is a UNIX tudásunkkal. :-)