ringram@gargoylecc.com
Verziótörténet | ||
---|---|---|
Verzió: v1.1 | 2002.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.02 | 2001.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.01 | 2001.10.04 | Átdolgozta: ri |
Hibajavítás az "Utolsó simítások" fejezetben, számos változás a külalakban. |
Ez a dokumentum leírja, hogyan lehet egy Linux rendszert felépíteni és futtatni az SGI XFS naplózó fájlrendszeren. Idézet az XFS GYIK-ból: "Az XFS naplózó fájlrendszert az SGI fejlesztette ki az SGI IRIX operációs rendszerhez történő alkalmazásra, és most a GPL keretein belül a Linux számára is használhatóvá vált. A fájlrendszer különösen jól méretezhető, kihasználja a B-fa adta lehetőségeket a nagyméretű, több részletben tárolt fájlok, és a különösen nagyméretű könyvtárak tárolásához. A naplózó képesség azt jelenti, hogy búcsút mondhatunk az fsck hibajavítására történő várakozásra, vagy a fájlbejegyzési hiba miatti aggodalomnak." Az XFS naplózó fájlrendszert az SGI alapvetően a nagyteljesítményű kiszolgáló rendszerek számára tervezte, ezért kapta a jelen leírás a "Szteroiddal fűtött Linux" alcímet.
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: <ringram@gargoylecc.com> 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 .
A szerzői jogokat Russel Ingram birtokolja; copyright (c) 2001; ez egy INGYENES leírás. A GPL feltételei szerint te is szabadon terjesztheted.
Ennek a leírásnak a tartalma Russel legjobb tudása szerint megfelel a valóságnak. Mivel azonban az XFS linuxos átiratát emberek készítették el, így lehetnek benne tévedések, hibák ezek időnként előfordulnak.
Semmilyen személy, csoport vagy egyéb szervezet nem felelős a számítógépe(i)dben esett bármilyen kárért, amit az ebben a leírásban közölt információk felhasználása okozott. Azaz:
A SZERZŐ NEM VÁLLAL FELELŐSSÉGET SEMMILYEN KÁRÉRT, AMELYET A JELEN LEÍRÁSBAN KÖZÖLT INFORMÁCIÓKRA ALAPOZOTT TEVÉKENYSÉG OKOZOTT.
A magyar fordítást Daczi László készítette (2002.05.30). Bármilyen fordítással kapcsolatos észrevételt a linuxhowto@sch.bme.hu 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.
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és | |
---|---|
jelenleg két különböző változat érhető el:
|
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 sh, bash, ksh, stb-t használsz...:
$ export CVSROOT=':pserver:cvs@oss.sgi.com:/cvs' |
Csh vagy tcsh használata esetén:
$ setenv CVSROOT :pserver:cvs@oss.sgi.com:/cvs |
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.
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:
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:
| ||||
-- 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 :-))
Megjegyzé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.
Minden kernel fordításkor ki kell adni az alábbi parancsokat az új kernel (és modulok - a ford.) létrehozása érdekében:
$ make dep $ make bzImage $ make modules |
Ezt minden kernel telepítéskor újra meg kell csinálni:
$ make modules_install $ cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.0-XFS |
$ vi /etc/lilo.conf |
Hozz létre egy új kernelindító bejegyzést a lilo.conf állományban ehhez hasonlóan:
image=/boot/vmlinuz-2.4.0-XFS label=xfs read-only root=/dev/hda2 |
A "root=" szöveg utáni részt másold át egy szintén linuxot indító bejegyzésből, a lilo.conf állományból. Ne felejtsd el elindítani a lilo-t a lilo.conf fájl szerkesztése után, hogy a módosítások érvénybe lépjenek (a parancssorba gépeld be "lilo" majd üss egy "enter"-t - a ford.)
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é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 |
$ reboot |
Megjegyzé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. |
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.
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é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:
|
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.
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!