16 839
Tesztek Android Google Apple Microsoft Samsung Huawei Linux Okostelefon Biztonság Tudomány Facebook Videojáték Film

Gentoo telepítés

2011.08.18. 10.40

Régóta próbálok összehozni egy jól működő, mindenre jól használható (mondhatni tökéletes) gentoo rendszert, több kevesebb sikerrel. Persze többször újra is telepítettem. A legutóbbi próbálkozás már egészen jó volt, de aztán amikor az Unicode-ot akartam működésre bírni mélykonzolban, és a config file-ok merge-ölésénél hanyag voltam, teljesen behalt az egész, úgyhogy úgy döntöttem, hogy nekifutok még egyszer. Ez alkalommal azonban mindent dokumentálni akarok, ennek az eredménye ez a cikk is.


A most következő írás a saját Gentoo rendszerem telepítését követi végig. Ez nem egy teljes értékű leírás, hisz csak azokat a mozzanatokat írom le, amik nekem kellettek az én rendszerem esetében. Inkább a kezdőbbeknek ajánlom, hisz én magam is az vagyok. Az installálást mindig a Gentoo Handbook alapján szoktam csinálni, szóval ha teljes értékű leírás kell, ott van (itt megtaláljátok magyarul is de az angolt ajánlom, az biztosan a legfrissebb).


Boot


Az első dolgunk, hogy a Gentoo minimal CD-t letöltsük, és kiírjuk. Nem fog sok időt igénybe venni, tényleg minimál. Berakjuk a gépbe, és bootolunk róla... megjelenik az első kérdés: milyen kernelt akarunk bootolni? F1 megnyomásával listázza a betölthető kerneleket (ezek közül a gentoo-nofb a framebuffer kikapcsolását eredményezi, ekkor a rendszer csak karakteres módban használja a kijelzőt (ezt hívom én "mélykonzol"-nak), a memtest86-al pedig memória ellenőrzést végezhetünk), az F3-F7 billentyűkkel pedig a kernelnek átadható paramétereket listázhatjuk. A rendszer egyébként végig ad segítséget, az opciókhoz is van magyarázat, úgyhogy nem térnék ki rájuk részletesen. Pl. ha PCMCIA támogatást akarunk installálás közben, a következő a parancs:

$ gentoo dopcmcia

Ha nem akarunk semmi extrát beállítani, csak nyomjunk enter-t, és az alap gentoo kernel fog betölteni. Ekkor, ha nem angol kiosztást akarunk használni, érdemes résen lenni, és amikor felajánlja boot közben, nyomni egy 18-ast, ugyanis ezzel adhatjuk meg a rendszernek, hogy magyar billentyűzetünk van, de a válaszadásra nem hagy túl sok időt (hozzáteszem, én magyart választottam itt, mégis angol lett a kiosztás, pedig ez régebbi CD-kkel működött, no mind1).

Kisvártatva megjelenik a konzol prompt, hozzákezdhetünk a telepítéshez (igen, mindent kézzel fogunk csinálni). Már az elején megjegyzem, hogyha esetleg úgy telepítitek, hogy nincs a közelben másik gép, amiről nézhetitek a gentoo handbook-ot, akkor érdemes Alt-F2-t nyomni (vagyis átváltani egy másik terminálra), és indítani egy böngészőt, mondjuk a links-et (-g opcióval, ha képeket is szeretnénk látni, persze csak ha framebufferelt a konzolunk) ott pedig felmenni a gentoo.org-ra. Innen olvashatjuk a handbook-ot, miközben telepítünk, Alt-F1-F2-vel váltogathatunk a terminálok között (ha esetleg több terminál kell, egészen F6-ig mehetünk). Ha nem sikerül behozni az oldalt, akkor a rendszer nem tudta automatikusan felkonfigolni a hálókártyát, úgyhogy azt a handbook segítsége nélkül kell megtennünk.

<--PAGEBREAK-->

Hálózat konfigurálás


Akkor első körben próbáljuk is meg bekonfigolni a netet. Nekem ezt nem tette meg alapból, szóval lesz vele egy kis meló. A wireless-t nem akarom egyelőre belőni, azzal majd később szívok. Azt, hogy megy-e a net, a ping paranccsal nézhetjük meg (persze azért nem árt, ha a netkábel is be van dugva :) ).

$ ping -c 3 www.gentoo.org
(a -c kapcsolóval a ping csomagok számát adhatjuk meg)

