Lassan belefoghatunk a tényleges telepítésbe, előtte már csak néhány beállítani való maradt. A mirrorselect nevű programmal például a preferált tükörszervereket választhatjuk ki, és írathatjuk bele a make.conf-ba. Ezzel egy egyszerű menüs felületen választhatjuk ki a nekünk megfelelőket, a program kimenete pedig azok a sorok lesznek, amiket a fájlba kell írni, ezt egyből bele is irányítjuk. Ez fogja meghatározni, hogy amikor az emerge paranccsal (ez kb megfelel az apt-get-nek debian alapú, és az urpmi-nek red hat alapú disztróknál) telepíteni akarunk egy csomagot, akkor azt melyik szerverről töltse le. Ajánlott több szervert is kijelölni, hogy elosszuk a terhelést köztük.
$ mirrorselect -i -o >> etc/make.conf
(figyeljünk a dupla kacsacsőrre, mert ha csak egyet írunk, felülcsapjuk az előbb beírt változtatásokat.Hogy biztosítsuk, hogy az internetelérés biztosan működjön a chroot-olt környezetbe lépésünk után is, az eddig eltárolt névszerverek címeit átmentjük a saját rendszerünkbe.
$ cp -L /etc/resolv.conf etc/
Majd a proc és a dev fájlrendszereket mountoljuk át a saját rendszerünkbe.
$ mount -t proc none proc/
$ mount --rbind /dev dev/
Végre elérkezett a pillanat, hogy chrootoljunk a saját rendszerünkbe, amit három lépésben hajtunk végre. Először a gyökér jegyzéket átrakjuk a /mnt/gentoo-ba. Aztán létrehozatjuk a környezeti változókat, majd az új környezetet betöltjük a memóriába. A parancsok közül az utolsó opcionális, ezzel a prompt kinézetét változtatjuk meg, hogy ne felejtsük el, hogy chroot-olt környezetben vagyunk.
$ chroom /mnt/gentoo /bin/bash
$ env-update
$ source /etc/profile
$ export PS1="(chroot) $PS1"
Végre otthon érezhetjük magunkat. A berendezés viszont még elég szegényes, szóval még nincs itt az ideje hátradőlni. Először a portage-et szinkronizáljuk, vagyis frissítjük a csomaginformációkat.
$ emerge --sync
Hoppá, a sync végén a portage tájékoztatott, hogy olvasnivaló hírek vannak, ezeket érdemes mindig megnézni, én sem teszek másként.
$ eselect news list
(két hírt listáz ki)$ eselect news read 1
$ eselect news read 2
A kézikönyv szerint érdemes még beállítani a lokálokat, úgyhogy tegyük meg ezt is. Ehhez az /etc/locale.gen fájlt kell módosítani, aztán lefuttatni a locale-gen scriptet.
$ nano -w /etc/locale.gen
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
hu_HU ISO-8859-2
hu_HU.UTF-8 UTF-8
$ locale-gen
Kernel konfiguráció
A kernel fordítás előtt még egy apró tennivalónk maradt: a timezone beállítása.
$ cp /usr/share/zoneinfo/Europe/Budapest /etc/localtime
Most már tényleg minden készen áll a kernel "fogadására". A gentoo csomagok formájában rendelkezésre bocsátja a kernel forráskódját, de emlékeztem, hogy régebben nem volt így. Mindenesetre itt a parancs, amivel a repóból szedhetjük le.
$ emerge gentoo-sources
Ez a 2.6.39-es kernelt szedte le, nekem viszont a 3.0.1-re fáj a fogam. Úgyhogy úgy döntök, inkább leszedem kézzel. Links-el felgyaloglok a www.kernel.org-ra, és letöltöm a legutóbbi stabil kernel forrást. Ezután bemegyek a /usr/src jegyzékbe, ide kibontom, és a szimbolikus linket is átirányítom rá.
$ cd /usr/src
$ mv /linux-3.0.1.tar.bz2 .
$ tar xvjpf linux-3.0.1.tar.bz2
$ rm -f linux-3.0.1.tar.bz2
$ rm linux
$ ln -s linux-3.0.1/ linux
A kernel beállítását végezhetnénk a genkernel nevű alkalmazással is, amivel állítólag könnyebb, de én mindig a manuális megoldást szoktam választani, ez sem nehéz. Egy egyszerű menüs környezetet fogunk használni a komponensek kiválasztásához.
$ cd linux/
$ make menuconfig
Hogy miket érdemes kiválasztani, vagy kihagyni, arra nem tudnék általános szabályt mondani. Először is, érdemes pontosan ismerni a hardvert amin dolgozunk, ebben segítségünkre lehet az lspci program (a pciutils csomagban van). Amikre érdemes figyelni:
- válasszuk ki a saját processzorunkat (ebben segít a cat /proc/cpuinfo parancs)
- fordítsuk bele az összes fájlrendszert, amit használunk a rendszeren, persze ne modulként, és a /proc fájlrendszert is
- az USB támogatásról se feledkezzünk meg
$ make
$ make modules_install
Készen áll a kernelünk. Nem kell aggódni, a kernelt bármikor újra lehet forgatni a fenti módon, ha valamit kifelejtettünk belőle. Velem például előfordult, hogy ext2-re formáztam a boot partíciót, a kernelbe viszont nem fordítottam bele a támogatását. A rendszer persze nem boot-olt be, ami elég kellemetlen tud lenni, de egyszerűen meg lehetett oldani: csak el kellett indítani a rendszert a minimal cd-ről, felmountolni a megfelelő partíciót, újrafordítani a kernelt a megfelelő beállítással, és már ment is.
A lefordított kernel most bzImage néven csücsül a lemezen. Ezt bemásoljuk a boot jegyzékbe. Jól meg kell jegyezni, hogy mi lett a neve a fájlnak, mert ezt kell majd beírni a grub konfigurálásánál is.
$ cp arch/i386/boot/bzImage /boot/kernel-3.0.1
Rendszer konfigurációEnnyi izgalom után gondolom számotokra is felüdülés lesz néhány konfigurációs fájlt megírni. Elsőnek például vegyük az fstab-ot. Ez a fájl mondja meg a rendszer számára, hogy mely partíciókat hova mountolja fel a rendszer bootolása során, és milyen módon. Nem egy bonyolult konstrukció, mondhatni self explainatory :). A rendszer csak egy példa fájlt ad, nekünk kell megírni a sajátunkat minden esetben. Először nézzük, hogy nekem hogy néz ki, aztán magyarázok.
$ nano -w /etc/fstab
/dev/sda1 /boot ext3 noauto,noatime 1 2
/dev/sda3 / ext3 noatime 0 1
/dev/sda2 none swap sw 0 0/dev/cdrom /mnt/cdrom auto noauto,user 0 0
proc /proc proc defaults 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0Mint látható, a fájl 6 oszlopból áll. Az elsőben mountolandó eszközt adjuk meg, a másodikban a céljegyzéket, a harmadik a fájlrendszer típusa, a negyedikben opciókat adhatunk meg a mount parancsnak (ezekről a mount manual-jában - man mount - lehet tájékozódni), az ötödik a dump paramétere (nem volt kedvem utána nézni), a hatodik pedig az fsck-nak (file system check) mondja meg, hogy milyen sorrendben ellenőrizze a partíciókat. Figyeljünk oda, hogy a negyedik oszlopban az opciók közötti vessző mellett nincs helyköz... ne is legyen, hisz akkor az utána lévő szöveget már a következő oszlopnak értelmezi, és nem szeretnénk, ha az fstab fájlunkban hiba lenne, higgyétek el.
Térjünk rá a hálózati beállításokra. Először a hostnevet állítjuk be, ami rém egyszerű: a hostname file-ban kell átírni egy változót. Mindenféle domain nevekkel most nem bohóckodunk ha nem haragszotok, nekem semmi szükségem rá egyelőre.
$ nano -w /etc/conf.d/hostname
hostname="hosztnev_vagy_amit_akartok"
Most a netet fogjuk beállítani, ami az én esetemben nem lesz túl bonyolult feladat, hisz még mindig csak dhcp-t akarok használni, a munka oroszlánrészét a routerre hagyom. Ha esetleg zavarna egyeseket a tény, hogy egyszer már beállítottuk a netkapcsolatot a telepítés elején, vegyük észre, hogy akkor csak a telepítő rendszer számára állítottunk, most viszont a már telepített rendszernek kell, amit használni fogunk a gépen. Nos, a dhcp beállítása annyiból áll, hogy a net nevezetű config fájlban megadom a dhcp-t a hálókártyám interfészének.
$ nano -w /etc/conf.d/net
config_eth0="dhcp"
Ezután teszünk róla, hogy a hálózat minden indításkor elinduljon. A gentoo nem csak az init futási szintjeit ismeri (tudjátok, pl az init 0 a kikapcsolt állapot), hanem bevezet saját, nevesített futási szinteket, amihez szolgáltatásokat adhatunk hozzá, amik elindulnak, ha az adott futási szinten vagyunk. Ezek a parancsok a hálózati szolgáltatást adják hozzá a default futási szinthez.
$ cd /etc/init.d
$ ln -s net.lo net.eth0
$ rc-update add net.eth0 default
Még most telepítem a dhcp klienst is.
$ emerge dhcpcd
Már csak néhány alap beállítás van hátra. Megadom a root jelszót, átírom az alapértelmezett billentyűzetkiosztást magyarra (a konzolban a loadkeys paranccsal lehet ezt on-the-fly váltani), és beállítom a hardveres órát is.
$ passwd
$ nano /etc/conf.d/keymaps
keymap="hu"
$ nano /etc/conf.d/hwclock
clock="local"
timezone="Budapest"Bootloader konfigurálása
Legelőször telepítjük a használni kívánt bootloadert, ami az én esetemben a grub.
$ emerge grub
Amíg települ (úgyis fel kell raknia pár függőséget), egy kis magyarázatot adok a grub-féle jelöléshez. Amikor a grub boot loadert konfiguráljuk, a partíciókra sajátos (de logikus) módon hivatkozunk. Például az első winchester első partíciója így néz ki: (hd0,0). Az első szám a vinyó sorszáma (ha esetleg több is lenne a gépben), a második a partícióé, mindkettő számozása 0-val kezdődik. Így pl ha én a debian rendszerem akarom majd bootolni, ami az sda4-en van, arra (hd0,3)-al tudok hivatkozni.
Akár hiszitek, akár nem, pont mire ezt leírtam, befejeződött a grub telepítése. Ugorjunk is bele a grub.conf-ba. Ebben alapvetően azt a listát írjuk le, amit látni szeretnénk a gép elindításakor. Az alapértelmezetten kiválasztott elem és a várakozási idő beállítása után egyenként megadjuk a menüelemek címét, a bootolandó partíciót, és a betöltendő kernelt. Mint látjátok, már a debian rendszeremet is hozzáadtam a listához.
default 0
timeout 30
title Gentoo Linux (deepconsole)
root (hd0,0)
kernel /boot/kernel-3.0.1 root=/dev/sda1
title Gentoo Linux (rescue)
root (hd0,0)
kernel /boot/kernel-3.0.1 root=/dev/sda1 init=/bin/bb
title Debian Linux
root (hd0,3)
kernel /boot/vmlinuz-2.6.32-5-686 root=/dev/sda4 ro quiet
initrd /boot/initrd.img-2.6.32-5-686
title Debian Linux (rescue)
root (hd0,3)
kernel /boot/vmlinuz-2.6.32-5-686 root=/dev/sda4 ro single
initrd /boot/initrd.img-2.6.32-5-686
Régebben előfordult velem, hogy a minimal rendszer a vinyómat hda-nak nevezte, és én ennek megfelelően töltöttem ki az fstab-ot és a grub.conf-ot is. A kellemetlen az volt, hogy amikor már a saját rendszerem töltődött be, már sda-ként volt ismert (pontosabban nem ismert), így nem tudott bootolni a rendszer (persze könnyen javítható a hiba). Szóval az ilyesmikre ügyeljetek.
A következő dolgunk, hogy a bootloaderünket beleírjuk az MBR-be (master boot record). Ezt könnyedén megtehetjük a grub-install futtatásával, ám előtte még tudatni kell a grubbal a jelenlegi mount sémát.
$ grep -v rootfs /proc/mounts > /etc/mtab
$ grub-install --no-floppy /dev/sda
Elérkezett a várva várt pillanat: újraindítjuk a rendszert, és imádkozunk mindenhez, ami szent. Persze előtte kilépünk a chroot-ból és umountolunk mindent.
$ exit
$ cd /
$ umount -l /mnt/gentoo/dev{/shm,/pts,}
$ umount -l /mnt/gentoo{/boot,/proc,}
$ reboot
Ne felejtsük el kivenni a cd-t, mielőtt újra az bootolna be.
A szüzesség elvesztése: az első kernel pánik
Legelőször is kipróbálom a boot menü összes pontját. Imáink, úgy látszik, nem kerültek meghallgatásra: bármelyik gentoo-t is választom, bepánikol a kernel. A debian-nal sincs minden rendben, elkövettem egy gépelési hibát a grub.conf-ban, így a sima rendszer nem indul el, de a rescue igen. Így most azt töltöm be, és először kijavítom az elgépelést (ezt a procedúrát azt is megteheti, akinek nincs másik rendszere a gépén, a minimal cd betöltésével), ami meg is oldja a problémát, legalább a régi rendszerem működik. Ezután próbálok rájönni, miért is történik kernel panic.
Kernel panic: no syncing: no init found
No, ti rájöttök a hibára? Nekem google barátom segített: a grub.conf-ban a root-nak azt a partíciót kell megadni, ami a gyökérre van mountolva (sda3), nem pedig ami a /boot-ra. Elég láma hiba, beismerem, dehát így tanul az ember. Nem ez az első kernel pánikom, és nem is az utolsó. Gyorsan kijavítom a fájlt a debian rescue módjában, aztán be is töltöm az új rendszert.
Utolsó simítások
Bejelentkezek root felhasználónévvel és a jelszavammal. Persze nem lehet a rendszert állandóan root-ként használni (ne tegyünk már úgy, mintha windows-t használnánk), úgyhogy hozzunk létre egy új felhasználót. Ez rendkívül egyszerűen megtehető a useradd script segítségével. A kapcsolók közül egyedül a -G szorul magyarázatra, ezzel adhatjuk meg, hogy mely csoportokba fog tartozni az adott user. Ettől függ, hogy mikhez lesz joga majdan. A létező csoportokat a groups paranccsal kérhetjük le, de ezekhez később újak is létrejöhetnek, ahogy egyre több programot telepítünk a rendszerre. Utána beállítjuk az új user jelszavát, és pik pak készen is vagyunk a rendszer telepítésével :).
$ useradd -m -G wheel,disk,video -s /bin/bash tobal
$ passwd tobalNos, hát ennyi lenne egy nagyon alap gentoo rendszer telepítése. Ezzel egy csak konzolon használható rendszert kaptunk, innen viszont a határ a csillagos ég, olyan rendszert rakunk össze magunknak, amilyet csak akarunk. A blog további részében ezt követhetitek figyelemmel.
Haladok veled, johet a tobbi ;)
VálaszTörlésNe baz má, gentoo-t telepítesz te is? :D Bocs amúgy, miután a telepítést megírtam, kis időre elment tőle a kedvem, majd folytatom ha visszajön :D
VálaszTörléshajra ;)
VálaszTörlés