Már régóta tervezem, hogy régi vasakból összedobok egy kis fájlszervert illetve letöltőgépet (képek itt), ehhez jól jött Szőröstalpú leírása. No, de nem volt kedvem az egyetlen ODD-met kiszedni az asztali gépből, ezért gondoltam rá, hogy először Virtualbox-on feltelepítem a rendszert, beállítgatom, aztán valahogy átteszem a szerver-gép vincseszterére. Gondoltam, hogy tapasztalataimat megosztom másokkal is, mert ezen elképzelés kivitelezése okozott némi fejtörést.
Kezdtem a legegyszerűbbel, torrenten ubuntu 8.04 server CD image letölése (4 perc alatt megvolt, hála a közösségnek). Ennyi idő éppen elég volt, hogy a virtualbox-ose csomag települjön a tárolókból, indítás után becsatoltam a CD-képet a virtual géphez (itt írnak róla), majd telepítettem az Ubuntu szerver verziót (részletes leírás itt).
Telepítés után reboot és jött az első meglepetés: ”this kernel requires the following features not present on the cpu 0 6” hibaüzenet fogadott a boot folyamat helyett. Gugli első találat szerint a PAE beállítással van valami gond (pedig csak 1 Gb van a gépben, meg a virtuál gép is csak 256 Mb-t kapott), amit a General -> Advanced beállításoknál lehet kipipálni. No, fél órán át nézegettem a Virtualbox menüjét, de ilyet (akkor még) nem találtam, más megoldás után néztem – telepítsünk virtual kernel-t. Halleluja, ez egyszerűnek tűnik, de hogyan telepítsek, ha nem indul el a GRUB sem?! Szerencsére az Ubuntu CD-n van egy „Sérült rendszer javítása” funkció, amit elindítva sikerült egy prompt-ig eljutni, és már billentyűzhettem is be az „apt-cache search linux-virtual" utána pedig „sudo apt-get install linux-virtual” parancsot.
Ezután elkezdtem a fent említett leírás alapján beállítai az rtorrent-et, de amikor eljutottam az .rtorrent.rc fájl szerkesztéséhez, kiakadtam, a nyavaja sem fog ennyit gépelni! Rémlett, hogy a virtuális és a valós gép között lehet könyvtárat megosztani, hajrá! Létrehoztam egy VirtualShare nevű könyvtárat, a virtual gép alatt megpróbáltam csatolni (sudo mount -t vboxsf hoston_megosztott_mappa_neve /home/user/ahova_mountolni akarod), sikertelenül. Némi olvasgatás után liderült, Guest Additions kell neki, ezt elméletileg a futó gép alól lehet telepíteni az Eszközök menüből, igen, töltse le a CD-képet, igen, csatolja, nagyszerű, most már csak a /medi/cdrom/VboxLinuxGuestAdditions-x86.run fájlt kell futtatni – de az nem létezik?! /media/cdrom könyvtár üres, de akkor hova csatolta az iso-t? Szerettem volna a locate paranccsal megkeresni, de hiába van feltelepítve, nem megy, mert az mlocate.db nincs létrehozva ?! ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ.
No, itt egy kicsit lepihentem, belenéztem a magyar-portugál meccsbe (bár az is csak felidegesített), vissza, gugli. Jópár fórumot átolvasva semmi, aztán valahol ráakadtam egy „mount /dev/cdrom /media/cdrom” parancsra. Mi? Nem csatolja fel automatikusan a CD-t? Akkor minek van a Virtualbox grafikus felületén a CD engedélyezése? Ja, hogy azt elfelejtettem bejelelölni…. (sírva az asztalon fekvő, jobb kézzel csapkodó emoticon). No, most már tudom futtatni a /media/cdrom/VboxLinuxGuestAdditions-x86.run fájlt, de örömöm nem tart sokáig, mivel kellenek neki build meg header csomagok. Egy már megszokott mozdulatsor, sudo apt-get install build-essentials linux-headers-generic. Feltelepül, futtatom a GuestAdditions…run fájlt majd döbbenek. Még mindig nem megy. Következő ötlet: várjunk már, ez most valami virtual kernel, van ehhez egyáltalán headers csomag? Kerestem, de nem találtam (mint később kiderült, rosszul kerestem). Akkor mi van még itt – persze a szerver kernel, de ahhoz meg kellene vmi PAE beállítás. Mivel ekkor már nem korlátozott a gugli által ajánlott angol menüs leírás, 2 perc alatt megtaláltam, indítás és csoda!, fut a virtuális gép a server kernellel. No, de ettől még a GuestAdditions telepító nem fut le, mi is lehet a gond? Próbálgattam vagy 5 percig, mire leesett: HÜÜÜÜLYE, server kernelhez linux-headers-server kell, nem generic!!!!! Feltettem, lefutott a telepítő, majd inkább visszamentem meccset nézni (de minek), aznapra felfüggesztettem ezirányú ténykedésemet.
Másnap vissamerészkedtem, de hamar feladtam, miután a sudo mount -t share /mnt parancsra azt a hibaüzenetet kaptam, hogy /sbin/mount.vboxsf: mounting failed with the error: Protocol error. Gugli, első tipp szerint telepítsük újra a GuestAdditions-t. Hajrá, ez már megy. Visszanyilakkal ismét megvan a fenti mount parancs, semmi. Ez nem jött össze, kicsit pihenjünk, majd legközelebb.
Következő este (míg párom a Barátok közt és Jóban-Rosszban című esti meséket nézte) ismét próbáltam zöld ágra vergődni a rendszerrel, mintegy negyed óra alatt ismét sikerült felvinni a vérnyomásomat, mire nagy nehezen leesett, hogy én nem share nevet adtam a könyvtáramnak, hanem virtualshare, ezért nem találja fenti parancsból a megosztott könyvtárat... Megint kénytelen voltam lehülyézni magam, de végre sikerült a kívánt fájlokat felmásolni a server gépre.
No, következő feladat: a virtuális világból kiköltöztetni a gépet a valósba. Mi is kell ehhez? Mondjuk beteszem a cél vinyót egy külső házba, csatolom USB-n (nehogy már szét kelljen szedni a házat, és betegyem a vinyót, középiskolában is azt mondta a matektanár, hogy a jó matekos lusta :-), arra kimásolom a rendszert dd-vel, és kész. Első probléma: USB támogatás az bizony nincs, mivel ose verziót telepítettem. OK, akkor ose purgálva, SUN verziója fel, mennek a virtuális gépek, de az USB nem?! Mit is kell Jaunty alatt csinálni? Ja, hogy fel kell venni magam a vboxuser-ek közé, ok akkor sudo usermod -G vboxusers -a $USER, ez egyszerű. Csak sajnos még nem megy tőle az USB... További gugli, ja hogy valami vGid is kell, persze hozzáadom az fstabhoz a tutorialban megadott sort, restart, még mindig semmi. 5 perc fejtörés után eszembe jutott, hogy legutóbb is ez szivatott meg, mert a vGid az user függő, először le kell kérdezni a számot... óóó, te gyépés...
OK, fstab módosítva, USB megy. Csatolom a külső vinyót, látszik, halleluja! Mondom neki, hogy dd if=/dev/sda of=/dev/sdb, aztán otthagytam, hadd dolgozzon. Kb. 2 óra múlva tértem vissza, még mindig pörgött a proci, vártam még egy fél órát (közben párom persze aludt volna, ami a magas frekvenciás venti sivítás miatt nem ment neki, azt inkább nem írom le, hogy mit kaptam emiatt), szal kénytelen voltam megszakítani, újabb 24 óra pihi.
Nem tudom mit rontottam el, de ezek szerint a dd nem igazán azt csinálta, amit szerettem volna tőle. Másnap a ddrescue-t próbáltam, sudo apt-get install ddrescue, utána ddrescue /dev/sda /dev/sdb. Hmm, ez nem megy, nem talál ilyen parancsot. További olvasgatás kiderítette, hogy a ddrescue a gddresue csomag része, ezt feltelepítve már működött fenti parancs. SIKERÜLT!!!!!!
Konklúzió:
- a gép mindig azt csinálja, amit mondanak neki, a legtöbbször a hiba az emberben keresendő
- az kitartás általában meghozza gyümölcsét (főleg, ha közben gondolkodik is az ember fia)
P.S.: a szerver gép nem hozta a tőle elvártakat, mivel headless módban szerettem volna használni, csak a routeren lestem, hogy kapott-e IP-t. Nem, így kénytelen voltam monitorra csatlakoztatni, és hibakeresésbe kezdeni - elsőre egy hibás hálókábelre derült fény, aztán a hálókártyáról is kiderült, hogy nem muzsikál. Pár nappal később pedig, mire beszereztem a hiányzó alkatrészeket, már a kép sem jelent meg a monitoron, úgyhogy a cuccot bevágtam a sarokba és ott marad, amíg ... amíg újra rám nem jön megint a hoppáré, hogy én otthoni szerver gépet akarok magamnak, de zéró költségen :-)