Nekem erre unknown host-al válaszol. Az ifconfig parancs, ami a hálózati interfészeket listázza ki, nekem csak az lo-t mutatja, vagyis a loopback device-t, amivel önmagunknak üzenhetünk. Először megpróbálom egy segéd script-el belőni a netet, hátha sikerül (nem mindig szokott).

$ net-setup eth0
(az eth0 a ethernet interfészem, amibe a kábel be van dugva)

A script először rákérdez, hogy valóban az eth0-s interfészt akarom-e konfigolni (hát már hogy a fenébe ne azt akarnám?). Kiválasztom, hogy vezetékes, és DHCP-n akarom kapni az IP-t (routerre csatlakozik a gép), A script lefut, és az ifconfig immár valóban listázza az eth0-t is, IP címe viszont még nincs, így hiába próbálnánk még ping-pongozni. Ehhez a dhcpcd nevű kis programocska lesz a segítségünkre, ami lekéri az IP-t a routeren működő DHCP szervertől.

$ dhcpcd eth0

Most lekérve az ifconfigot, már van IP címünk, örvendezhetünk. Ha neked nincs, akkor nézz rá a handbook-ra, ott leírja mi ilyenkor a teendő (az ifconfig és a route parancsok segítségével kézzel is be lehet állítani a hálózatot, de én most nem tökölök vele, mert nem muszáj). A pingelésre immáron kapunk választ, mehetünk tovább.

<--PAGEBREAK-->

Meghajtók beállítása


A meghajtókat illetően egyedi helyzetben vagyok, hisz már volt ezen a gépen gentoo, már fel van particionálva a vinyó úgy, ahogy szeretném. Igaz, idő közben felkerült egy debian is, ami elfoglal egy partíciót, így jelenleg úgy állok, hogy:
- sda1 - 64 megás boot partíció
- sda2 - 1 gigás swap
- sda3 - nagyobbacska partíció a rootnak (régen ez a home-nak volt fenntartva)
- sda4 - ezen csücsül a debian.
Mind a négy partíció elsődleges (vagyis nem logikai). A debian és a gentoo ugyanazt a partíciót fogják használni swap-ként. Valószínűleg nem lesz mindenkinek ilyen szépen felporciózva a lemez, ők az fdisk nevű programot tudják használni.

$ fdisk /dev/sda

Lehet, hogy a te eszközödet nem sda-nak hívják, hanem hda-nak, vagy hdb-nek, ez attól függ mennyi meghajtó van a gépben. Ha meg akarod nézni, mik a lehetőségek, listáztasd ki a /dev/ jegyzéket.

$ ls /dev/

Az fdisket egyszerűen betűk lenyomásával kezelhetjük. 'M' ad egy helpet, ezt érdemes sűrűn nyomkodni. 'P'-vel kilistáztatom a mostani partíciós táblát, amin látni, hogy jelenleg csak az sda4 van beállítva, mint bootolandó partíció (a debian beállította magának, a kis önző), úgyhogy első dolgom, hogy kijavítom ezt a csorbát.

Command (m for help): a
Partition number (1-4): 1


Mostmár a listában az sda1 mellett is van csillag a boot oszlopban. Új partíciót nem kell most létrehoznom, de nem ördöngősség, az 'N'-el hozhatunk létre újat, rákérdez hogy elsődleges legyen, vagy logikai (csak elsődleges lehet bootolhatú, ilyenből viszont csak 4 lehet maximum egy wincheszteren), rákérdez, hogy hanyadik partíció legyen, és hogy mekkora legyen a mérete. Ezután ne felejtsük beállítani a partíció azonosítóját sem (T). A minket érdeklő azonosítók a 82 (linux swap) és a 83 (linux).
Mielőtt kilépünk, ne felejtsük a változtatásomat elmenteni, vagyis kiírni a partíciós táblába a 'W'-vel, vagy ha valamit elszúrtunk, bármikor kiléphetünk a 'Q'-val, ilyenkor mentés nélkül lép ki.

A partíciók megvannak, ideje fájlrendszert varázsolni rájuk. Én ext3-at fogok használni mindkét normál partíción, ehhez a parancsok:

$ mke2fs -j /dev/sda1
$ mke2fs -j /dev/sda3

(a -j a journaling kapcsolója, az ext3 ugyanis az ext2 fájlrendszer journaling-al (naplózás) dolgozó változata, ha ext2-t akarunk használni, akkor el kell hagyni a -j-t).

A második partícióval csöppet tovább dolgozik. Megjegyzendő, hogy ezzel gyakorlatilag elvesznek az eddig rajtuk tárolt adatok. Elméletileg nem, ugyanis a blokkokat nem írja felül, amiken eddig a fájlok ültek, szóval vissza lehetne még nyerni, de a fájlrendszer újra lett írva, az pedig nem tud további fájlokról a partíción, így azok üresnek jelennek meg.

