ReiserFS Root Boot HOWTO
Micskó Gábor trey@debian.szintezis.hu - Hungarian Unix Portal
v.1.0, 2002. augusztus. 26 - Copyright © Hungarian Unix Portal
1. Bemutatás
2. Elõfeltételek
3. Ext2 alapú filerendszer konvertálása ReiserFS-re
3.1 Kernel fordítása ReiserFS támogatással
3.2 ReiserFS filerendszer készítése
3.3 A root filerendszer másolása
3.4 Végsõ beállítások
3.5 Reboot
4. Hibaelhárítás
5. Copyright, licenc, visszajelzés és ilyesmi1. Bemutatás:
Ez a HOWTO leírja azt az eljárást amellyel át tudunk konvertálni egy Ext2 filerendszer alapú Linux rendszert úgy, hogy az egész root (/) filerendszer ReiserFS-en fusson. A ReiserFS-sel kapcsolatos bõvebb információért és a legfrissebb letöltési lehetõségért látogasd meg a ReiserFS project web oldalát a http://www.reiserfs.org/ URL-en.
2. Elõfeltételek:
Mielõtt nekilátnánk, három elõfeltételnek kell megfelelned:
# Rendelkezned kell egy telepített és mûködõ Linux rendszerrel
# Rendelkezned kell egy üres partícióval, a partíciónak 83-as típusúnak (Linux) kell lennie. Az nem számít, hogy a partíció formázva van-e vagy sem, mi majd megformázzuk ReiserFS-re, és úgyis eltûnik róla minden, ami elõtte rajta volt ;-)
# A /boot könyvtár egy szeparált kis méretû ext2 filerendszeren legyen, mert a Lilo (LInux LOader) nem támogatja a ReiserFS filerendszerrõl való bootolást (ez nem teljesen igaz. Lehet Lilo-val ReiserFS-rõl bootolni, de! a ReiserFS filerendszert egy -notail opcióval kell felmountolni. Hogy miért? Lásd a hibaelhárítás címû részt.) A grub (GRand Unified Bootloader) az újabb információk szerint tud bootolni ReiserFS-rõl. Esetleg használj Lilo helyett grub-ot. Bõvebb információért látogasd meg a Lilo honlapját a http://brun.dyndns.org/pub/linux/lilo/, és a grub honlapját a
http://www.gnu.org/software/grub/ URL-en.
Ez a dokumentum feltételezi, a partícióid kiosztása a következõ: A /dev/hda1 (swap), /dev/hda2 /boot (ext2), /dev/hda3 root (/) filerendszer (ext2), és végül a /dev/hda4 amely filerendszert fogjuk ReiserFS-re alakítani. Ez rendszer-specifikus, értelemszerûen más gépeken az ottani beállításokkal kell végezni a mûveleteket.
A Linux kernel (2.4.x) lassan egy éve támogatja a ReiserFS filerendszert, tehát külsõ patcheket nem kell beszereznünk. Amire szükségünk lesz, az egy Linux kernel ReiserFS filerendszer támogatással, és a reiserfsprogs programok.
A ReiserFS programokat (reiserfsprogs) letölthetjük a ReiserFS honlapjáról (http://www.reiserfs.org/) reiserfsprogs-x.x.x.tar.gz néven. Linux kernelt fordítani ReiserFS támogatással nem nehéz dolog, de ha még soha nem fordítottál kernelt, akkor lehet hogy nem ezzel kellene kezdened ;-)
3. Egy ext2 alapú rendszer konvertálása ReiserFS-re
Több kereskedelmi Linux terjesztés felajánlja telepítéskor, hogy a rendszerünket ReiserFS filerendszerre telepíthetjük. Ilyenkor nem kell mást tenni, mint kiválasztani a ReiserFS-t, megadni a csatolási pontot (/) és a telepítõ elvégzi helyettünk a szükséges feladatokat. Ez a dokumentum a meglevõ ext2 alapú rendszer ``áthelyezésérõl" szól.
A következõ szekció leírja a szükséges lépéseket ahhoz, hogy hogyan építsünk fel egy Reiserfs root (/) filerendszert, és hogyan bootoljuk be azt.
3.1 Kernel fordítása ReiserFS támogatással
Töltsd le a legutolsó 2.4.x kernelt az ftp.kernel.org-ról a /tmp könyvtárba. Csomagold ki egy elkülönített könyvtárba. Másold a /usr/src/ alá.
Konfiguráld a kernelt a make config (make menuconfig, make xconfig) segítségével, amelyik közelebb áll a szívedhez :-). A "File systems" címkével jelzett szekcióban kapcsold be a "ReiserFS support" stuffot. Legyél biztos abban, hogy a ReiserFS támogatást a kernelbe fixen drótozva tetted, NEM MODULBA, mert akkor nem fogja boot idõben a kernel támogatni a ReiserFS-t (csak kisebb cselek árán, de erre most nem térek ki). Konfiguráld az egész kernelt ahogy szükséged van rá, mentsd el a konfigot, majd forgasd le a
kernelt. A kernel fordítását a make dep; make clean; make bzImage parancsok kiadásával végezd (vagy ahogy tetszik, ezerféleképpen lehet) ha szükséges fordítsd le a modulokat is, make modules; make modules_install. Utána másold az új kernelt a /boot könyvtárba. Másold a System.map-ot /boot-ba.
#make dep
#make clean
#make bzImage
#cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.0-reiserfs
#cp /usr/src/linux/System.map /boot
Most szükségünk van a ReiserFS programok lefordítására, (én a debian sarge rendszeremen egyszerûen kiadtam az 'apt-get install reiserfsprogs' parancsot, de aki akarja forgassa le (a fordításhoz nézd meg a letöltött reiserfsprogs-x.x.x.tar.gz-ben levõ telepítési útmutatót). Ezek a programok azok, amellyel a ReiserFS filerendszert létre lehet hozni, ellenõrizni lehet, ki lehet terjeszteni a méretét, stb.
A következõ lépés az, hogy módosítani kell a LILO bejegyzéseit úgy, hogy az új kernelünket bootolja be. Szerkesszük a /etc/lilo.conf filet és végezzük el az alábbi bejegyzéseket:
image=/boot/vmlinuz-2.4.0-reiserfs
label=reiserfsboot
read-only
root=/dev/hda3
Futtassuk az /sbin/lilo parancsot, ahhoz hogy aktiváljuk az új konfigurációt és rebootoljunk az új kernellel.
3.2 A ReiserFS filerendszer készítése
OK, most van egy kernelünk ReiserFS támogatással, itt az ideje, hogy megformázzuk az üres partíciónkat ReiserFS-re.
#mkreiserfs /dev/hda4
reiserfsprogs 3.6.2
mkreiserfs: Guessing about desired format..
mkreiserfs: Kernel 2.4.20-pre4 is running.
Format 3.6 with standard journal
Count of blocks on the device: 515080
Number of blocks consumed by mkreiserfs formatting process: 8227
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 6693db94-d0e1-410c-a35e-27472e56299d
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON '/dev/hda4'!
Continue (y/n): y
[...]
3.3 A root filerendszer másolása
Ez egy könnyû lépés, kevés munkát igényel a részedrõl, viszont ez viszi el a legtöbb idõt a munka során. Elõször is umount-old az összes NFS, SMB, és cdrom-ot, ami esetleg mountolva lenne. Készíts egy csatolási pontot (mount point) az új ReiserFS partíció részére, és mountold azt. Néhány dolog mielõtt másolsz: ne másold a /proc könyvtárt, viszont készíts neki egy csatolási pontot. Ha nem tudod umountolni a NFS-ed vagy CD-ROM-od, emlékezz rá, hogy ezeket ne másold. Minden mást másolj át a cp -a paranccsal.
#mkdir /reiserfsvol
#mount -t reiserfs /dev/hda4 /reiserfsvol
#cd /
#cp -a bin etc lib boot dev home usr var [...] /reiserfsvol
#mkdir /reiserfsvol/proc
Ugyanezt a cp -ax paranccsal is el lehet végezni könnyebben, lásd a bõvebb információkért a cp man oldalát.
3.4 Végsõ beállítások
Mielõtt rebootolnánk az új ReiserFS partíciónkra, el kell végeznünk néhány beállítást. Elõször is, meg kell változtatnunk a /etc/fstab bejegyzést a root partíciónkhoz. Emlékezz! hogy az fstab file amin dolgoznunk kell a /reiserfsvol/etc alatt van, hiszen az lesz az új root partíciónk. Tehát szerkeszd ezt a filet, és írd át a root partícióhoz szóló bejegyzést. Valahogy így:
/dev/hda3 / ext2 defaults 1 1
Ezt kell megváltoztatnunk így:
/dev/hda4 / reiserfs defaults 1 1
Editáld a /etc/lilo.conf-ot úgy, hogy a root partíciódra mutasson. Valami ilyesmit kell csinálnod:
default=reiserfsboot2
...
image=/boot/vmlinuz-2.4.0-reiserfs
label=reiserfsboot2
read-only
root=/dev/hda4
Figyelj arra, hogy futtasd a'/sbin/lilo'-t újra, mielõtt rebootolnál.
3.5 Reboot
Gratulálok! Ha követted a lépéseket, akkor a rendszered tisztán ReiserFS-en fut. Hogy ellenõrizd ezt, írd be 'mount' és nézd meg a kimenetet:
/dev/hda4 on / type reiserfs (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
Ha minden jól müködik, akkor a régi partíciódat (/dev/hda3) megformázhatod ReiserFS-re, és visszaállíthatod a rendszered az eredeti partícióra. Vagy csinálhatsz amit kedved tart. Ha rám hallgatsz azt csinálsz amit akarsz ;-).
4. Hibaelhárítás
Probléma:
ReiserFS-t választottál a /boot partíció fájlrendszereként. Amikor egy LILO beállítást akar létrehozni, a következõ üzenetet kapod:
Hole found in map file (alloc_page)
Ezután, amikor újraindítja a rendszert. a lilo megáll, és csak a 'LI' betûk látszanak.
Ok:
A 16k-nál kisebb méretû fájlok esetében a reiserfs megpróbálja elkerülni a részblokkok elpazarlását, a fájlok végének és elejének "összecsomagolásával". Ez problémákat okoz a lilo számára, mivel a szükséges adatok a merevlemezen nem megfelelõ helyre kerülnek.
Megoldás
Kétféle megközelítés létezik: formázd újra a /boot partíciót ext2 fájlrendszer használatával, vagy csatold fel a /boot partíciót a 'notail' paraméter használatával.
Az újraformázás módja:
Root-ként másold le a /boot könyvtár tartalmát és csatold le a /boot partíciót:
cp -a /boot /boot.backup
umount /boot
Formázd újra a partíciót, ahol a /boot 'ext2'-ként lett csatolva:
mke2fs /dev/hd??
Szerkeszd meg az /etc/fstab fájlt:
változtasd meg a
/dev/hd?? /boot reiserfs defaults 0 0
sort a
/dev/hd?? /boot ext2 defaults 0 0
sorra.
Csatold fel a /boot partíciót újra, mozgasd vissza a tartalmát, majd futtasd a lilo-t:
mount /boot
mv /boot.backup /boot
lilo
A 'notail' paraméter megadása:
Rootként szerkessze az /etc/fstab fájlt:
változtasd meg a
/dev/hd?? /boot reiserfs defaults 0 0
sort a
/dev/hd?? /boot reiserfs notail 0 0
sorra.
Indítd újra rendszert. Másold és mozgasd át a /boot könyvtárat, majd futtasd le újból a lilo-t:
cp -r /boot /boot2
mv /boot2 /boot
/sbin/lilo
5. Copyright, licenc, visszajelzés és ilyesmi:
Micskó Gábor trey@debian.szintezis.hu - Hungarian Unix Portal
Ez a dokumentum szabadon másolható és terjeszthetõ, ha a copyright és az engedély szövegét minden másolaton megõrzik. E dokumentum módosított változatai a változatlan másolatokkal megegyezõ feltételek alapján másolhatók és terjeszthetõk, ha a módosított változatot is az ezzel az engedéllyel megegyezõ feltételekkel terjesztik. A fordítások is a ``módosított változat'' kategóriájába tartoznak.
Garancia: Nincs.
Ajánlások: Az üzleti célú terjesztés megengedett és támogatott, de nyomatékosan ajánlott, hogy a terjesztõ lépjen kapcsolatba a szerzõvel a terjesztés elõtt, a dolgok naprakészségének biztosítása végett. (Küldhetsz egy példányt abból, amit csinálsz, ha már úgyis csinálod.) A fordítóknak is ajánlott kapcsolatba lépni a szerzõvel,
mielõtt lefordítják. A nyomtatott változat jobban néz ki. A papírt használd fel újra!
Visszajelzéseket, építõ jellegû kritikát a trey@debian.szintezis.hu email címre várok.
Sok szerencsét!