JFS Root Boot HOWTO

A HupWiki-ből...

Paul Larson plars@austin.ibm.com
v1.0, May 22, 2001 - Copyright © International Business Machines Corp., 2001 1. Introduction
Micskó Gábor trey () hup ! hu - Hungarian Unix Portal
v.1.1, 2002. augusztus. 25 - Copyright © Hungarian Unix Portal

Tartalomjegyzék

Bemutatás

Ez a HOWTO leírja azt az eljárást, amellyel át tudunk konvertálni egy ext2 filerendszeren levő Linux rendszert úgy, hogy az egész az [[IBM Journaled File System]] (JFS)-en fusson. A JFS-sel kapcsolatos bővebb információért és a legfrissebb letöltési lehetőségért látogasd meg a JFS for Linux web oldalt a http://www-124.ibm.com/developerworks/oss/jfs/ URL-en.

Előfeltételek

Mielőtt nekilátnánk, két 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 JFS-re, és úgyis eltűnik róla minden, ami előtte rajta volt ;-)

Ez a dokumentum feltételezi, hogy egy nagy, egybefüggő Linux partíciód van, amelyen a root (/) filerendszered helyezkedik el, és nincsen külön a /home, /usr, stb. Nem baj ha esetleg külön vannak, viszont egy dologra figyelni kell, hogy az üres partíció amelyen a JFS filerendszer lesz elegendően nagy legyen ahhoz, hogy az egész / filerendszered elférjen rajta, módosítani tudd a /etc/fstab filet, törölni tudjál róla, vagy meg tudd változtani a becsatolások helyét ha az szükséges. Végül, a dokumentumban a root filerendszer (/) a /dev/hda5 eszközön van, és a új partíció, amelyet meg fogok formázni JFS-re a /dev/hda6-on lesz. Ez rendszer-specifikus, értelemszerűen más gépeken az ottani beállításokkal kell végezni a műveleteket.

Amit még figyelembe kell vennünk az az, hogy szükség lesz a megfelelő patchekre (hacsak nem kernel támogatást használunk, amely a 2.4.20-pre4-től a rendelkezésünkre áll), patchelnünk kell a kernel forrást, és egy kernelt kell fordítanunk JFS támogatással. Ez nem nehéz dolog, de ha még soha nem fordítottál kernelt, akkor lehet hogy nem ezzel kellene kezdened ;-)

Egy ext2 alapú rendszer konvertálása JFS-re

Több kereskedelmi Linux terjesztés felajánlja telepítéskor, hogy a rendszerünket JFS filerendszerre telepíthetjük. Ilyenkor nem kell mást tenni, mint kiválasztani a JFS-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 JFS root (/) filerendszert, és hogyan bootoljuk be azt.

Kernel fordítása JFS támogatással

Töltsd le a legutolsó 2.4.x kernelt az ftp.kernel.org-ról, és a legutolsó jfs-x.y.z-patch.tar.gz-t a JFS for Linux web oldalról a /tmp könyvtárba. Csomagold ki őket egy elkülönített könyvtárba. Másold őket a /usr/src/ alá. Lépj be a kernel forrás alapkönyvtárába és patcheld meg a kernelforrást.

$cd /usr/src
$rm linux
$tar -xvzf /tmp/linux-2.4.3.tar.gz
$mv linux linux-2.4.3
$ln -s linux-2.4.3 linux
$mkdir jfs
$cd jfs
$tar -xvzf /tmp/jfs-0.3.1-patch.tar.gz
$cd /usr/src/linux
$patch -p1 < ../jfs/jfs-2.4.0-v0.3.1-patch
$patch -p1 < ../jfs/jfs-common-v0.3.1-patch

Konfiguráld a kernelt a make config (make menuconfig, make xconfig) segítségével, amelyik közelebb áll a szívedhez :-). A

"Code maturity level options" 

címkével jelzett szekcióban, kapcsold be azt a menüpontot, hogy

"Prompt for development and/or incomplete code/drivers." 

A

"File systems" 

címkével jelzett szekcióban kapcsold be a

"JFS filesystem support" 

stuffot. Legyél biztos abban, hogy a JFS támogatást a kernelbe fixen drótozva tetted, NEM MODULBA, mert akkor nem fogja boot időben a kernel támogatni a JFS-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 clean 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 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-jfs
$cp /usr/src/linux/System.map /boot

Most szükségünk van a JFS programok lefordítására, (én a debian sarge rendszeremen egyszerűen kiadtam az 'apt-get install jfsutils' parancsot, de aki akarja forgassa le). Ezek azok a programok azok, amellyel a JFS filerendszert létre lehet hozni, ellenőrizni lehet, ki lehet terjeszteni a méretét, stb.

$cd fs/jfs/utils
$make
$make install

A következő lépés az, hogy módosítani kell a LILO bejegyzéseit úgy, hogy az új kernelünket bootolja be, és root (/) filerendszernek a JFS-t húzza fel. Szerkesszük a /etc/lilo.conf filet és végezzük el az alábbi bejegyzéseket:

image=/boot/vmlinuz-2.4.0-jfs
label=jfsboot
read-only
root=/dev/hda5

Futtassuk az /sbin/lilo parancsot, ahhoz hogy aktiváljuk az új konfigurációt és rebootoljunk az új kernellel.

JFS filerendszer készítése

OK, most van egy kernelünk JFS támogatással, itt az ideje, hogy megformázzuk az üres partíciónkat JFS-re.

$mkfs -t jfs /dev/hda6
mkfs.jfs development version: $Name: v0_3_1 $
Warning! All data on device /dev/hda6 will be lost!
Continue? (Y/N) y
Format completed successfully.
5120608 kilobytes total disk space.

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 JFS 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 /jfsvol
$mount -t jfs /dev/hda6 /jfsvol
$cd /
$cp -a bin etc lib boot dev home usr var [...] /jfsvol
$mkdir /jfsvol/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.

Végső beállítások

Mielõtt rebootolnánk az új JFS 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 /jfsvol/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:

LABEL=/ / ext2 defaults 1 1

Ezt kell megváltoztatnunk így:

/dev/hda6 / jfs defaults 1 1

Editáld a /etc/lilo.conf-ot úgy, hogy a root partíciódra mutasson. Valami ilyesmit kell csinálnod:

default=jfsboot2
...
image=/boot/vmlinuz-2.4.0-jfs
label=jfsboot2
read-only
root=/dev/hda6

Figyelj arra, hogy futtasd a'/sbin/lilo'-t újra, mielőtt rebootolnál.

Reboot

Gratulálok! Ha követted a lépéseket, akkor a rendszered tisztán JFS-en fut. Hogy ellenőrizd ezt, írd be 'mount' és ellenőrizd a kimenetet:

/dev/hda6 on / type jfs (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 megformázhatod JFS-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 ;-).

Copyright, licenc, visszajelzés és ilyesmi

JFS Root Boot HOWTO
Paul Larson plars@austin.ibm.com
v1.0, May 22, 2001 - Copyright © International Business Machines Corp., 2001 1. Introduction
Micskó Gábor trey () hup ! hu - Hungarian Unix Portal

Ez a dokumentum szabadon másolható és terjeszthető a GNU GPL terjesztési feltételei szerint.

Garancia: Nincs.

Visszajelzéseket, építő jellegű kritikát a trey () hup ! hu email címre várok.

Sok szerencsét!