Ezek után a swap partíciót kell aktiválni, ehhez elég két egyszerű parancsot kiadni. Az én esetemben elég a második parancs, ugyanis az sda2 már eleve swap-ként funkcionál, erről a debian (is) gondoskodott.

$ mkswap /dev/sda2
$ swapon /dev/sda2


Nem maradt más hátra, mint felmountolni (felcsatolni) a partíciókat, hogy dolgozhassunk velük. Az install során a /mnt/gentoo jegyzék lesz az ún. chroot-olt jegyzékünk, ebben fogunk dolgozni, mintha az lenne a gyökér. Ezért az sda3-at (amit gyökérnek szántam) ide mountolom. Az sda1-et pedig ezen belül egy boot jegyzékbe.

$ mount /dev/sda3 /mnt/gentoo
$ mkdir /mnt/gentoo/boot
$ mount /dev/sda1 /mnt/gentoo/boot

<--PAGEBREAK-->

Install fájlok telepítése


Most a pontos UTC szerinti időt kellene beállítani, de nekem a date parancs eleve ezt mutatja, szóval nem kell vele foglalkoznom (az más kérdés, hogy ez nem egyezik meg a helyi idővel, az időzóna beállításával később foglalkozok).

Ezután letöltjük a telepítendő fájlok tar-al összecsomagolt csomagját a Zinternetről. A stage3 tarball ami kell nekünk, méghozzá i686-os architektúrához. Előtte a megfelelő jegyzékbe navigálunk.

$ cd /mnt/gentoo
$ links http://www.gentoo.org/main/en/mirrors.xml


A betöltődő oldalon kiválasztom a hozzám legközelebbi tükörszervert (Eötvös Lóránt... egyébként a szőröstalpúaknak miért van több mirrorja, mint nekünk?). Itt a releases/x86/autobuilds/current-stage3 jegyzékből kiválasztom a nekem megfelelőt fájlokat, D-vel le is tölti. Ha nem vagyunk biztosak a netkapcsolatunkban, az alábbi paranccsal le tudjuk ellenőrizni, hogy jól töltődött-e le.

$ md5sum -c stage3-i686-.tar.bz2.DIGESTS

Ezután már csak ki kell csomagolni a fájlt, ez el fog tartani egy kicsit. Utána le is törlöm a fájlokat, nincs már rájuk szükség.

$ tar xvjpf stage3-i686-.tar.bz2
$ rm -f stage3-i686-.tar.bz2*


Most, hogy az alap rendszer fájljaival megvagyunk, nekiláthatunk a portage, a gentoo csomagkezelő programjának telepítéséhez. Ehhez újra meg kell látogatnunk a mirror-t, ahonnan a snapshots jegyzékből töltöm le a portage legfrissebb verzióját (portage-latest.tar.bz2). Persze ennek az md5 checksumját is le lehet csekkolni, majd ki kell csomagolni a usr jegyzékbe.

$ tar xvjf portage-latest.tar.bz2 -C usr/

A portage alapértelmezés szerint a telepítendő csomagokat forrásból telepíti, vagyis le is fordítja. A fordítás beállításait (pl. a GCC és G++ kapcsolóit) adhatjuk meg a /etc/make.conf fájlban. Még egy nagyon fontos beállítás foglal itt helyet: a USE flagek. A USE flageket a portage annak az eldöntésére használja, hogy egy-egy program telepítésénél milyen opcionális komponenseket fordítson bele a programba. Például ha a mutt levelezőklienst úgy telepítjük, hogy az imap USE flag nincs beállítva, akkor a mutt nem fog tudni IMAP protokollt használni. Magyarán a USE flagekkel azt állíthatjuk be már a rendszer életének korai szakaszában, hogy milyen komponenseket akarunk majd használni. Én anno összeírtam a USE flagjeimet, így most ezt fogom egy az egyben beírni az új rendszernek is, de akit érdekelnek a használható USE flagek, itt utánaolvashat.
Tehát megnyitjuk írásra a make.conf-ot, majd beleírjuk a változtatásainkat.

$ nano -w /etc/make.conf

A fordító kapcsolói és a USE flagek nálam így néznek ki a make.conf-ban. A MAKEOPTS-al azt állíthatjuk be, hogy hány szálon történhet a fordítás, ez az okosok szerint a gépben lévő processzor(mag)ok száma +1, én nem vitázom velük.

