Gentoo alternatív telepítés gyorsan, minél kisebb rendszer rendelkezési idő kieséssel

Ebben a blogomban leírom egy módot arra, hogyan lehet gentoot telepíteni a lehető legrövidebb idő alatt úgy, hogy csak egyetlen számítógépünk van, tehát nem tudunk puskázni se checklistát olvasni, se manualt nézni, mert nem szeretnénk/nem tudjuk kinyomtatni. Továbbá azt is szem előtt tartom, hogy az előkészületek és konfigurációs fájlok készítésének idejére se essen ki a gép, tehát tudjuk használni a gépet internetezésre, lehet szó szórakozásról, de akár munkavégzésről is.

Munkavégzésen nem azt értem, hogy munkaidőben telepítsünk gentoot, hanem az olyan jellegű kötetlen munka, aminél maximum teljesítési határidők vannak, semmi más megkötés. Munkavégzésen nem a programozást értem, hanem dokumentálásokat. Pl pályázatírás, vagy akármilyen általános irodai tevékenység, ami nem igényel speciális programot, vagy ha igen, azt felhőből lehet futtatni.
 

Figyelem! Teljesen kezdő gentoo használók előtte tanulmányozzák az eredeti manual szerinti telepítést és értelmezzék. Ha sikerült megérteni, akkor érdemes az én módszeremet alkalmazni.

Ha a megszokott hagyományos gentoo manual szerinti telepítést nézzük, akkor az alapfelállás:

1 db admincd vagy pendrive

2 db pc (egy amire gentoot teszünk és egy amiről puskázunk)

A puska nem azért kell, mert nem tudjuk, de annyi lépés van, hogy nem egyszerű mindent fejben tartani.

Profik is alkalmaznak legalább checklistet. Biztos vannak kivételek, kérem emiatt kíméljenek meg a beirogatástól.

 

Az én javasolt módszeremmel a gentoo manualjától három szempontból térünk el:

1. Nem adminlemezről bootolunk, hanem egy bármilyen live linux lemezről, ami nekünk szimpatikus és kényelmesen tudunk rajta live rendszer alatt is használni a gépünket.

2. A sorrendet variáljuk meg: végigmegyünk az összes konfigurációs fájl létrehozásán, amihez nem szükséges chrootolt rendszer, és amikor minden konfigurációs fájl készen van és a helyére került, akkor bootolunk be admincdről és befejezzük a konfigurációkat (időzóna, lokalizáció, portage profil kiválasztás), telepítjük az alap összetevőket: kernel-bin, valamelyik initramfs generátor (genkernel vagy dracut), a rendszerbetöltőt (pl. grub) és csinálunk a root felhasználónak jelszót, mert nem fogunk tudni bejelentkezni a telepített rendszerünkbe.

3. Kihagyunk olyan lépéseket, amit ráérünk akkor is elvégezni, amikor már saját lábakon áll a rendszerünk és kialakítottuk a saját munkakörnyezetünket.

Ilyenekre gondolok, mint frissítés mellőzése telepítés alatt, valamint saját kernel fordítása. Gentoo nyáron elérhetővé tette a készen letölthető kernelét (sys-kernel/gentoo-kernel-bin).

Tehát a lépések kicsit kibontva:

Az első két lépéshez kell egy másik gép, telepített oprendszerrel.

1. Live rendszer beszerzése, kiírása dvd-re vagy pendrive-ra.

2. Admin iso beszerzése, kiírása cd-re vagy pendrive-ra.

3. Live rendszerről bootolás.

4. Particionálás. Itt könnyítés pl. gparteddel elvégezni, így ki van zárva az a hiba, hogy elszámolás miatt el legyen cseszve a particiós tábla. Ilyen felhasználói hibákra gondolok, mint 40 MB, 40 GB helyett. Mellesleg gyorsabban is megy gparteddel. Ma már nem kell akkora kockának lenni, hogy ne parancssorból particionáljunk, ha nem muszáj. Ízlés szerint végezzük a particionálást. Ha GPT-t használunk kelleni fog egy fat32-es partíció az efinek. Ha swap particiót is akarunk swapfájl helyett, akkor legalább akkorát érdemes, mint a fizikai ramunk mérete. Ez a hibernálás miatt szempont. Ha nem szeretnénk hibernálni nem indokolt a csere partíció. Fontos, ha nincs a rendszer ssd mellett egy másik ssd vagy HDD, akkor a /home-ot is tegyük külön, hogy ne csapjuk felül véletlenül a mentendő txt dokumentációkat, mert a jegyzet jól jöhet. Amúgy is célszerű, mert anélkül lehet az operációs rendszert cserélni, hogy eltűnnének a fontos adataink. Hogy miért írom ezt? Sajnos bármikor előfordulhat egy kevésbé tapasztalt gentoossal, de akár a tapasztaltabbal is, hogy annyira elcsesz valamit, jobban megéri friss staggel minden felülírni és újraépíteni, mint ganajozni. Vagy csak azért, mert túl sokáig nem frissítjük, és egy idő után már több idő az upgrade, mint a teljes újratelepítés.

