Ha valaki esetleg vitatná a biztonsági mentések szükségességét, annak még nem veszett el adata. De mivel ilyen ember nem nagyon létezik, rögtön bele is kezdhetünk abba, hogy milyen módon lehet megvédeni az adatokat: redundancia, azaz többszörözés.
Ez működhet sokféleképpen, pénztárcától függően: Lehet teljes szervereket tükrözni automatikus átállással (pl. a heartbeat segítségével), lehet merevlemez-alrendszereket vásárolni, amely biztosítja a redundanciát, köthetünk mi is merevlemezt RAID1/5/10-be, illetve aki nem szánja erre a pénzt, annak marad a rendszeres mentés. Habitustól függően ezt is lehet többféleképpen csinálni: Valaki egyszerűen a home könyvtárát menti, van aki partíciókat, és sokan a teljes merevlemezt - ez végülis szintén pénztárca függvénye, mert az zicher hogy venni kell párszáz DVD-t és egy polcot, amin ezek pihennek...
Hogy végülis rátérjek a lényegre: Van egy rakás szoftver, amikkel lehet mentést készíteni. Most azt mondom el, miért is körülményes a Partimage használata.
Ez a bizonyos programocska elérhető a Parted Magic bootolható CD részeként, és egy karaktergrafikus felületet nyújtva elkészíti a partícióink mentését. Képes távoli FTP site-ra, másik merevlemez-partícióra vagy CD/DVD-re menteni. Én ez utóbbit fogom elmagyarázni, mivel az FTP elérés egy otthoni felhasználó esetén nem tipikus, másik partíció meg sokszor nincs. A Partimage használata nem nagy kaland:
- 1. Be kell bootolni a Parted Magic cd-ről,
- 2. az XFCE felületen el kell indítani egy terminált, majd a PartImage-et (partimage néven fut)
- 3. Ki kell választani a mentendő partíciókat, valamint a célt, amire mentünk (az "Image file to create/use" sorba a DVD meghajtót írjuk be, pl. /dev/hdd)
- 4. A "Check for free space" NE legyen bekapcsolva, hiszen a DVD-n mit ellenőrizzen. A mentési méretnél ne adjunk meg 4Gb-ot, azt úgysem tudja létrehozni. Helyette állítsunk be 1Gb-ot, vagy 1,5Gb-ot (ekkor 4 vagy 3 fájlt tesz a DVD-re. Én 1Gb-ot szoktam beállítani, ilyenkor elvesztek kb. 500 megát, de mivel az a lemez legszélén, sérülékeny helyen helyezkedik el, én inkább vállalom ezt a veszteséget). Be kell még állítani a "Pause on volume changes" mezőt is, hogy szóljon, hogy DVD-t kell cserélni.
Gyüjjenek a problémák:
- Tudni kell, milyen partícióink is vannak - azért ehhez már picit érteni kell a számítógépes tudományhoz
- Tudni kell a DVD-meghajtó elérési útvonalát
- A Partimage nem tudja lementeni a partíciós táblát (a partíciók információit) és a boot managert sem (ez utóbbit elméletben tudja, de nem fog működni); magyarul ha a merevlemezünk tönkremegy (és hát hiszen éppen ezért csinálunk biztonségi mentést!), akkor nem tudjuk teljes mértékben visszaállítani a rendszert: A partícióink egyesével meglesznek, de hogy mit hova kell visszaállítani vagy hogy hogyan is fog ez az egész bebootolni, az ismét nem egyszerű.
E'? Akkor mire is jó tulajdonképpen ez a Partimage? Hát arra, hogy kicsit szebb, mintha kézzel tarolnánk és tömörítenénk a partícióinkat, egy tetszőleges boot lemezről bebootolva. Viszont az összes probléma meg fog maradni. Végezzünk egy gondolatkísérletet!
Figyelem! Amit leírok, az nálam működik, nálad nem biztos. Akkor kezdj bele, ha tudod, mit csinálsz, illetve ha nincs jelenleg semmi fontos a gépen (esetleg Virtualbox/VmWare alatt búvárkodsz).
1. Előkészületek
Nézzük meg, mi hová van felcsatolva, és hogy néz ki a partíciós tábla:
root@bicigli:~# mount
Szűrjük ki a lényeget (/dev/sda1, /dev/sda2). Tovább a partíciós táblához:
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
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 /home type ext3 (rw,noatime)
securityfs on /sys/kernel/security type securityfs (rw)
root@bicigli:~# fdisk -l
A táblázatban lévő kezdő és záró cilinderek nagyon fontosak; ezek egyben meg is adják a méretet. Ezt nyugodtan ki is nyomtathatjuk a mentés DVD tokjának borítójaként... :-) Később ennek segítségével helyre tudjuk állítani (kis eltérésekkel) pontosan ugyanezeket a partícióméreteket. Amit fontos megjegyezni, hogy ez csak ugyanilyen merevlemeznél működik, hiszen a cilinderek, szektorok és ezzel a blokkméret is változhat merevlemezenként, így lehet hogy majd számolgatnunk is kell majd a visszaállításkor.
/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
Példa: Ott van az "Egység" sorban, hogy 8225280 bájt egy blokk. Az sda1 3659 blokkból áll. Mivel ezek bájtban vannak megadva, és a végén gigabájtot szeretnék kapni, el kell osztani az eredményt 3 alkalommal 1024-gyel (elsőként megkapom kbyte-ban, aztán Mbyte-ban, aztán GByte-ban). Szóval 8225280*3659/1024/1024/1024 = 28,02936. Ellenőrizzük le, hogy tényleg ekkora a partíció:
root@bicigli:~# df -h
Hurrá, eddig jók vagyunk. Az "fdisk -l" eredményét mindenképp tegyük el, hiszen még számolni is megtanít, ugye milyen hasznos? :-)
Fájlrendszer Méret Fogl. Szab. Fo.% Csatl. pont
/dev/sda1 28G 13G 14G 49% /
varrun 252M 88K 252M 1% /var/run
varlock 252M 0 252M 0% /var/lock
udev 252M 48K 252M 1% /dev
devshm 252M 0 252M 0% /dev/shm
/dev/sda2 201G 155G 36G 82% /var
Megjegyzés: A swapot nyilvánvalóan nem kell menteni, de persze magát a partíciót helyre kell állítanunk majd.
Van még egy kis problémánk: A drága kis Ubuntu mérnökök kitalálták, hogy a /etc/fstab (amely a linux számára írja le, hogy melyik partíciót hova csatolja) fájlban nem az eszköznevekre (/dev/sda1, /dev/sda2) fognak hivatkozni, hanem a formázáskor kapott label-ekre. Ha megnézzük, máris látjuk a pofáraesés lehetőségét:
root@bicigli:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# /dev/sda1
UUID=9306d2e5-4f49-4ad9-86d2-0c1396c882c0 / ext3 defaults,errors=remount-ro 0 1
# /dev/sda2
UUID=1705beda-363f-44ea-bc9c-35285eab9a3e /var ext3 noatime 0 2
# /dev/sda3
UUID=17d63b59-0dd5-44ae-bd5b-b4081efa3e50 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec 0 0
Ha még kitartunk amellett, hogy így szeretnénk menteni, akkor a UUID-ket még most át kell írni (hiszen ha helyre akarunk állítani, akkor a label GARANTÁLTAN más lesz, tehát nem fogunk tudni bebootolni).
A módosítás előtt mentsük el a fájl tartalmát valahova, mert mindjárt kelleni fog! Így néz ki a módosítás után:
# <file system> <mount point> <type> <options> <dump> <pass>
Szerencsére arra azért gondoltak az Ubuntu mérnökei, hogy a UUID-s sorok fölé odaírják, hogy melyik partícióról van szó...
proc /proc proc defaults 0 0
# /dev/sda1
/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
# /dev/sda2
/dev/sda2 /var ext3 noatime 0 2
# /dev/sda3
/dev/sda3 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec 0 0
A poén az, hogy a grub menüjében ugyanezek a UUID-k vannak:
root@bicigli:~# cat /boot/grub/menu.lst
Remélem, tényleg kimásoltad az fstab régi tartalmát, mert az alapján ki kell javítani "root=/dev/sda1"-re. Az összes kernel szekciónál meg kell csinálni.
(.... itt van egy csomó minden, ezt ugorjuk át ....)
title Ubuntu 7.10, kernel 2.6.22-14-server
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-server root=UUID=9306d2e5-4f49-4ad9-86d2-0c1396c882c0 ro quiet splash
initrd /boot/initrd.img-2.6.22-14-server
quiet
Megjegyzés: Ha lilo-t használsz, akkor adaptáld a módszert arra (bár ott asszem nincs ilyen UUID-s hülyeség).
Ezután azért rutinból nyomjunk egy rebootot, hogy feláll-e a rendszerünk, és ha nem, akkor szidjuk Bagjot fennhangon... :-)
3. Mentés
Most bebootolhatunk a Parted Magic-kel, és elvégezhetjük az sda1 és sda2 mentését. A leírtak alapján nem lehet gond.
4. Visszaállítás - előkészületek
Egyszer le fogom írni, hogy hogyan lehet totál lenullázódva, egy szál boot cd-ről visszaállítani a rendszert, de van egyszerűbb módszer is. Tegyük fel, hogy megvettük a tönkrement merevlemez helyett az újat! Szedjük elő az Ubuntu telepítőt, és tegyünk fel egy rendszert; azzal a különbséggel, hogy a kézi partícionálást válasszuk, és az elmentett fdisk kimenet alapján hozzunk létre partíciókat! Első kanyarban akkor se vegyük nagyobbra a partíciót, ha nagyobb merevlemezt vettünk (ami több, mint valószínű), inkább hagyjunk üres helyet a végén. Később át tudjuk méretezni majd a meglévő partíciókat, ha be tudunk bootolni. Lényeges, hogy a partíciók sorrendjét ne borítsuk fel!
A telepítő létrehozta kedvenc boot loaderünket és a partíciókat is. Be sem kell bootolni, egyből nyomhatjuk a következő lépést.
5. Visszaállítás
A Parted Magic cd-ről bebootolva indítsuk el a Partimage-t, majd válasszuk a "restore partition from an image file" lehetőséget stb.
Reboot!
Ugye, milyen bonyolult? Lesz ez egyszerűbb is, keresek valami ennél okosabbat a közeljövőben.