Linux + XFS HOGYAN

Szteroiddal f�t�tt Linux

Russel Ingram

     [email protected]
    

Verzi�t�rt�net
Verzi�: v1.12002.05.12�tdolgozta: ri
Friss�lt az SGI cvs-r�l sz�l� inform�ci�, ami m�r a jelenlegi �llapotot t�kr�zi. Sz�mos v�ltoztat�s, pontos�t�s t�rt�nt az olvas�i visszajelz�sek alapj�n.
Verzi�: v1.022001.10.08�tdolgozta: ri
A dokumentum n�h�ny megjegyz�ssel, blokkjegyzettel lett kib�v�tve. Az "Utols� sim�t�sok" fejezetben kijav�tottam az utas�t�sok le�r�s�ban lev� hib�t. Az "XFS seg�dprogramok ford�t�sa �s telep�t�se" fejezet megjegyz�s�ben az e2fsprogs-devel csomag libuuid.a csomagra v�ltozott.
Verzi�: v1.012001.10.04�tdolgozta: ri
Hibajav�t�s az "Utols� sim�t�sok" fejezetben, sz�mos v�ltoz�s a k�lalakban.

Tartalomjegyz�k
1. Bevezet�s
1.1. Az XFS napl�z� f�jlrendszer bemutat�sa
1.2. El�sz�, visszajelz�s, k�sz�t�k
1.3. Szerz�i jog �s a felhaszn�l�s felt�telei
1.4. Magyar ford�t�s
2. El�k�sz�letek az XFS t�mogat�s telep�t�s�hez
2.1. A Linux 2.4.x-XFS forr�sk�d let�lt�se
2.2. XFS t�mogat�s: kernelbe ford�tva vagy modulk�nt bet�ltve?
3. Kernel be�ll�t�s �s telep�t�s
3.1. A kernel be�ll�t�sa az XFS t�mogat�shoz
3.2. A kernel �s a modulok ford�t�sa
3.3. Az �j kernel �s modulok telep�t�se
3.4. Egy �j bejegyz�s hozz�ad�sa a lilo be�ll�t�sokhoz, a be�ll�t�sok �rv�nyes�t�se
3.5. Az XFS seg�dprogramok ford�t�sa �s telep�t�se
3.6. Az �j kernel ind�t�sa
4. A f�jlrendszer lecser�l�se
4.1. A gy�k�rk�nyvt�r �tm�sol�sa
4.2. Utols� sim�t�sok

1. Bevezet�s


1.2. El�sz�, visszajelz�s, k�sz�t�k

Az Irix rendszeradminisztr�torok k�z�ss�g�nek eg�szen friss tagjak�nt val�s�ggal szerelmese lettem az Irix sz�m�ra kifejlesztett megb�zhat� f�jlrendszernek (amely term�szetesen az XFS). Mondanom sem kell, figyelemmel k�s�rtem a f�jlrendszer Linux-ra �t�r�s�r�l sz�l� h�reket, �s m�r a kezdetekt�l fogva arr�l �lmodoztam, hogy Linux rendszeremet csakis XFS f�jlrendszeren futtatom. A projekt m�r el�rkezett arra a pontra, amikor ez val�s�gg� v�lhat (val�j�ban ez m�r k�zel egy �vvel a jelen �r�s megsz�let�se el�tt megt�rt�nt). A nagysz�m� programk�sz�t�si/ program�t�ltet�si projekt ellen�re a dokument�ci�k nem mindig olyan k�nnyen fellelhet�k, vagy �rthet�ek mint szeretn�nk. Ez a le�r�s ezt a helyzetet pr�b�lja meg orvosolni.

A jelen le�r�sban tal�lhat� inform�ci�k Jason Walker �s Russel Cattelan �ltal az XFS fejleszt�i list�ra k�ld�tt levelek gy�jtem�ny�n, az SGI Open Source Development weboldalakon �sszegy�jt�tt inform�ci�kon, valamint saj�t (Russel Ingram) be�ll�t�si tapasztalataimon alapul.