Példa:

sda1 /boot/efi fat32 128 MB

sda2 swap 16GB

sda3 / ext4 fennmaradó lemezkapacitás

sdb1 /home btrfs teljes lemez

A példában az sdb egy merevlemez és azért btrfs, mert az tud online töredezettségmentesítést, ami nem hátrány.

 

Felcsatoljuk a leendő gentoo gyökérkönyvtárat mondjuk az /mnt/gentoo alá. Előtte a gentoo könyvtárat hozzuk létre!

mount /devsda3 /mnt/gentoo

cd /mnt/gentoo

 

5. Ebbe a könyvtárba letöltünk az elképzelt rendszerünkhöz legközelebb álló staget. Ez azért fontos, mert rengeted időd elpazarolunk a nem megfelelő stageról való építéssel. Ha hardened gentoo profilt szeretnénk, akkor hardened stage kell. Ha hardened+selinux, erre is van megfelelő. Van systemd-s stage is, de nem tudom érdemes-e gentoon ragaszkodni hozzá, pláne, hogy már nem igényli a gnome3 sem.

6. Ha biztosak vagyunk benne, hogy nem szakadozott a letöltés nem muszáj leellenőrizni az állomány épségét. De erre ez a megoldás: 

gpg --verify stage3-amd64-<release>.tar.?(bz2|xz){.DIGESTS.asc,} 

 

7. Kicsomagoljuk az állományt:  tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

8. Mivel grafikus live rendszeren vagyunk nem muszáj fapados konzolos szövegszerkesztőt használnunk, mint a nano, hanem kedvünkre egy elérhető szimpatikussal nyissuk meg. A példában én nano-t írok, de mindenki helyettesítse be.

 

nano -w /mnt/gentoo/etc/portage/make.conf

a w kapcsoló a fájl írható módban való megnyitásáért felelős.

 

Itt finomíthatjuk a fordító paramétereit a processzorunk típusához igazítva. https://wiki.gentoo.org/wiki/Safe_CFLAGS

Paraméterezzük fel a grafikus kiszolgálóhoz szükséges driverek lefordítására is a portaget (Gentoo Wiki xorg guide) a VIDEO_CARDS= és az INPUT_DEVICES=

sorokat vegyük fel és töltsük ki a hardvernek megfelelően.

 

A mirrorselectet átugorjuk, mert nem biztos, hogy a live rendszerünk ismeri, hacsak nem gentooalapó live disztrót futtatunk liveon. Ha igen, akkor meg lehet próbálni:

9. mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Érzésre választunk. Érdemes többet, ha valamelyik nem elérhető a portage megpróbál egy másik tükröt. A továbbiakban nem fogok minden egyes parancsot kommentelni, mert akkor nagyon hosszú lesz a blog és amúgy is felesleges, mivel le van írva a handbookba.

Csak az eltéréseket és az okát kommentelem.

 

10. mkdir --parents /mnt/gentoo/etc/portage/repos.conf

11. cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

12. echo "Europe/Budapest" > /mnt/gentoo/etc/timezone

13. nano -w /mnt/gentoo/etc/locale.gen és felvesszük az alábbi sorokat:

hu_HU ISO-8859-2

hn_HU.UTF-8 UTF-8

 

14. Csináljunk fstabot! Hogy ne kelljen annyit körmölnünk kiíratjuk a partíciók adatait és betoljuk az fstabba: lsblk | grep sda >> /mnt/gentoo/etc/fstab

Ez után kikommenteljük vagy eltávolítjuk a felesleget és kiegészítjük ízlés szerint

15. opcionális: nano -w /mnt/gentoo/etc/conf.d/hostname

16. ifconfiggal megnézzük a hálókártya elnevezését és az /mnt/gentoo/etc/conf.d/net-be beleírjuk: config_hálókártyaneve="dhcp"

17. opcionális: nano -w /mnt/gentoo/etc/hosts

18. nano -w /mnt/gentoo/etc/conf.d/keymaps