CFLAGS="-O2 -march=i686 -pipe -mmmx -msse -msse2 -ggdb"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
USE="gtk gnome -qt4 -kde dvd alsa cdr static-libs X crypt fbcon ssl openssl jpeg png tiff gif midi aalib bash-completion bzip2 gzip cgi cscope curl curlwrappers cxx -debug dga djvu -doc dri dv extra emacs enscript examples exif ffmpeg firefox flac ftp gcj geoip libggi gimp glut gnuplot gnutls gpm hardened hddtemp imap ipv6 java javascript latex libcaca lua lm-sensors matroska matrox maildir mime modules mmx mmap mp3 mp4 mpeg gd readline mplayer msn mule mysql mysqli ncurses networkmanager nptl nls ncplugin ogg opengl openal pcmcia pcntl pda pdf perl php posix prelude python raw rdesktop rss sdl session snmp sockets sound sqlite sse sse2 svg svga sysvipc tcpd threads udev unicode usb vim-syntax vnc vorbis wifi win32codecs -xemacs xft xml xvid truetype fontconfig kpathsea jadetex"

<--PAGEBREAK-->

Alap rendszer telepítése


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

<--PAGEBREAK-->

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

Szerintem érdemes végigszaladni az egész listán, és kiszedni, amiről tudjuk, hogy sosem fogjuk használni, és belerakni azt, amit igen (de amiben nem vagyunk biztosak, azt inkább ne bolygassuk). Én belefordítom az ipw2200 drivert is modulként, ez a wifimhez fog kelleni. Ha végeztünk, lépjünk ki, és mentsük el a változtatásokat. Most már csak maga a fordítás maradt hátra.

$ 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

<--PAGEBREAK-->

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 0

Mint 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"

<--PAGEBREAK-->

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.

<--PAGEBREAK-->

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 tobal


Nos, 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.

Kattints ide  ➜

Az Androbit technológiai és tudományos magazinnál hiszünk abban, hogy az információ mindenkit megillet. Hosszú évek munkájával megszerzett hírnevünknek köszönhetően megadatott számunkra az a lehetőség, hogy műszaki témájú médiumként is elérhessünk minden internetező korosztályt. Tesszük ezt olyan hírekkel és cikkekkel, amik között egyaránt szerepel nagyobb tömegeket és kisebb szakmai csoportokat érintő tartalom is.

A témák gondos összeválogatásának és a cikkek minőségi kidolgozottságának hála mára Magyarország egyik legnépszerűbb technológiai és tudományos információforrásává váltunk – fejlesztéseinkkel és kutatásainkkal pedig igyekszünk mindig egy lépéssel a versenytársak előtt járni.

A weboldalunkon található, szerkesztőségünk által készített tartalmakra vonatkozó összes felhasználási jogot az Androbit technológiai és tudományos magazin birtokolja. A tartalmak egyes részleteinek felhasználását kizárólag látványos (vagy jól hallható) forrásmegjelöléssel engedélyezzük. A feltételek megszegésének jogi következményei lehetnek. A feltételektől eltérő tartalomfelhasználás kizárólag megegyezés útján lehetséges.
Copyright © 2007-2016 – Makay József (makay@androbit.net)
A Honor 7 nem kapja meg az Android 7.0 Nougat frissítést
Az Android 7.0 Nougat lesz az UMi karácsonyi ajándéka
Android 1.0 Apple Pie vs. Android 7.1 Nougat
Brutális részletesség: Teljes felbontású képek a Light 16 szenzoros kamerájából
2017‑re teljesen zöld energiára áll át a Google
Régóta várt funkciók debütálnak az új Instagramban
Felkapott témák
Az egyik legnépszerűbb antivírus egyben a legrosszabb is
Ezek a jelenleg kapható legerősebb okostelefonok
2016 legjobb okostelefonjai - Sebességteszt
Sokan fognak kiakadni a Samsung Galaxy S8-ra
Android 1.0 Apple Pie vs. Android 7.1 Nougat
Melyik lesz 2017 legjobb okostelefonja?
Állásajánlatok
Testkoordinator/ Testanalyst Szeged
Business Analyst / Solution Designer with Java background Telekom IT TSI Budapest
IT Szolgáltatás felelős mérnök - IT Infrastruktúra, Rendszermonitoring fejlesztő
Postpaid Integrated Voice Product Manager - BUD000044
Field service technikus gyakornok Budapest
Gyártástechnológia - tervezőmérnök – Gyártástechnológia - tervezés
Business Analyst Budapest