K�ldj nyugodtan egy e-mailt erre a c�mre: ha jav�tani val�t tal�lsz benne, vagy valamilyen inform�ci�/URL illetve egy�b hi�nyzik bel�le. Min�l t�bb visszajelz�st kapok err�l HOGYANr�l, ann�l t�bb seg�ts�get tudok ny�jtani mindenkinek.

A le�r�s legfrissebb angol nyelv� v�ltozat�t a k�vetkez� helyen tal�lod: Gargoyle Computer Consulting .


1.4. Magyar ford�t�s

A magyar ford�t�st Daczi L�szl� k�sz�tette (2002.05.30). B�rmilyen ford�t�ssal kapcsolatos �szrev�telt a [email protected] c�mre k�ldjetek. A lektor�l�st Varga Zsolt v�gezte el (2002.06.27). A ford�t�s jav�tva 2002.10.29.-�n. A dokumentum legfrissebb v�ltozata megtal�lhat� a Magyar Linux Dokument�ci�s Projekt honlapj�n.


2. El�k�sz�letek az XFS t�mogat�s telep�t�s�hez

2.1. A Linux 2.4.x-XFS forr�sk�d let�lt�se

Az SGI Open Source Development oldalai jelenleg az egyetlen olyan hely, ahol el�rhet� az XFS t�mogat�s Linux alatt haszn�lhat� forr�sk�dja. Innen CVS-en kereszt�l t�ltheted le az anyagokat

MegjegyzésMegjegyz�s
 

jelenleg k�t k�l�nb�z� v�ltozat �rhet� el:

  • linux-2.5-xfs: fejleszt�i v�ltozat

  • linux-2.4-xfs: stabil, hibamentes v�ltozat

Az �n tapasztalataim a 2.4 verzi�n alapulnak, de �gy gondolom, a fejleszt�i v�ltozatban is minden ugyan�gy m�k�dik. Mindk�t v�ltozatot szinkroniz�lj�k a saj�t rendszermag-�g�val, legal�bbis annak f� v�ltozataival.

A kernel forr�s let�lt�s�hez sz�ks�ges l�p�sek a k�vetkez�k:

A. A Linux kernel forr�sa �ltal�ban az /usr/src k�nyvt�rban van, teh�t el�sz�r l�pj be ebbe a k�nyvt�rba (vagy ahov� a kernel forr�st telep�tetted - a ford.)

     $ cd /usr/src   
    

B. �ll�tsd be a CVSROOT k�rnyezeti v�ltoz�t, hogy az a megfelel� CVS kiszolg�l�ra mutasson

Ha gyakran szeretn�d friss�teni a kernelt, �rdemes ezt beletenni a login scriptbe.

C. Jelentkezz be a CVS kiszolg�l�ra.

     $ cvs login  (a jelsz�: "cvs")   
    

Ezt csak EGYSZER kell megtenned, nem minden alkalommal, amikor ezt a CVS-t haszn�lod.

D. T�ltsd le a linux-2.4-xfs forr�sk�dot. Az els� alkalommal ez valahogy �gy n�z ki:

     $ cvs -z3 co linux-2.4-xfs    
    

Legk�zelebb csak le kell ellen�rizni a forr�st, valahogy �gy...

     $ cvs -z3 update linux-2.4-xfs   
    

...majd friss�teni a n�lad l�v� forr�sk�dot a CVS kiszolg�l�n l�v� legfrissebb v�ltozatra.


2.2. XFS t�mogat�s: kernelbe ford�tva vagy modulk�nt bet�ltve?

Az XFS t�mogat�st modulk�nt is lehets�ges kernelbe ford�tani, ami azt�n RAM diszk �s n�h�ny lilo konfigur�ci�s be�ll�t�s seg�ts�g�vel m�k�dik is (nekem legal�bbis �gy mondt�k). �n nem pr�b�ltam ezt ki egyel�re, teh�t nem tudom le�rni ennek a menet�t, ez�rt id�zek Russel Cattelan fejleszt�i levelez�list�ra bek�ld�tt level�b�l:

 