19. nano -w /mnt/gentoo/etc/conf.d/hwclock

 

20. A konfigfájlozással elkészültünk és most jön az a pont, hogy admincdvel kell bebootolnunk és chrootolással folytatjuk, de előtte, ha még nem tettük meg lementjük txtbe a checklistet vagy a manualt.

https://wiki.gentoo.org/wiki/Quick_Installation_Checklist

https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Stage

 

21. Bootolás admincdről.

 

22. Felmountoljuk az összes fájlrendszert:

1.) mount /dev/sda3 /mnt/gentoo

2.) mount /dev/sda1 /mnt/gentoo/boot/efi

3.) mount /dev/sdb1 /mnt/gentoo/home

4.) mkswap /dev/sda2

5.) swapon /dev/sda2

 

23. Felvesszük az admincd által megszerzett dnsinfót és átadjuk az építendő rendszerünknek. Enélkül chroot után nem fog működni a névfeloldás:

cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

 

24. Ha a live rendszeren nem csináltuk, akkor most kell beállítani a portagenek a tükröket:

 

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

 

25. Következik a chrootolás:

1.) mount --types proc /proc /mnt/gentoo/proc

2.) mount --rbind /sys /mnt/gentoo/sys

3.) mount --rbind /dev /mnt/gentoo/dev 

4.) chroot /mnt/gentoo /bin/bash 

5.) source /etc/profile 

6.) export PS1="(chroot) ${PS1}"

 

Na most van az a jelenet a Matrix 2-ben, amikor Trinity mondja a telefonban, hogy bent vagyok!

 

26. Portage felélesztés: 

emerge-webrsync

 

27. Érdemes elolvasni az újdonságokat a felesleges szopások elkerülése végett:

eselect news list 

eselect news read

 

28. Kiválasztjuk az elképzeléseinknek megfelelő profilt:

eselect profile list

eselect profile set választott profil száma

 

29. Időzóna beállítása (a konfigfájlt már létrehoztuk a grafikus live rendszerről)

emerge --config sys-libs/timezone-data

 

30. Lokalizáció (a konfigfájlt már létrehoztuk a grafikus live rendszerről):

locale-gen

 

31. Kilistázás után kiválasszuk a magyar loklizációt:

eselect locale list

eselect locale set szám

 

32. Hogy érvényesítsük a változásokat újra be kell tölteni az alábbi paranccsal:

env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

 

33. Telepítjük az alap létfontosságú összetevőket:

emerge --ask --noreplace net-misc/netifrc 

emerge --ask sys-kernel/gentoo-kernel-bin sys-kernel/genkernel app-admin/sysklogd 

 

A használt fájlrendszerek eszközeit is fel kell tenni:

Ext2, 3, and 4: sys-fs/e2fsprogs 

XFS: sys-fs/xfsprogs 

ReiserFS: sys-fs/reiserfsprogs 

JFS: sys-fs/jfsutils 

VFAT (FAT32, ...): sys-fs/dosfstools 

Btrfs: sys-fs/btrfs-progs 

ZFS: sys-fs/zfs

opcionálisan: emerge --ask net-misc/dhcpcd

 

34. Rendszerbetöltő telepítés. Grub és gpt esetén:

echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf

emerge --ask --update --newuse --verbose sys-boot/grub:2

 

Fontos! Bizonyos alaplapok biosa az efi fájlt csak a /efi/boot mappa alatt támogatja. Ebben az esetben a b opciót kell választani:

 

A. változat: grub-install --target=x86_64-efi --efi-directory=/boot/efi

B. változat: grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable

 

Ha rosszat választunk legfeljebb nem tud bebootolni a rendszerünk. Ilyenkor újra admin cdvel bootolunk és megismételjük a chroot folyamatot, majd a másik pontot választjuk.

Ez után létrehozzuk a grub konfigurációs fájlt: 

grub-mkconfig -o /boot/grub/grub.cfg

 

35. Szolgáltatások automatikus indításának beállítása:

rc-update add sysklogd default

cd /etc/init.d

ln -s net.lo net.hálókártyaneve

rc-update add net.hálókártyaneve default

 

36. Rendszergazda jelszó beállítása:

passwd

 

37. A chroot környezet elhagyása és reboot a telepített rendszerünkre:

exit

cd

umount -l /mnt/gentoo/dev{/shm,/pts,}

umount -R /mnt/gentoo

reboot

 

38. Ha mindent jól csináltunk, már bent vagyunk a saját épített rendszerünkben. Bejelentkezés után indulhat az alkalmazások telepítése:

