HTML

Bagoj úr blogja

Kíváncsi Bagoj befigyel a Linux belsejébe, illetve különféle Linux terjesztéseket próbál ki. Ha jó napja van, scriptet ír Neked.

Friss topikok

Mérossz a Partimage? (Biztonsági mentések I)

2008.07.29. 11:04 bagoj ur

 

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. 1. Be kell bootolni a Parted Magic cd-ről,
  2. 2. az XFCE felületen el kell indítani egy terminált, majd a PartImage-et (partimage néven fut)
  3. 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. 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:

  1. Tudni kell, milyen partícióink is vannak - azért ehhez már picit érteni kell a számítógépes tudományhoz
  2. Tudni kell a DVD-meghajtó elérési útvonalát
  3. 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
/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)
Szűrjük ki a lényeget (/dev/sda1, /dev/sda2). Tovább a partíciós táblához:

root@bicigli:~# fdisk -l

/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
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.

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
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
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? :-)

Megjegyzés: A swapot nyilvánvalóan nem kell menteni, de persze magát a partíciót helyre kell állítanunk majd.

2. "És még valami"

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>
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
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ó...

A poén az, hogy a grub menüjében ugyanezek a UUID-k vannak:

root@bicigli:~# cat /boot/grub/menu.lst

(.... 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
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.

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.

 

6 komment

Címkék: linux backup script biztonsági mentés rendszerfelügyelet partimage

A bejegyzés trackback címe:

https://bagojur.blog.hu/api/trackback/id/tr3612308

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

béla 2008.07.30. 09:26:16

Az Ubuntus Full Circle újságban is írtak erről. Nem olvastam végig a durvulást. :-) DE! Tegyük fel, hogy nem megy tönkre a winyó, csak mondjuk elmentettem egy jól beállított rendszert és ha később nagy hülyeséget csinálok akkor vissza tudom állítani. Erre nagyon jó a Partimage.

birno 2008.07.30. 10:37:14

Én az egyszerűbb módszert választottam, amennyiben csak konkrétan az operációs rendszer mentéséről van szó.
Live cd be, partíciókat csatolja automatikusan, majd "rsync -avx /amit/mentesz/* /ahova/mentesz/" és kész is.
Ha meg frissíteni akarom: "rsync -au --delete /amit/mentesz/ /ahova/mentesz/"

Bár ehhez persze kell egy másik lemez is, de ma már egy kisebb vincsit vagy egy nagyobb pendriveot annyira olcsón lehet venni, hogy jobban megéri mint a dvd-re mentés, mivel az jóval sérülékenyebb.
S itt legalább a partíció mérettel sem kell foglalkozni, ha meg változna az eszköznév az is simán javítható a live cd-ről, a grub install meg szintén 1 perc alatt megoldható.

Meg ez is egy érdekes projekt lehet: mklivecd.sourceforge.net/
Bár én még nem próbáltam, de egy fórumon olvastam, hogy működött, mondjuk kicsit halott már a projekt...

bagoj.ur 2008.07.30. 22:44:30

Birno: én se a Partimaget használom, elhiheted. :-) Épp arra akartam kilyukadni, hogy nem igazán érzem, hogy sok teteje lenne; lényegében egy kézi tarolást megúszol, de semmi mást. Én a g4u-t szeretném kipróbálni hamarosan...

mavo · http://polmavo.blog.hu 2008.08.14. 01:20:33

Én inkább szoftveres RAID-1 tömböket használnék, de az én vagyok. :-)

bagoj ur 2008.08.18. 10:12:39

mavo: Ahogy mondtam, mindenkinek pénztárcától függően... :-)

ti00652 2012.08.13. 09:31:49

Partíciós tábla lementése:
sfdisk -d > partitions

Visszaállítása:
sfdisk < partitions

Az MBR-t meg dd-vel lehet menteni.