Val�j�ban nem neh�z az xfs t�mogat�st modulk�nt futtatni. A cmd/xfs/misc k�nyvt�rban van egy m�dos�tott mkinitrd, amely mindig el��ll�t egy RAM diszket az xfs �s xfs_support sz�m�ra.

El�g egyszer hozz�adni az initrd bet�lt�s�re vonatkoz� bejegyz�st a lilo.conf �llom�nyban �S:

      append = "ramdisk_size=25000"   
     

Az alap�rtelmezett m�ret 4096, ami k�zel sem el�g az xfs t�mogat�shoz.

R�szlet a hordozhat� g�pem be�ll�t�sainak list�j�b�l:

      punch[12:57am]-=>mount
      /dev/ide/host0/bus0/target0/lun0/part8 on / type xfs (rw,noatime) 
      none on /proc type proc (rw) 
      /dev/ide/host0/bus0/target0/lun0/part6 on /boot type ext2 (rw,noatime) 
      none on /dev/pts type devpts (rw,mode=0620)
      /dev/ide/host0/bus0/target0/lun0/part1 on /mnt/windows type vfat (rw,nosuid,nodev,umask=0) 
      /dev/ide/host0/bus0/target0/lun0/part9 on /blam type xfs (rw)   

      punch[12:57am]-=>lsmod 
      Module                  Size Used by 
      autofs                 13180   1 (autoclean) 
      usb-uhci               24918   0 (unused) 
      usbcore                35339   0 [usb-uhci]
      3c59x                  25149   1 (autoclean) 
      maestro                29757   0 (unused) 
      soundcore               6085   2 [maestro]
      vfat                   13075   1 (autoclean) 
      fat                    37733   0 (autoclean) [vfat] 
      xfs                   447888   2 
      xfs_support            13954   0 [xfs] 
      pagebuf                39935   2 [xfs]   
 
      image=/boot/vmlinuz-2.4.0-XFS-test13-pre4 
      label=t13p4  
      root=/dev/hda8
      initrd=/boot/initrd-2.4.0-XFS-test13p4.img 
      append="ramdisk_size=25000"
      read-only   
     

 
-- Russell Cattelan  

Ez alapj�n azt gondolom nem t�l neh�z a t�mogat�st modulk�nt a kernelbe ford�tani, ez az, amit �n is tenni fogok. Megpr�b�lom majd �gy haszn�lni k�s�bb, �s tov�bbi r�szletekkel szolg�lok ennek megval�s�t�s�r�l. Ha valakinek van ideje le�rni ennek menet�t miel�tt �n megtenn�m ezt, k�rem, k�ldje el e-mailben, �n majd beleteszem a le�r�sba, a szerz�t megillet� jutal�kkal egy�tt :-))


3. Kernel be�ll�t�s �s telep�t�s

3.1. A kernel be�ll�t�sa az XFS t�mogat�shoz

MegjegyzésMegjegyz�s
 

Ha m�g soha nem �ll�tott�l be �s ford�tott�l �j linux kernelt, aj�nlott elolvasni a Linux Kernel HOGYANt, miel�tt ezeket a l�p�seket v�grehajtod. A Linux Kernel HOGYANt megtal�lod a Linux Documentation Project (LDP) oldalon vagy valamelyik t�kr�z�s�n.

Miut�n let�lt�tted a CVS k�nyvt�rf�b�l az aktu�lis kernel forr�s�t, annak a /usr/src/linux-2.4-xfs(-beta)/linux k�nyvt�rban kell lennie. Sz�val l�pj be ebbe a k�nyvt�rba miel�tt kiadn�d a make config (m�gink�bb a make menuconfig - a ford.) parancsot a be�ll�t�sok elv�gz�s�hez. Az XFS t�mogat�shoz enged�lyezned kell a a "Prompt for development and/or incomplete code/drivers" be�ll�t�st a "Code maturity level options" fejezetben majd a "Page Buffer support" �s "SGI XFS filesystem support" men�pontokkal kell ezt megtenned (mindkett� a "File systems" fejezetben tal�lhat�). Lehet�s�ged van m�g kiv�lasztani az "Enable XFS Debug mode" �s "Enable XFS Vnode Tracing" be�ll�t�sokat az "SGI XFS filesystem support" fejezet alatt. Ezek lass�thatj�k az XFS f�jlrendszered haszn�lat�t, de hasznosak lehetnek egy �sszeoml�s eset�nek kivizsg�l�s�ban, ha ilyen el�fordulna.


