Još jedno alternativno rješenje za podizanje linux poslužitelja u slučaju kvara
Mogući su razni scenariji nemogućnosti podizanja (bootanja), linux sustava. Raspad RAID-a, uništen GRUB bootloader, obrisan MBR diska ... lista je duga. Za takvu situaciju možemo pripraviti USB-klipić koji sadrži kopiju osnovne (root) particije i svih važnih hardverskih parametara i modula potrebnih za podizanje sustava. Uvjet je da se poslužiteljev BIOS može konfigurirati za podizanje sustava preko USB-a, što je u današnje vrijeme redovit slučaj.
Dovoljno je imati memorijski klipić kapaciteta 500M ili 1G, toliko zauzmu preslike kernela, modula i konfiguracijskih datoteka (pod predpostavkom da se uobičajeno veliki direktoriji /var, /usr /home itd. ne nalaze u istoj particiji kao root onda ta (/) particija u načelu ne treba puno diskovnog prostora. Puno prostora u toj particiji mogao bi eventualno zauzimti kernel src direktorij ako sadrži sirovi - nebinarni - kod za kompiliranje kernela).
Memorijski klipić obično dođe formatiran u FAT ili VFAT datotečnom sustavu. Particiju na koju želimo kopirati linux / (root), treba zato ponovo formatirati za linux. Možemo to napraviti na bilo kojem linux stroju s grafičkim alatom gparted ili direktno iz konzole:
mkfs.ext3 /dev/sdc1 #ako je FAT ili VFAT particija prepoznata kao /dev/sdc1 sync ; sync
Time je priprema gotova, slijedi kopiranje root particije poslužitelja na upravo formatiranu particiju. Kada utaknemo USB-klipić u USB sučelje poslužitelja izvršimo kao root slijedeće naredbe:
cd / #pozicioniranje u root dir fdisk -l #vidjeti koja particija/uređaj je dodijeljen USB-klipiću mkdir /mnt/sdc1 #kreirati mjesto montiranja klipića ako je fdisk tako pokazao mount /dev/sdc1 /mnt/sdc1 #montiranje particije na USB-klipiću mkdir /udev #dir za montiranje /dev mount --move /dev /udev #montiranje /dev cp -avx / /mnt/sdc1 #kopiranje "/" na klipić (x=ne ići izvan / particije, v=ako hoću gledati što se sve kopira) mount --move /udev /dev #odmontirati /dev (nakon završenog kopiranja)
Instalacija bootloadera:
Ako na poslužitelju pokrenete naredbu:
grub-install -v
dobijete nešto poput:
grub-install (GRUB) 1.98+20100804-14+squeeze1
To znači da je instaliran GRUB2. Ako bi umjesto broja 1.98 pisalo 0.97 ili manje, to bi značilo da je instaliran GRUB. Shodno tome različit je i postupak instalacije na mem-klipić:
Instalacija GRUB-a:
Dok je /mnt/sdc1 još montiran u datoteku /mnt/sdc1/boot/grub/device.map treba utipkati:
(hd0) /dev/sdc
a u /mnt/sdc1/boot/grub/menu.lst treba stajati nešto poput:
title Debian GNU/Linux, kernel 2.6.18-6-486 root (hd0,0) kernel /boot/vmlinuz-2.6.18-6-486 root=/dev/sda1 ro vga=792 initrd /boot/initrd.img-2.6.18-6-486 savedefault
Što se tiče novije verzije (grub2) podešavanja, moguće ga je podesiti nakon što se pozicioniramo naredbom 'chroot' u direktorij /mnt/sdc1:
mount --bind /dev /mnt/sdc1/dev mount --bind /proc /mnt/sdc1/proc
Potreban će nam biti i /usr direktorij, da bi u chroot okolišu imali pristup bash ljuski. Pogledamo s
df -h
na kojoj /dev particiji je lociran /usr pa ga montiramo na /mnt/sdc1/usr (u našem primjeru je u lociran u raid polju md5):
mkdir /mnt/sdc1/usr mount --bind /dev/md5 /mnt/sdc1/usr #ili mount --bind /usr /mnt/sdc1/usr (ako prvo ne prođe)
#ako zatreba na isti način montirati i /var
chroot /mnt/sdc1
Sad pošto nam je USB-klipić lociran na /dev/sdc pokrenemo instalaciju GRUB2 u mbr tog uređaja:
grub-install --recheck /dev/sdc
Nakon nekoliko trenutaka, kad prođe instalacija pojavi se obavijest:
Instalation finished. No error reported.
Još samo utipkamo:
grub-mkconfig
i
update-grub
Možete testirati da li je grub instaliran ako pokrenete slijedeću naredbu prije i poslije instalacije grub-a:
dd if=/dev/sdc bs=512 count=1 | xxd
pa ako negdje u ispisu možete pročitati riječ "GRUB" nakon instalacije, valjda je grub instaliran.
Nakon umountanja /usr i drugih particija koje ste montirali u chroot okolišu izlaz je s exit:
umount /proc /dev /usr
exit
Odmontirajte /proc /dev /usr i sam USB klipić /mnt/sdc1
umount /mnt/sdc1/proc /mnt/sdc1/dev /mnt/sdc1/usr
umount /mnt/sdc1
Naredba
mount #bez parametara
pokazat će da li je sve montirano onako kako je bilo i prije.
Sve u svemu instalacija GRUB i GRUB2 pokretača je slična kao što je opisano u članku:
http://sistemac.carnet.hr/node/1037
Nakon instalacije GRUB-a još je samo potrebno testirati da li je sve prošlo u redu.
Za pouzdano testiranje podizanja sustava sa USB-klipića trebalo bi spuštati i dizati ponovo poslužitelj s utaknutim klipićem u jedno od USB sučelja (mogli bi odmah uočiti da root (/) particija biva montirana na klipić, a ostale kao i prije, jer ih nismo dirali), ali pošto je takav test povezan sa privremenim ispadom sustava u produkciji, testiranje se možda može obaviti na zamjenskom poslužitelju ili virtualno na samom poslužitelju s qemu emulatorom, npr.:
qemu /dev/sdc #emulacija iz grafičkog sučelja
ili emulacija iz konzole, ako poslužitelj nema instalirano grafičko sučelje:
qemu-system-i386 -curses /dev/sdc #za 32-bitni kernel
qemu-system-x86_64 -curses /dev/sdc #za 64-bitni kernel
- Logirajte se za dodavanje komentara
- Inačica za ispis
- PDF version