egy hasznos alkalamazás telepítésével kezdjük:

emerge --ask app-misc/mc

és jöhet az X kiszolgáló, az asztali környezet és egy kedvenc display manager.

emerge --ask x11-base/xorg-server mate-base/mate mate-extra/caja-extensions x11-misc/lightdm

 

Miközben a fordítás történik nem tétlenkedünk! Na jő jöhet egy sör meg egy kis kv, cigiszünet. A kvra nagyon jó a sör, pláne este.

Szünet után átlépünk egy másik konzolra és belépés után létrehozunk egy általános felhasználói fiókot:

useradd -m -G users,wheel,audio -s /bin/bash jozsi

 

Majd beélesítjük a midnight-commanderünket és beállítjuk az alapértelmezett display managert:

mcedit /etc/conf.d/xdm

DISPLAYMANAGER="lightdm"

 

Beállítjuk, hogy automatán induljon az xorg. A lightdmhez kell a dbus is, enélkül nem fog elindulni:

rc-update add dbus default

rc-update add xdm default

 

Ha minden kész, reboot. Nem lenne muszáj, de le tudjuk tesztelni, hogy elindul-e úgy ahogy kell.

Ennyi! Egy ubuntu telepítés sem menne gyorsabban. :)

Hozzászólások

Ezer éve nem csinálok külön /home-ot. Minden megy egy partícióra, kivéve ha EFI is kell. A swap is swapfile inkább.

Sokszor váltok disztrót. Vagy letúrom az egészet, vagy ha nem, akkor viszont az új rendszer telepítésekor nem formázom, hanem a /home kivételével törlöm a fájlokat.

Windows telepítésnél is működött ezidáig. Csak a felhasználó könytárát hagyom meg, persze kitakarítva.

A /home -ot megértem. A swap partíció fájlra cserélése viszont szerintem rossz ötlet. Pont az az egyik előnye a Linux swap partíciójának, hogy garantáltan semmi töredezettség nem lassítja, illetve gyorsabb is valamivel ha közvetlenül swap partíción van.

SSD-vel persze majdnem mindegy is teljesítmény oldalról. Ott viszont a mai TLC ssd-ket elég rendesen wear levelingezi a swap. Ha van SSD mellett HDD is, akkor ezért érdemes odarakni a swapet. Lassabb ugyan, de 16GB ram mellett annyira nem vészes. Illetve szerintem 16GB rammal már opció a no swap is. 

Igen. Elég ramot kell tenni a gépbe és nem kell swap. Ha viszont valaki használni szeretné a hibernálást, kénytelen swappartíciót használni. Az viszont HDD-n lomha. De arra is van megoldás.

Négy db merevlemez raid 0 nullába. Ez az! Ez lesz a következő blogom. Gentoo hibernálás beállítása négy db merevlemezzel raid nullába. Nem vagyok buzi.

Notebookon ez sajnos épp nem opció. Amilyen gyorsan bootolnak ma már ssd-ről a gépek annyira nem probléma a hibernálás hiánya. De megértem ha valaki nem tud élni nélküle. Erre egy megoldás ha a swap sd kárgyára kerül. Nem olyan gyors mint az SSD viszont egy V90 sd kártya már elfogadható írási sebességet tud, bár még mindig nem SSD szinten. Hibernálás előtt swap bekapcsol, visszakapcsolás után valamivel pedig swapoff. Így az sd card lesz leharcolva, hosszabb élettartamot biztosítva a drágább és fontosabb SSD-nek. 

Amilyen gyorsan bootolnak ma már ssd-ről a gépek annyira nem probléma a hibernálás hiánya.

Jé ezen átsiklottam. A hibernálásnak pont nem a gyorsaság a lényege. Pláne az ssdk korszakában. Hanem a kényelem. Az hogy elmenti a gép állapotát:Benne vagy egy kód kelllős közepében, vagy két excel tábla meg három word nyitva van, mert egy pályázaton dolgozol, közben megy a youtube/winamp/spotify lejátszólistával és megy egy levelezőkliens, amiben egy rakat olvsatlan email van, de már tele van a faszod mára mindennel, majd holnap folytatod, ahol ma abbahagyod és hibernálsz. Aztán ugyanonnam megy minden tovább másnap. Nem kell mindent újra megnyitnod, és mentened. Ez a lényege. Ki a szart érdekel, hogy fél percel előbb betölt.

Nem hiába vagy gentoojedi :) Köszönöm az írást!