3.5. Az XFS seg�dprogramok ford�t�sa �s telep�t�se

Az XFS t�mogat�ssal sz�mos eszk�zt is kapsz, amikkel fel�p�theted �s karbantarthatod a f�jlrendszert. Ezek a /usr/src/linux-2.4-xfs(-beta)/cmd/xfsprogs k�nyvt�rban vannak.

MegjegyzésMegjegyz�s
 

Ezek az eszk�z�k a /usr/lib/libuuid.a osztott programoz�i k�nyvt�rra �p�lnek. Ha a k�nyvt�rat m�g nem telep�tetted, akkor az XFS eszk�z�k leford�t�sa el�tt felt�tlen�l tedd ezt meg. Az ezt tartalmaz� rpm csomagot megtal�lod a Rpmfind.net c�men, ha r�keresel a "/usr/lib/libuuid.a." sz�vegre, a Debian csomag neve pedig uuid-dev. M�s disztrib�ci�kban ez a programoz�i k�nyvt�r ezekt�l elt�r� csomagban is lehet. Egy j� m�dszer a megfelel� csomag megkeres�s�re, ha a Google Linux keres�motort haszn�lod.

L�pj be ebbe a k�nyvt�rba:

     $ cd ../cmd/xfsprogs   
    

Ford�tsd le, �s telep�tsd az XFS eszk�z�ket:

     $ make install    
    


3.6. Az �j kernel ind�t�sa

     $ reboot   
    

MegjegyzésMegjegyz�s
 

Ha nem �ll�tod be az alap�rtelmezett kernelnek az XFS t�mogat�ssal ford�tott kernelt, akkor bootol�skor be kell g�pelned az "xfs" sz�veget, majd le�tn�d egy enter-t, amikor megjelenik a "LILO Boot:" sz�veg a k�perny�n.


4. A f�jlrendszer lecser�l�se

Az elj�r�s befejez� r�sze tal�n a legtr�kk�sebb, �s ez vezethet a legk�nnyebben adatveszt�shez. Aj�nlott egy biztons�gi m�solatot k�sz�t�se a teljes rendszerr�l (vagy legal�bb az �sszes fontos adatr�l), miel�tt megk�s�rled azt az XFS f�jlrendszerre m�solni. M�g p�ld�t �rni is neh�z err�l, mivel t�bb sz�z lehets�ges m�dszer l�tezik. Megadom az alapvet� parancsokat, amikkel �ltal�noss�gban �j f�jlrendszert hozhatsz l�tre, valamint �tadom a saj�t f�jlrendszerem �tm�sol�s�b�l sz�rmaz� tapasztalatokat.


4.1. A gy�k�rk�nyvt�r �tm�sol�sa

Az XFS rendszernek a gy�k�rk�nyvt�r �tm�sol�sa tal�n a legtr�kk�sebb r�sze az elj�r�snak, mivel ezen van a rendszer �s nem tudod lev�lasztani (�rtsd: umount - a ford.) mialatt a linux fut. Ha van olyan tartal�k f�jlrendszered, amit fel tudsz csatlakoztatni (�rtsd: mount - a ford.), �s elf�r rajta a gy�k�rk�nyvt�r, akkor csin�lhatsz valami ehhez hasonl�t (nekem a /dev/hda4 a tartal�k, �s a /dev/hda2 a root part�ci�):

     $ mkfs -t ext2 /dev/hda4 
     $ mkdir /mnt/temp 
     $ mount -t ext2 /dev/hda4 /mnt/temp 
     $ cd / 
     $ tar lcf - .|(cd /mnt/temp; tar xpvf - )   
    

�n a "tar"-ral m�soltam �t a f�jlokat, esetleg haszn�lhatod a "cp -dpR" parancsot is, de ha a "tar"-t haszn�lod -- mint �n a p�ld�ban tettem az "-l" kapcsol�val -- akkor csak az ezen a part�ci�n l�v� f�jlok ker�lnek �tm�sol�sra. Pl.: ha van egy m�sik part�ci�d, amit a /usr pontra csatlakoztatsz, akkor az azon l�v� f�jlokat nem m�solja �t (pedig a gy�k�rk�nyvt�rb�l kiindulva ugyeb�r a /usr k�nyvt�rba is eljuthatunk... - a ford.).

(Figyelem!!! A sz�veg tov�bbi r�sz�ben a "/dev/hda2" �s a "/dev/hda4" part�ci�k nem biztos, hogy megfelelnek a Te part�ci�id hivatkoz�sainak - a ford.) K�vetkez� l�p�sk�nt cser�ld ki az /etc/fstab �s /etc/lilo.conf �llom�nyokban a /dev/hda2 bejegyz�seket /dev/hda4 -re, majd futtasd a "lilo"-t �s ind�tsd �jra a rendszert.

A rendszer �jraind�t�sa ut�n a /dev/hda4 part�ci� csatlakozik a gy�k�rk�nyvt�r pontj�ra, az eredeti gy�k�rk�nyvt�rat pedig nem csatlakoztatja a rendszer. Most egy �j XFS f�jlrendszert hozhatsz l�tre a /dev/hda2 hely�n.

     $ mkfs -t xfs /dev/hda2   
    

Csatlakoztasd az �j XFS f�jlrendszert:

     $ mount -t xfs /dev/hda2 /mnt/temp   
    

�s m�sold vissza a gy�k�rk�nyvt�rat az eredeti hely�re:

     $ cd / 
     $ tar lcf - .|(cd /mnt/temp; tar xpvf -)   
    

Cser�ld ki a /etc/fstab �s /etc/lilo.conf �llom�nyokban a /dev/hda4 hivatkoz�sokat �s futtasd a "lilo"-t. A f�jlrendszer t�pus�t is m�dos�tanod kell a /dev/fstab �llom�nyban. Ennek valahogy �gy kell kin�znie:

     /dev/hda2               /                       xfs    defaults 1 1   
    

MegjegyzésMegjegyz�s
 

N�h�ny linux disztrib�ci�ban az fstab �llom�nyban nem csak alap�rtelmezett be�ll�t�sok szerepelnek. P�ld�ul a Debian rendszerekben haszn�latos a "defaults,errors=remount-ro." A csatlakoz�s (mount /a ford.) be�ll�t�sai k�l�nb�z�ek minden f�jlrendszerre n�zve, kiv�ve a "default" kulcssz�t. Ha nem ismered a specifikus XFS be�ll�t�sokat, el�gedj meg az alap�rtelmezettel. A Debianban p�ld�ul nem haszn�lhat� az XFS hibakezel�si be�ll�t�sa, �s a f�jlrendszer nem lesz felcsatlakoztatva.

R�ad�sul a f�jlrendszer-c�mk�k egyre n�pszer�bbek, ez�rt az fstab �llom�nyban ilyen bejegyz�seket is l�thatsz, mint p�ld�ul ez:
 
      LABEL=/                 /                       ext2    defaults        1 1 
     
A legegyszer�bb m�dja a fenti probl�ma megold�s�nak az, ha kicser�led a c�mk�t a val�di eszk�z �llom�nynev�re (p�ld�ul, ha a "/dev/hda1"-re c�mk�vel hivatkozol / cser�ld a "LABEL=/" bejegyz�st "/dev/hda1"-re).

Most ind�tsd �jra a rendszered az �j XFS part�ci�n l�v� gy�k�rk�nyvt�raddal.

Term�szetesen sz�mos egy�b lehet�s�ged van a gy�k�rk�nyvt�r �tm�sol�s�ra. Ha �gy gondolod, hogy tudsz egy jobbat, felt�tlen�l szeretn�k hallani r�la �s berakni ebbe a le�r�sba, ha egyszer�bbnek n�z ki a fent le�rt �tletn�l. Nekem nincs m�sik felcsatlakoztathat� part�ci�m, viszont van CD �r�m, teh�t fel�rtam a gy�k�rk�nyvt�ram CD-re, felcsatlakoztattam, mint gy�k�rk�nyvt�rat, mik�zben k�sz�tettem egy �j XFS part�ci�t. Minden esetben ugyanazokat az alapvet� parancsokat kell haszn�lni egy �j f�jlrendszer k�sz�t�s�re �s csatlakoztat�s�ra.


4.2. Utols� sim�t�sok

Az utols� l�p�s a part�ci�k kicser�l�se. Ez l�nyeg�ben ugyanaz, mint amit a gy�k�rk�nyvt�r �tm�sol�sakor csin�ltam. (Norm�lis rendszerben van egy part�ci� a / k�nyvt�rnak, �s egy-egy a boot, usr, tmp, root, stb. k�nyvt�raknak - a ford.) Azt aj�nlom, ezt egyfelhaszn�l�s �zemm�dban hajtsd v�gre, �gy a gy�k�rk�nyvt�ron k�v�l b�rmit lecsatlakoztathatsz, �s az eg�sz csereber�t milli�nyi �jraind�t�s n�lk�l elv�gezheted. Egyfelhaszn�l�s m�dba �gy kapcsolhatod a rendszert, ha kiadsz egy fut�si szintet �t�ll�t� parancsot, p�ld�ul �gy:

     $ telinit 1   
    

vagy �jraind�t�skor a Lilo promptn�l k�rd ezt:

     LILO Boot: xfs single   
    

Ez elind�tja a rendszert, �s bel�psz egy root parancssorba minden k�ls� kapcsolat �s virtu�lis termin�l n�lk�l, �gy nem fordulhat el�, hogy valaki, vagy valamilyen program haszn�ljon egy f�jlrendszert (ez azt eredm�nyezn�, hogy az foglalt lenne �s nem tudn�d lev�lasztani). Most felcsatlakoztathatod a tartal�k f�jlrendszered �gy, ahogy el�z�leg m�r le�rtuk, �s �tm�solhatod r� a k�vetkez� k�nyvt�rat (el�sz�r tal�n t�r�ld le r�la a gy�k�rk�nyvt�rb�l felm�solt anyagot). V�laszd le a r�gi f�jlrendszert, k�sz�ts rajta egy �j xfs f�jlrendszert, majd csatlakoztasd fel, �s m�sold r� vissza a r�gi tartalm�t stb... Mondjuk ha a /dev/hda3 part�ci�t a /usr pontra csatlakoztatod fel, akkor a m�velet valahogy �gy n�z ki:

     $ mount -t ext2 /dev/hda4 /mnt/temp 
     $ cd /usr 
     $ tar lcf - .|(cd /mnt/temp; tar xpvf - )
	 $ cd /mnt/temp 
     $ umount /usr 
     $ mkfs -t xfs /dev/hda3 
     $ mount -t xfs /dev/hda3 /usr 
     $ tar lcf - .|(cd /usr; tar xpvf - )   
    

Ne felejtsd el kicser�lni a /usr k�nyvt�r f�jlrendszer�nek t�pus�t az /etc/fstab �llom�nyban xfs-re.

Ez minden amit tenned kellett. A t�bbi �tm�soland� f�jlrendszer eset�ben is ugyan�gy kell elj�rni. Ezut�n ha teljes t�bbfelhaszn�l�s m�dban �jraind�tod a rendszert, megkapod a saj�t XFS f�jlrendszeren fut� szteroiddal f�t�tt Linuxodat!