Erinevus lehekülje "Gentoo install" redaktsioonide vahel

Allikas: Kuutõrvaja
(Gentoo startimine üle võrgu PXE, TFTP ja NFS abil)
P (fstab seadistus)
 
(ei näidata 2 kasutaja 133 vahepealset redaktsiooni)
1. rida: 1. rida:
 
===Sissejuhatus===
 
===Sissejuhatus===
 +
Kui installi aeg on vaja mõnda konfiguratsioonifaili muuta (ja seda kindlasti on vaja teha), kuid seda ei eksisteeri, siis ära karda seda ise luua! :)
  
 
===installiks valmistumine===
 
===installiks valmistumine===
13. rida: 14. rida:
  
 
Seega boodime masina mida plaanime installida plaadilt üles ja Seadistame ssh ning võrgu
 
Seega boodime masina mida plaanime installida plaadilt üles ja Seadistame ssh ning võrgu
 +
 +
Installeerimiseks on soovitatav kasutada gentoo-nobf kernelit. Seda saab valida, kui vajutada F1 nuppu, kui arvuti "ootab" boot välja juures teie sekkumist.
  
 
Esimeseks tuleks kontrollida kas tunti kaart ikka ära
 
Esimeseks tuleks kontrollida kas tunti kaart ikka ära
33. rida: 36. rida:
 
           collisions:0 txqueuelen:0
 
           collisions:0 txqueuelen:0
 
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 
  
 
kui võrgus on töötav DHCP server on tõenäoline, et install CD on juba saanud IP automaatselt, kui ei seadistame need käsitsi
 
kui võrgus on töötav DHCP server on tõenäoline, et install CD on juba saanud IP automaatselt, kui ei seadistame need käsitsi
40. rida: 42. rida:
 
  # route add default gw 192.168.1.254
 
  # route add default gw 192.168.1.254
 
  # echo "nameserver 192.168.1.1" > /etc/resolv.conf
 
  # echo "nameserver 192.168.1.1" > /etc/resolv.conf
 
Tekitame kasutaja sest Gentoos ei peeta root kasutajaga otse logimist heaks tooniks, vajalik on luua eraldi kasutaja kellega SU käsuga minna admin useriks, kasutaja peab olema seejuures nagu FreeBSDsgi wheel grupis
 
 
# adduser kasutaja
 
# passwd kasutaja
 
# usermod -G wheel kasutaja
 
  
 
ning lõpuks seadistame ruudu parooli
 
ning lõpuks seadistame ruudu parooli
58. rida: 54. rida:
 
..ja nüüd võime minna teise masina taha kus saame võtta
 
..ja nüüd võime minna teise masina taha kus saame võtta
 
mugavalt ette ssh konsooli ning manualid
 
mugavalt ette ssh konsooli ning manualid
 +
 +
ehk
 +
 +
$ '''ssh root@<ip aadress>'''
 +
Welcome to the Gentoo 11 Linux LiveDVD!
  
 
===Install===
 
===Install===
67. rida: 68. rida:
 
Esimesena tuleks luua partitsioonid
 
Esimesena tuleks luua partitsioonid
  
  # fdisk /dev/hda
+
  # fdisk /dev/sda
  
 
*p näitab partitsioone
 
*p näitab partitsioone
78. rida: 79. rida:
 
Loome endale kolm partitsiooni /boot / (juur) /var ning swap
 
Loome endale kolm partitsiooni /boot / (juur) /var ning swap
  
*/boot suuruseks 100-300mega
+
*/boot suuruseks 100-300mega (300M)
*/ suuruseks paar giga
+
*swap piisab tänapäeva masinatel kahest gigast täiesti (2048M)
*swap piisab kahest gigast igati tänapäevastel masinatel
+
*/ (juurika) suuruseks 15 giga (paneme nii / kui /usr kokku) (15360M)
*/var samamoodi kuus seitse giga
+
*/var kakskümmend giga (20480M)
 
* ülejäänud ruum kõik /srv alla
 
* ülejäänud ruum kõik /srv alla
  
 +
NB! Olukorras, kus bootloader oskab kernelit rootfailsüsteemi pealt lugeda ja rootfailsüsteemi moodul on kernelis või initrd sees olemas, siis pole eraldi /boot partitsiooni vaja. Üldiselt tehakse /boot eraldi järgmistel juhtudel:
 +
 +
*Admin on konservatiivne ja talle meeldib teha asju nii nagu installerid vaikimisi teevad. Sellel on oma eelis, näiteks ei pea hakkama valikuid teistele põhjendama.
 +
*Kasutuses on eelmise põlvkonna bootloader (loe: vanem kui grub2) ja muud failisüsteemid on LVM-i otsas.
 +
*Juurfailisüsteem on "eksootiline" ja bootloader ei oska seda lugeda.
 +
 +
Ajalooliselt tehti /boot eraldi veel ühel juhul: BIOS ei suutnud kõvaketta algusest piisavalt kaugele lugeda seetõttu oli oht, et suuremas failisüsteemis satuvad andmeblokid kättesaamatule kaugusele.
 +
 +
Swapi ja selle vajaduse kohta võib täpsemalt lugeda tekstist [[Saal]]
 +
 +
Partitsioonide skeem peaks tulema siis järgnev
 +
 +
* /dev/sda1 -- /boot
 +
* /dev/sda2 -- (swap)
 +
* /dev/sda3 -- /
 +
* /dev/sda5 -- /var
 +
* /dev/sda6 -- /home
 +
 +
Loome partitsioonid
 +
 +
Esiteks loome kolm põhipartitsiooni (boot, swap ja root). Selleks vajutame klahvi n, seejärel p (ehk primaarne partitsioon) trükime 1 (või enter)
 +
Kui küsitakse first sector vajutame enterit. Kui küsitakse last sector kirjutame +300M
  
Device Boot      Start        End      Blocks  Id  System
+
Teiseks loome swap partitsiooni. Selleks vajutame uuesti klahvi n ja p, trükime 2 (või enter)
/dev/hda1              1          13      104391  83  Linux
+
Kui küsitakse first sector vajutame enterit. Kui küsitakse last sector kirjutame +4G
/dev/hda2              14        274    2096482+  82  Linux swap / Solaris
 
/dev/hda3            275        1602    10667160  83  Linux
 
/dev/hda4            1603      72937  572998387+   5  Extended
 
/dev/hda5            1603        4205    20908566  83  Linux
 
  
Partitsioonide skeem siis järgnev
+
Kolmandaks loome / ehk root partitsiooni. Selleks vajutame uuesti klahvi n ja p, trükime 3 (või enter)
 +
Kui küsitakse first sector vajutame enterit. Kui küsitakse last sector kirjutame +15G
  
  * /dev/hda1 -- /boot
+
    Device Boot      Start        End      Blocks  Id System
  * /dev/hda2 -- (swap)
+
  /dev/sda1            2048      616447      307200  83  Linux
  * /dev/hda3 -- /
+
  /dev/sda2          616448    9005055    4194304  83  Linux
  * /dev/hda4 -- /var
+
  /dev/sda3        9005056    40462335    15728640  83 Linux
  * /dev/hda5 -- /usr
 
  
Kui partitsioonid tehtud võib vajutada w millejärel partitsioonitabel kirjutatakse paika
 
  
Ext2 /boot partitsioonile sest Grub veel veidi aeg tagasi sisaldas bugi muult bootimisel
+
Nüüd on kolm primaarset partitsiooni tehtud. Edasi tuleb luua extended partitsioon. Ajaloolistel
 +
põhjustel on võimalik luua ainult kolm primaarset partitsioone. Soovides luua neid rohkem kui neli
 +
tuleb neljas teha laiendatud.
 +
 
 +
Selleks vajutame uuesti klahvi n. Valime e (extended) ja vajutame nii last kui first sector küsimise
 +
peale enter. Mispeale võetakse kasutusse kogu ülejäänud kettaruum.
 +
 
 +
  Device Boot      Start        End      Blocks  Id  System
 +
/dev/sda1            2048      616447      307200  83  Linux
 +
/dev/sda2          616448    9005055    4194304  83  Linux
 +
/dev/sda3        9005056    40462335    15728640  83  Linux
 +
/dev/sda4        40462336  312581807  136059736    5  Extended
 +
 
 +
Nüüd võime hakata looma loogilisi partitsioone mis tekitatakse laiendatud partitsiooni sisse.
 +
 
 +
Tekitame /var partitsiooni. Vajutame uuesti n, first sectori peale enter
 +
ja last sectorile trükime +20G
 +
 
 +
Seejärel lisame kogu allesjäänud ruumi /home partisiooniks. Selleks
 +
pole vaja teha muud kui vajutada taaskord n ja nii first kui last sectori küsimisele
 +
vastata enterivajutusega. Vaslmis
 +
 
 +
Imetleme kätetööd:
 +
 
 +
    Device Boot      Start        End      Blocks  Id  System
 +
/dev/sda1            2048      616447      307200  83  Linux
 +
/dev/sda2          616448    9005055    4194304  83  Linux
 +
/dev/sda3        9005056    40462335    15728640  83  Linux
 +
/dev/sda4        40462336  312581807  136059736    5  Extended
 +
/dev/sda5        40464384    82407423    20971520  83  Linux
 +
/dev/sda6        82409472  312581807  115086168  83  Linux
 +
 
 +
Täiendavad tegevused partitsioonidega
 +
 
 +
Boot partitsioon tuleb muuta starditavaks. Sellejs vajutame klahvi a ja seejärel number 1. Ehk siis
 +
muudame esimese partitsiooni /dev/sda1 bootpartitsiooniks.
 +
 
 +
Swapi juures tuleb lisaks täpsustada partitsiooni tüüpi. Selleks tuleb vajutada klahvi t, valida teine partitsioon 2 ja trükkida 82 mis seadistab partitsiooni tüübiks "Linux swap"
 +
 
 +
    Device Boot      Start        End      Blocks  Id  System
 +
/dev/sda1  *        2048      616447      307200  83  Linux
 +
/dev/sda2          616448    9005055    4194304  82  Linux swap / Solaris
 +
/dev/sda3        9005056    40462335    15728640  83  Linux
 +
/dev/sda4        40462336  312581807  136059736    5  Extended
 +
/dev/sda5        40464384    82407423    20971520  83  Linux
 +
/dev/sda6        82409472  312581807  115086168  83  Linux
 +
 
 +
Kui partitsioonid tehtud tuleb vajutada klahvi w millejärel partitsioonitabel kirjutatakse paika
 +
 
 +
Ext2 tekitamine /boot partitsioonile. Tegelikult võib tänapäeval panna /boot paritsioonile ka ext4 julgelt.
  
 
  # mke2fs /dev/sda1
 
  # mke2fs /dev/sda1
  
Ext3 juurfailisüsteemile
+
Ext4 juurfailisüsteemile, var kettale ja homele. Ext4 on juba piisavalt stabiilne. Google kasutab storage infrastruktuuris ext4 eelmise aasta (2010) jaanuaris ja android ka. Ext4 eeliseks on suured failisüsteemid.
  
  # mke2fs -j /dev/sda3
+
  # mkfs.ext4 /dev/sda3
 +
# mkfs.ext4 /dev/sda5
 +
# mkfs.ext4 /dev/sda6
  
 
Tekitame swapi
 
Tekitame swapi
120. rida: 189. rida:
 
Moundime tekkinud partitsioonid
 
Moundime tekkinud partitsioonid
  
  # mount /dev/hda3 /mnt/gentoo
+
  # mount /dev/sda3 /mnt/gentoo
 
  # mkdir /mnt/gentoo/boot
 
  # mkdir /mnt/gentoo/boot
  # mount /dev/hda1 /mnt/gentoo/boot
+
# mkdir /mnt/gentoo/var
  # mount /dev/hda5 /mnt/gentoo/var
+
  # mount /dev/sda1 /mnt/gentoo/boot
 +
  # mount /dev/sda5 /mnt/gentoo/var
  
 
====stage && portage lahtipakkimine====
 
====stage && portage lahtipakkimine====
134. rida: 204. rida:
 
utiliite /programme juba kokkupandud paketina (init, bash jms töövahendid)
 
utiliite /programme juba kokkupandud paketina (init, bash jms töövahendid)
  
hetkel värskeima stage 64bitise opsüsteemiga arvuti jaoks leiab kaustast http://distfiles.gentoo.org/releases/amd64/current-stage3/
+
hetkel värskeima stage 64bitise opsüsteemiga arvuti jaoks leiab kaustast http://distfiles.gentoo.org/releases/amd64/current-stage3/ või http://distfiles.gentoo.org/releases/amd64/autobuilds/
  
 
Paigaldame ka 64 bitise värskeima stage
 
Paigaldame ka 64 bitise värskeima stage
  
 
  # cd /mnt/gentoo
 
  # cd /mnt/gentoo
  # wget http://distfiles.gentoo.org/releases/amd64/current-stage3/stage3-amd64-20100514.tar.bz2
+
  # wget ftp://ftp.eenet.ee/gentoo/releases/amd64/current-stage3/stage3-amd64-20110908.tar.bz2
  
 
Ning pakime stage lahti
 
Ning pakime stage lahti
165. rida: 235. rida:
 
====Häälestamine ning lisaprogrammide paigaldus====
 
====Häälestamine ning lisaprogrammide paigaldus====
  
make.conf on minul selline
+
make.conf on minul selline, kui seda faili ei eksisteeri, siis tuleks see tekitada (asukoht /etc/make.conf)
  
 
  CHOST="x86_64-pc-linux-gnu"
 
  CHOST="x86_64-pc-linux-gnu"
171. rida: 241. rida:
 
  CXXFLAGS="${CFLAGS}"
 
  CXXFLAGS="${CFLAGS}"
 
  MAKEOPTS="-j3"   
 
  MAKEOPTS="-j3"   
  FEATURES="parallel-fetch -userfetch fixpackages"
+
  FEATURES="parallel-fetch -userfetch"
 
  USE="-X -kde -qt -gnome -gtk -gpm -ldap"
 
  USE="-X -kde -qt -gnome -gtk -gpm -ldap"
 
  SYNC="rsync://ftp.eenet.ee/gentoo-portage"
 
  SYNC="rsync://ftp.eenet.ee/gentoo-portage"
 
  GENTOO_MIRRORS="http://ftp.eenet.ee/pub/gentoo/ http://ftp.linux.ee/pub/gentoo/distfiles/ ftp://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/"
 
  GENTOO_MIRRORS="http://ftp.eenet.ee/pub/gentoo/ http://ftp.linux.ee/pub/gentoo/distfiles/ ftp://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/"
  
CHOST on meie masina arhidektuur
+
*CHOST on meie masina arhidektuur.
MAKEOPTS abil seme mitme threadiga kompileeritakse
+
*MAKEOPTS abil seme mitme threadiga kompileeritakse.
USE abil mis on globaalsed kompileerimise seaded
+
*USE abil mis on globaalsed kompileerimise seaded.
GENTOO_MIRRORS abil defineerime lähimad serverid meile
+
*GENTOO_MIRRORS abil defineerime lähimad serverid.
  
Ning paigaldame värske portsude puu
+
Ning paigaldame masinasse värske portsude puu
  
  emerge --sync
+
  # emerge --sync
  
Profiili linkimine
+
Selle käsu täitmine võtab mõningase aja...aeglasema arvuti korral jõuab vahepeal kohvi teha
 
 
make.profile -> ../usr/portage/profiles/default/linux/amd64/2008.0
 
  
 
=====Lokaalid=====
 
=====Lokaalid=====
  
Kuna oleme eestlased ja tahaks täpilisi märke näha siis
+
Kuna oleme eestlased ja sooviks sellest iseärasusest tingituna täpilisi märke näha siis avame faili /etc/locale.gen
  
# nano -w /etc/locale.gen
+
ja lisame sinna read
 
 
ja lisame sinna
 
  
 
  en_US ISO-8859-1
 
  en_US ISO-8859-1
211. rida: 277. rida:
 
=====fstab seadistus=====
 
=====fstab seadistus=====
  
  /dev/hda1       /boot    ext2    noatime     1 2
+
Lisame faili /etc/fstab järgmised read:
  /dev/hda2       none      swap    sw                0 0
+
 
  /dev/hda3       /        ext3   noatime            0 1
+
  /dev/sda1       /boot    ext2    noatime           1 2
  /dev/hda5       /var         ext3   noatime            0 1
+
  /dev/sda2       none      swap    sw                0 0
 +
  /dev/sda3       /        ext4   noatime            0 1
 +
  /dev/sda5       /var     ext4    noatime            0 1
 +
/dev/sda6      /home    ext4   noatime            0 1
  
 
=====võrgu seadistus=====
 
=====võrgu seadistus=====
  
Avame võrgu seadistusfaili
+
Avame võrgu seadistusfaili /etc/conf.d/net
  
  # nano /etc/conf.d/net
+
  config_eth0="192.168.1.20/24"
 +
routes_eth0="default via 192.168.1.254"
  
  config_eth0=( "192.168.1.20/24" )
+
Netmaski võib ka pikalt välja kirjutada
  routes_eth0=( "default via 192.168.1.254" )
+
 
 +
  config_eth0="192.168.0.2 netmask 255.255.255.0"
 +
 
 +
Võrguseadme peale rebooti automaatseks ülestulemiseks on vajalik tekitada init skripti link
 +
 
 +
  # ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
 +
 
 +
Kui arvutis on ka eth1 võrguseade olemas tuleb see samamoodi linkida. Ning seejärel
 +
tuleb muuta värskelt lingitud skript boodil starditavaks.
  
 
  # '''rc-update add net.eth0 default'''
 
  # '''rc-update add net.eth0 default'''
231. rida: 309. rida:
 
samuti lisada default runlevelile näiteks eth1 seade
 
samuti lisada default runlevelile näiteks eth1 seade
  
Kui seade ei tulnud kohe peale booti üles tuleb tekitada vajakli symlink
+
PS: Gentoo üritab automaatselt ipv6 aadressi külge haarata. See on küll tore aga
 +
kui reeversit ipv6 automaatselt aadressil pole võib tekkida probleeme nt mailisaatmisega. Selleks, et ipv6 keelata, tuleb kõigepealt anda käsk
  
  # ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
+
  sysctl net.ipv6.conf.eth0.disable_ipv6=1
 +
 
 +
Seejärel tuleks see lisada ka /etc/sysctl.conf faili, nüüd aga
 +
 
 +
  net.ipv6.conf.eth0.disable_ipv6=1
 +
 
 +
Teine probleem võib tekkida sellega, et kuigi masinale on seadistatud staatiline ipv6 aadress kipub ta ikkagi ka rdadvi käest
 +
saama automaatse aadressi. See võib tekitada koos tulemüüriga probleeme
 +
 
 +
          inet6 addr: fe80::226:b9ff:fe3d:f576/64 Scope:Link
 +
          inet6 addr: 2001:bb8:2001:1::131/128 Scope:Global
 +
          inet6 addr: 2001:bb8:2001:1:226:b9ff:fe3d:f576/64 Scope:Global
 +
 
 +
Automaatse seadistuse keelamiseks eth1 seadmel
 +
 +
sudo sysctl -w net.ipv6.conf.eth1.autoconf=0
 +
sudo sysctl -w net.ipv6.conf.eth1.accept_ra=0
 +
 
 +
Või kõigil võrguseadmetel
 +
 
 +
sudo sysctl -w net.ipv6.conf.all.autoconf=0
 +
sudo sysctl -w net.ipv6.conf.all.accept_ra=0
 +
 
 +
Hiljem vaja kirjutada info ka sysctl.conf faili etc kaustas.
  
 
=====Teenused toimima=====
 
=====Teenused toimima=====
239. rida: 341. rida:
 
Et ssh stardiks ka peale booti st  
 
Et ssh stardiks ka peale booti st  
  
   '''rc-update add sshd default'''
+
   # '''rc-update add sshd default'''
 
   * sshd added to runlevel default
 
   * sshd added to runlevel default
  
255. rida: 357. rida:
 
nt rc-update add apache default jne eemaldada saab mingi teenuse käsuga näiteks rc-update del postfix
 
nt rc-update add apache default jne eemaldada saab mingi teenuse käsuga näiteks rc-update del postfix
  
Ja siis lisaks veel
+
Ja siis lisaks veel abitöövahendite pakett
  
 
  # emerge gentoolkit
 
  # emerge gentoolkit
  
 
Mis annab süsteemile lisaks equery ja glsa-checki
 
Mis annab süsteemile lisaks equery ja glsa-checki
mõlemad väga vajalikud abivahendid
+
mõlemad väga vajalikud abivahendid. Pikemalt võimalustest juhendis
  
 
http://www.gentoo.org/doc/en/gentoolkit.xml
 
http://www.gentoo.org/doc/en/gentoolkit.xml
266. rida: 368. rida:
 
====Kerneli ehitamine====
 
====Kerneli ehitamine====
  
  emerge gentoo-sources
+
Tõmbame ja paigaldame kerneli algkoodi, koos vajalike paikadega
 +
 
 +
  # emerge gentoo-sources
 +
 
 +
Siseneme kerneli algkoodi kausta
  
  cd /usr/src/linux
+
  # cd /usr/src/linux
  
make menuconfig
+
Ja käivitame kerneli pseudograafilise seadistusliidese
  
eriti tuleks tähelepanu pöörata ,et võrgu ning ketaste või kettakontrollerite draiverid
+
# make menuconfig
oleksid sees kuna ilma nendeta on tõenäoline ,et tuleb uuesti
+
 
livecd bootida ja asuda kernelit tegema, teisi komponente saab paigaldada
+
Kindlasti tuleb vaadata, et ext2 ja ex3 tugi oleks lubatud. Samuti tuleks tähelepanu pöörata ,et võrgu ning ketaste või kettakontrollerite draiverid oleksid sees kuna ilma nendeta on tõenäoline ,et tuleb uuesti livecd bootida ja asuda kernelit tegema, teisi komponente saab paigaldada
 
juba kiiremini. Antud HP juhul tuli kontrollida compaq array suppordi olemasolu
 
juba kiiremini. Antud HP juhul tuli kontrollida compaq array suppordi olemasolu
  
282. rida: 388. rida:
  
 
  # make install
 
  # make install
sh /usr/src/linux-2.6.31-gentoo-r6/arch/x86/boot/install.sh 2.6.31-gentoo-r6 arch/x86/boot/bzImage \
 
System.map "/boot"
 
  
Millega paigaldatalse kernel kausta /boot nimega /boot/vmlinuz-2.6.26-gentoo-r1
+
Selle käsu väljund peaks olema analoogne (sõltuvalt kerneli versioonist)
 +
 
 +
sh /usr/src/linux-3.10.25-gentoo/arch/x86/boot/install.sh 3.10.25-gentoo arch/x86/boot/bzImage \
 +
        System.map "/boot"
 +
 
 +
Millega paigaldatakse kernel kausta /boot nimega /boot/vmlinuz-3.10.25-gentoo
  
 
kuid võib kerneli ka käsitsi paika kopeerida näiteks sarnaselt
 
kuid võib kerneli ka käsitsi paika kopeerida näiteks sarnaselt
298. rida: 407. rida:
 
selleks tuleb paigalda pciutils pakett
 
selleks tuleb paigalda pciutils pakett
  
  emerge sys-apps/pciutils
+
  # emerge sys-apps/pciutils
  
 
Kasutamiseks öelda lihtsalt
 
Kasutamiseks öelda lihtsalt
  
  # lspci
+
  # '''lspci'''
 
  00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge (rev 80)
 
  00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge (rev 80)
 
  00:01.0 PCI bridge: VIA Technologies, Inc. VT8237/VX700 PCI Bridge
 
  00:01.0 PCI bridge: VIA Technologies, Inc. VT8237/VX700 PCI Bridge
315. rida: 424. rida:
 
Abiks on ka lsmod käsk
 
Abiks on ka lsmod käsk
  
  # lsmod
+
  # '''lsmod'''
 
  Module                  Size  Used by
 
  Module                  Size  Used by
 
  vzethdev              12288  0
 
  vzethdev              12288  0
345. rida: 454. rida:
 
  button                10000  0
 
  button                10000  0
  
Kasutada võib ka alguses genkernelit http://www.gentoo.org/doc/en/genkernel.xml
+
Kui seadmete tuvastamine käib esiti üle jõu võib alguses kasutada genkernelit http://www.gentoo.org/doc/en/genkernel.xml
  
 
====Bootloaderi paigaldamine====
 
====Bootloaderi paigaldamine====
355. rida: 464. rida:
 
  # grep -v rootfs /proc/mounts > /etc/mtab
 
  # grep -v rootfs /proc/mounts > /etc/mtab
  
Kontrollime, et grupi konfiguratsioonis on seadme mapimine tehtud õigele seadmele.
+
Grub2 installeerimiseks tuleb käivitada käsk (/dev/sdX, kus X on ketas, kus boot partitsioon)
See peaks olema järgnev
 
  
  # nano /boot/grub/device.map
+
  # grub2-install /dev/sda
(hd0)    /dev/hda
 
  
HP servero puhul peab seadistus olema selline
+
Käsk peaks tagastama lause.
(hd0)    /dev/cciss/c0d0
 
  
Ning stardile grub'i interaktiivse shelli kus muudame ketta bootivaks
+
Installation finished. No error reported.
  
# '''grub --device-map /boot/grub/device.map'''
+
Nüüd tuleb tekitada grubi konfiguratsioon
  
Kus boot partitsioon asub
+
# grub2-mkconfig -o /boot/grub/grub.cfg
  
  grub> '''root (hd0,0)'''
+
Ja vastus peaks olema
  root  (hd0,0)
+
  Generating grub.cfg ...
  Filesystem type is ext2fs, partition type 0x83
+
  Found linux image: /boot/vmlinuz-3.10.25-gentoo
 +
  done
  
Installime mbr'i grubi
+
Vastuse sees peab olema just loodud kernel (näite puhul 3.10.25).
  
grub> '''setup (hd0)'''
+
Tekitame kasutaja sest Gentoos ei peeta root kasutajaga otse logimist heaks tooniks, vajalik on luua eraldi kasutaja kellega SU käsuga minna admin useriks, kasutaja peab olema seejuures nagu FreeBSDsgi wheel grupis
  
Edasi vajalik ka grubi konfiguratsiooni tekitamine
+
# useradd kasutaja
 +
# passwd kasutaja
 +
# usermod -G wheel kasutaja
  
  # nano /boot/grub/grub.conf
+
Kontrolli tulemust, kas wheel gruppi lisamine oli edukas käsuga
 +
  # id kasutaja
  
timeout 5
+
Vastuses peaks sisalduma
  default 0
+
  groups=1000(kasutaja),10(wheel)
title  GNU/Linux
 
root (hd0)
 
kernel /boot/bzImage root=/dev/hda1
 
 
 
 
 
Kui kasutuses HP server siis on root kujul /dev/cciss!c0d0p1
 
 
 
kasutajad ja paroolid süsteemile
 
 
 
# sudo useradd kasutaja
 
# sudo passwd kasutaja
 
 
 
Kuna Gentoos nagu ka FreeBSD's peab kasutaja su abil ruuduks
 
moondumiseks olema wheel grupis siis lisame ta ka sinna
 
 
 
# sudo usermod -G wheel kasutaja
 
  
 
Viimaks root parool
 
Viimaks root parool
407. rida: 501. rida:
 
unmount & reboot!
 
unmount & reboot!
  
===Installi järgsed tegevused===
+
===Kogu süsteemi uuendamine ja turvapaikamine===
  
 
Peale installi oleks soovitatav kogu world uuesti buildida.
 
Peale installi oleks soovitatav kogu world uuesti buildida.
416. rida: 510. rida:
  
 
  # emerge --update --newuse --deep world
 
  # emerge --update --newuse --deep world
 +
 +
PS: Mitmetuumsel masinal võib kompleerimist paraliseerida käsuga emerge --jobs=4 --update --deep --newuse world
 +
 +
Eemaldame üleliigsed ja enam mitte vajalikud paketid-sõltuvused
 +
 
  # emerge --depclean
 
  # emerge --depclean
 +
 +
Kontrollimine linkimist libide vastu (midagi võib olla vahepealse uuendamise ja puhastamisega katki läinud)
 +
 
  # revdep-rebuild
 
  # revdep-rebuild
  
423. rida: 525. rida:
 
  # etc-update
 
  # etc-update
  
Kui emerge teatab ,et pakett näiteks tavaline editor on maskitud tuleks selle nimi lisada faili /etc/portage/package.unmask
+
Gentoo uuendamisel pigem soovitaks siiski pidevat kogu süsteemi rebuildimist
 +
vältida ning uuendada aegajalt vaid turvavigadega pakette, järgneva käsuga saab seda kontrollida
 +
 
 +
# '''glsa-check -l affected'''
 +
[A] means this GLSA was already applied,
 +
[U] means the system is not affected and
 +
[N] indicates that the system might be affected.
 +
 
 +
selleks ,et gentoo iga nädalaselt saadaks teateid turvavigadega pakettidest võib lisada crontabi
 +
 
 +
40 22 * * 6 /usr/bin/emerge --sync > /dev/null && /usr/bin/glsa-check -m affected
 +
 
 +
===Tarkvara haldus===
 +
 
 +
Nagu juba ülal sai ära toodud toimub tarkvara paigaldus portagest kasutades '''emerge''' käsku.
 +
 
 +
Näiteks Nano editori paigaldamiseks tuleb kirjutada terminali
 +
 
 +
# emerge app-editor/nano
 +
 
 +
Kui emerge teatab ,et pakett (näiteks tavaline editor) on maskitud tuleks selle nimi lisada faili /etc/portage/package.unmask
 +
 
 +
Võib kirjutada üldisemalt
  
 
  >=app-editor/nano
 
  >=app-editor/nano
 +
 +
Aga võib määrata ka täpse versiooni, mis unmaskitakse
 +
 +
=dev-lang/ruby-1.9.2_rc2-r1
  
 
Ja üritada uuesti tarkvara emergeda
 
Ja üritada uuesti tarkvara emergeda
446. rida: 574. rida:
 
Abi saab üldiselt gentoo enda bugrepordi allikatest http://bugs.gentoo.org/
 
Abi saab üldiselt gentoo enda bugrepordi allikatest http://bugs.gentoo.org/
  
Gentoo uuendamisel pigem soovitaks siiski pidevat kogu süsteemi rebuildimist
+
Tarkvara paigaldatakse seejuures võrgust allatõmmatud algkoodist, tarkvara võimalused ja erinevad toetatud formaadid, laiendused, moodulid jms määratakse ära '''USE''' võtmega.
vältida ning uuendada aegajalt vaid turvavigadega pakette, järgneva käsuga saab seda kontrollida
+
 
 +
Näiteks samba puhul on vaikimisi use  võtmeteks:
 +
 
 +
USE="acl aio client cups netapi pam readline server smbclient -addns -ads -avahi -caps -cluster -debug -doc -examples -fam -ldap -ldb -quota -smbsharemodes -smbtav2 -swat -syslog -winbind"
 +
 
 +
Kus äratoodud kõik vaikimisi paigaldusel-kompileerimisel lisatavad võtmed  ja miinus märgiga võtmed, mida veel võimalik paketile lisada aga hetkel neid ei kasutata. Näiteks on sageli väga hea paigaldada
 +
tarkvara serverisse ilma selle Xorgi toeta, hoides nii ära hulga X akendega seotud sõltuvuste ja abiteekide paigaldse ning muutes süsteemi sellevõrra kergekaalulisemaks ja puhtamaks. Või siis jättes -cups võtmega samba juures paigaldamata printimise toe jääb paigaldamata ka terve hulk abitarkvara ning sõltuvusi, mis võivad hiljem süsteemi uuendamisel meid segama hakata või peita endas täiendavaid turvariske.
 +
 
 +
Neid võtmeid näeb täpsemalt ja koos kirjeldusega gentoolkiti paketti kuuluva käsuga equery
 +
 
 +
# '''equery u nano'''
 +
[ Legend : U - final flag setting for installation]
 +
[        : I - package is installed with flag    ]
 +
[ Colors : set, unset                            ]
 +
  * Found these USE flags for app-editors/nano-2.3.1-r2:
 +
  U I
 +
  - - debug  :  Enable debug messages and assert warnings. Note that these will all be sent straight  to stderr rather than some logging facility.
 +
  - - justify : Enable justify/unjustify functions for text formatting.
 +
  + + magic  :  Add magic file support (sys-apps/file) to automatically detect appropriate syntax  highlighting
 +
  + + minimal :  Disable all fancy features, including ones that otherwise have a dedicated USE flag  (such as spelling).
 +
  + + ncurses : Adds ncurses support (console display library)
 +
  + + nls    : Adds Native Language Support (using gettext - GNU locale utilities)
 +
  - - slang  : Adds support for the slang text display library (it's like ncurses, but different)
 +
  - - spell  : Adds dictionary support
 +
  + + unicode : Adds support for Unicode
 +
 
 +
Neid võtmeid saab muuta portage kaustas asuva '''package.use''' failiga, kirjutades sinna eraldi
 +
reale paketi nime ja selle taha soovitud võtmed. Soovides mõnd võtit välja lülitada tuleb
 +
kirjutada selle nimi miinusmärgiga. Näiteks soovides paigaldada postfixi mysqli, pami ja sasli toega peame kirjutama /etc/portage/package.use faili rea
 +
 
 +
mail-mta/postfix sasl pam mysql
 +
 
 +
Soovides paigaldada mysqli ilma perli toeta:
 +
 
 +
dev-db/mysql latin1 -perl
 +
 
 +
Või amavisd koos spamisassiga
  
  # '''glsa-check -l affected'''
+
  mail-filter/amavisd-new spamassassin
[A] means this GLSA was already applied,
 
[U] means the system is not affected and
 
[N] indicates that the system might be affected.
 
  
selleks ,et gentoo iga nädalaselt saadaks teateid turvavigadega pakettidest võib lisada crontabi
+
Ja ülal näites todud samba minimaalsemate ehk vähemate sõltuvustega paigaldamiseks
  
  40 22 * * 6 /usr/bin/emerge --sync > /dev/null && /usr/bin/glsa-check -m affected
+
  net-fs/samba -acl -client -cups -pam
  
===Tarkvara haldus===
+
Jne, neid näiteid võiks tuua veel hulgi.
  
 
Soovies näha mis erinevaid tarkvara nt php versioone installida saab aitab käsk
 
Soovies näha mis erinevaid tarkvara nt php versioone installida saab aitab käsk
474. rida: 635. rida:
 
M~ tähendab, et pakett on maskitud
 
M~ tähendab, et pakett on maskitud
  
Pikemalt juttu aadressilt
+
Vaatame sõltuvuste puud
 +
 
 +
# '''equery depgraph =app-editors/nano-1.3.12-r1'''
 +
  * Searching for nano1.3.12-r1 in app-editors ...
 +
 +
  * dependency graph for app-editors/nano-1.3.12-r1
 +
  `--  app-editors/nano-1.3.12-r1  amd64
 +
    `--  sys-libs/ncurses-5.7-r7  (>=sys-libs/ncurses-5.2) amd64
 +
    `--  sys-devel/gettext-0.18.1.1-r1  (sys-devel/gettext) amd64
 +
    `--  sys-libs/slang-2.2.2  (sys-libs/slang) amd64
 +
[ app-editors/nano-1.3.12-r1 stats: packages (4), max depth (1) ]
 +
 
 +
Vaatame paketile kuuluvaid faile
 +
 
 +
# '''equery files nano'''
 +
  * Searching for nano ...
 +
  * Contents of app-editors/nano-2.2.5:
 +
/bin
 +
/bin/nano
 +
/bin/rnano -> nano
 +
/etc
 +
/etc/nanorc
 +
/usr
 +
/usr/bin
 +
/usr/bin/nano -> /bin/nano
 +
/usr/share
 +
/usr/share/doc
 +
/usr/share/doc/nano-2.2.5
 +
..
 +
 
 +
Vaatame paketi suurust
 +
 
 +
# equery size nano
 +
  * app-editors/nano-2.2.5
 +
          Total files : 162
 +
          Total size  : 1.70 MiB
 +
 
 +
Pikemalt juttu aadressidel
 +
 
 +
http://en.gentoo-wiki.com/wiki/Gentoolkit
  
 
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3
 
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3
484. rida: 684. rida:
 
  HOSTNAME="zoo.loomaaed.ee"
 
  HOSTNAME="zoo.loomaaed.ee"
  
ntpdate käsu saamiseks vaja emergeda '''ntp'''
+
ntpdate käsu saamiseks vaja paigaldada pakett '''ntp'''
 +
 +
# emerge ntp
  
 
Kui vaja dhcp clienti siis selleks tuleb paigaldada '''dhcpcd''' pakett
 
Kui vaja dhcp clienti siis selleks tuleb paigaldada '''dhcpcd''' pakett
  
Alias ip saab lisada käsuga
+
Teise ip saab võrgukaardile lisada käsuga
  
  ifconfig eth0:0 192.168.1.45 up
+
  # ifconfig eth0:0 192.168.1.45 up
  
 
Seejuures on igasuguste võrguseadistuste juures abiks fail /etc/conf.d/net.example
 
Seejuures on igasuguste võrguseadistuste juures abiks fail /etc/conf.d/net.example
508. rida: 710. rida:
 
  # '''grep MemTotal /proc/meminfo'''
 
  # '''grep MemTotal /proc/meminfo'''
 
  MemTotal:      8179900 kB
 
  MemTotal:      8179900 kB
 +
 +
Paigaldame hdparm utiliidi
  
 
  # emerge hdparm  
 
  # emerge hdparm  
  
  # '''hdparm -tT /dev/cciss/c0d0'''
+
Testime ketast
 +
 
 +
  # '''hdparm -tT /dev/sda'''
 
  /dev/cciss/c0d0:
 
  /dev/cciss/c0d0:
 
   Timing cached reads:  2762 MB in  2.00 seconds = 1381.99 MB/sec
 
   Timing cached reads:  2762 MB in  2.00 seconds = 1381.99 MB/sec
518. rida: 724. rida:
 
inittab sisaldab mõttetuid konsoole, korjame need ära
 
inittab sisaldab mõttetuid konsoole, korjame need ära
  
  sed -i -e 's|^c[2-6]:2345:|#&|' /etc/inittab
+
  # sed -i -e 's|^c[2-6]:2345:|#&|' /etc/inittab
  
 
TCP syncookie ja suured PIDid failis /etc/sysctl.conf
 
TCP syncookie ja suured PIDid failis /etc/sysctl.conf
 
  net.ipv4.tcp_syncookies = 1
 
  net.ipv4.tcp_syncookies = 1
 
  kernel.pid_max = 999999
 
  kernel.pid_max = 999999
 +
 +
Veel mõned suure tõenäosusega vajaminevad paketid.
 +
 +
*mail-mta/postfix
 +
*sys-apps/less
 +
*sys-fs/lvm2
 +
*sys-fs/e2fsprogs
 +
*app-admin/logrotate
 +
*sys-apps/ethtool
 +
 +
Käsk pwgen tuleb paigaldada pakist pwgen
 +
 +
Emerge töö kiirendamiseks võib selle käivitada parameetriga --jobs=6
  
 
===Eelinstalleeritud Gentoo liigutamine ühest serverist teise===
 
===Eelinstalleeritud Gentoo liigutamine ühest serverist teise===
538. rida: 757. rida:
 
näiteks sobiks selleks hästi käsk  
 
näiteks sobiks selleks hästi käsk  
  
  rsync -av --numeric-ids -d -H --exclude-from=exclude / root@ip:/mnt/boot/
+
  # rsync -av --numeric-ids -d -H --exclude-from=exclude / root@ip:/mnt/boot/
  
 
exclude fail sisaldas minul järgnevaid ridu, üldiselt võib sinna kirjutada kõik mounditud failisüsteemid
 
exclude fail sisaldas minul järgnevaid ridu, üldiselt võib sinna kirjutada kõik mounditud failisüsteemid
554. rida: 773. rida:
 
kui süsteem bootides teatab näiteks unable to open initial console, siis aitab käsk
 
kui süsteem bootides teatab näiteks unable to open initial console, siis aitab käsk
  
  mknod /dev/console c 5 1
+
  # mknod /dev/console c 5 1
  
 
Peale rebooti peaks olema valmis süsteem
 
Peale rebooti peaks olema valmis süsteem
  
===Gentoo startimine üle võrgu PXE, TFTP ja NFS abil===
+
===Portagest eemaldatud tarkvara paigaldus===
  
Skeem mille alusel süsteem tööle hakkab
+
Võib ette tulla aegajalt juhtumeid kui vaja installida mingi vägagi vana tarkvaratükk, mis on portagest juba eemaldatud.
 +
Õnneks on samas selle programmi ebuild aga saadaval gentoo enda portage veebist.
  
Antud näide koosneb kolmest serverist A. bootserverist, B. testserverist ja C. Ametlikust tööserverist
+
Praegusel juhul tahaks siis peale panna php 5.2.x mingi versiooni, samas kui portage pakub meile vaid 5.3 ja 5.4.x versioone.
            ____
 
            |    | A (Bootserver kus asetsevad NFS, DNCP, TFTPD teenused)
 
            |____| 192.168.0.10
 
 
        ....             
 
        Sisevõrk....
 
            .....
 
    ____          ____
 
    |    |B      |    |C        (PXE bootivad serverid)
 
    |____|        |____|
 
 
192.168.1.20    192.168.1.21
 
 
 
Vajalik NFS toega kernelit bootserverile.
 
 
 
[[Pilt:Vabrika.jpg]]
 
 
 
[[Pilt:Vabrikb.jpeg]]
 
  
====Gentoo paigalduse skript====
+
Seega siis lähme veebilehele ja hangime ebuildi:
 +
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/php/?hideattic=0
  
Kuna Gentoo paigaldus võtab isegi eksperdil aega mitu tundi on mõistlik see paljude
+
Sikutame selle alla
serverite puhul automatiseerida bash skripiga. Järgnev skript tekitab kettale  /srv/server
 
kataloogi millelt saab bootida juba üle NFSi
 
 
 
<source lang=bash>
 
#!/bin/bash                                     
 
 
   
 
   
  PXEROOT="/srv/server/"
+
  # wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/php/php-5.2.13.ebuild
STAGE="/srv/gentoo/stage3-amd64-20100429.tar.bz2"
 
NFS_SERVER="192.168.1.10"
 
ROOTPW="parool"
 
NS="192.168.14"
 
  
# kontrollime failide kaustade olemasolu
+
Tekitame kausta PORTDIR_OVERLAY="/usr/local/portage" ja vajaliku struktuuri
[ -z "$PXEROOT" ] && error "Missing install root (PXEROOT). Terminating!"
 
[ -f "$STAGE" ] || error "Missing STAGE tarball $STAGE"
 
  
echo "Extracting stage: $STAGE ..."                   
+
  # mkdir /usr/local/portage
tar xjf $STAGE -C $PXEROOT                           
+
  # mkdir /usr/local/portage/dev-lang
[ $? -ne 0 ] && error "Cannot extract tarball [$STAGE] into [$PXEROOT]"
+
  # mkdir /usr/local/portage/dev-lang/php
 
  # Loome /usr/portage and /etc/portage directories, vajalikud emerge jaoks
 
  [ -e $PXEROOT/usr/portage ] || mkdir -pv $PXEROOT/usr/portage               
 
[ -e $PXEROOT/etc/portage ] || mkdir -pv $PXEROOT/etc/portage               
 
 
# Loome minimaalse /dev haru
 
[ -e $PXEROOT/dev ] || mkdir -pv $PXEROOT/dev
 
( cd $PXEROOT/dev && ../sbin/MAKEDEV std ) 
 
 
  # Seadistame ajatsooni
 
rm -f $PXEROOT/etc/localtime
 
ln -s /usr/share/zoneinfo/$TZONE $PXEROOT/etc/localtime
 
echo "TIMEZONE=\"${TZONE}\"" >> $PXEROOT/etc/conf.d/clock
 
 
# Süsteemi charset on UTF-8
 
echo 'LC_ALL="en_US.utf8"' >> $PXEROOT/etc/env.d/02locale                                                 
 
 
# Täidame resolv.conf faili
 
echo "domain $DOMAIN" >  $PXEROOT/etc/resolv.conf
 
echo "search $DOMAIN" >> $PXEROOT/etc/resolv.conf
 
echo "nameserver $NS" >> $PXEROOT/etc/resolv.conf
 
                                                             
 
# Paigaldame mõned fundamentaalsed paketid, kuna see töö tuleb teha chroot keskkonnas tuleb
 
# siin veidi trikitada, esiteks tekitame pxeroot alla skripti mis sisaldab vajalikke
 
# käske ning seejärel käivitame selle skripti chroot keskkonnas
 
cat > $PXEROOT/paigalda.sh  <<EOT 
 
emerge mail-mta/postfix sys-process/vixie-cron app-admin/syslog-ng
 
# NFS client needs portmap
 
emerge net-nds/portmap net-fs/nfs-utils sys-apps/kexec-tools
 
EOT                           
 
  
chmod 755 $PXEROOT/paigalda.sh
+
PS: Kui jätta php kaust dev-lang alla tekitamata teatatakse: "ebuild does not seem to have a valid PORTDIR structure"
mount --bind /usr/portage $PXEROOT/usr/portage
 
mount -t proc none $PXEROOT/proc
 
chroot $PXEROOT /paigalda.sh
 
umount -f $PXEROOT/proc
 
umount -f $PXEROOT/mnt/pkgcache
 
umount -f $PXEROOT/usr/portage
 
rm -f $PXEROOT/paigalda.sh
 
ln -vs /etc/init.d/{vixie-cron,syslog-ng,sshd} $PXEROOT/etc/runlevels/default/
 
                                               
 
# Kexec vajab kernelit, kernel tuleb eelnevalt valmis buildida ja patchida     
 
cp -rp /srv/kernel/kern-2.6.32-unionfs $PXEROOT/bzImage
 
 
# Moodulite otsimise vältimiseks
 
echo 'CDBOOT="yes"' >> $PXEROOT/etc/conf.d/modules
 
echo 'CDBOOT="yes"' >> $PXEROOT/etc/conf.d/bootmisc
 
install -D /dev/null $PXEROOT/lib/modules/2.6.32-gentoo/modules.dep
 
 
# Võrguseaded tulevad DHCPlt
 
echo 'config_eth0=( "noop" )' > $PXEROOT/etc/conf.d/net
 
                                   
 
# checkroot gets error after 'rm' and halts the boot
 
sed -i -e 's|rm -f /etc/mtab|#rm -f /etc/mtab|' $PXEROOT/etc/init.d/checkroot
 
 
# Speed up booting
 
sed -i  -e 's|^svcmount="no"$|svcmount="yes"|' $PXEROOT/etc/conf.d/rc
 
 
# To not make persistent rules onto readonly disk
 
> $PXEROOT/lib64/udev/move_tmp_persistent_rules.sh
 
 
# fstab fail
 
cat > $PXEROOT/etc/fstab <<EOT
 
${NFS_SERVER}:${PXEROOT%.tmp} / nfs ro 0 0
 
proc /proc proc defaults 0 0             
 
tmpfs /dev/shm tmpfs defaults 0 0       
 
EOT                                     
 
                                                             
 
# SSHD võtmed                     
 
  /usr/bin/ssh-keygen -t rsa1 -b 1024 -f $PXEROOT/etc/ssh/ssh_host_key -N ''
 
  /usr/bin/ssh-keygen -d -f $PXEROOT/etc/ssh/ssh_host_dsa_key -N ''       
 
  /usr/bin/ssh-keygen -t rsa -f $PXEROOT/etc/ssh/ssh_host_rsa_key -N ''   
 
 
# Sätime root kasutaja parooli
 
pw=`ruby -e "print '${ROOTPW}'.crypt('\\$1\\$ABcdefGH\\$')"`
 
sed -i -e "1 s|^root:\*:|root:${pw}:|" $PXEROOT/etc/shadow
 
 
 
# Suuname kirjutatavad failid ümber /fstmp alla
 
mkdir $PXEROOT/fstmp/{tmp,run,lock}
 
rm -rf $PXEROOT/tmp
 
ln -s fstmp/tmp $PXEROOT/tmp
 
rm -rf $PXEROOT/var/tmp
 
ln -s ../fstmp/tmp $PXEROOT/var/tmp
 
rm -rf $PXEROOT/var/run
 
ln -s ../fstmp/run $PXEROOT/var/run
 
rm -rf $PXEROOT/var/lock
 
ln -s ../fstmp/lock $PXEROOT/var/lock
 
rm -f $PXEROOT/etc/mtab
 
ln -s ../proc/mounts $PXEROOT/etc/mtab
 
chmod 711 $PXEROOT/fstmp
 
 
# init skript rc-extra mis tekitab tmpfs failisüsteemi ajutiseks hoidlaks
 
  cat > $PXEROOT/etc/conf.d/rc-extra <<'EOT'
 
  if [[ $1 = "sysinit" && ! -f /fstmp/.fstmp ]]; then
 
  mount -n -t tmpfs -o size=256m,nodev,noexec,nosuid temp /fstmp
 
  mkdir /fstmp/{tmp,run,lock,log,mail}
 
  chmod 711 /fstmp
 
  chmod 1777 /fstmp/tmp
 
  chmod 755 /fstmp/{run,lock,log}
 
  mount -n -t unionfs -o dirs=/fstmp/log=rw:/var/log=ro none /var/log
 
  if [ -d /var/spool/postfix ]; then
 
    mount -n -t unionfs -o dirs=/fstmp/mail=rw:/var/spool/postfix=ro none /var/spool/postfix
 
  fi
 
  touch /fstmp/.fstmp
 
  echo "/fstmp mounted."
 
fi
 
EOT
 
 
# Tühjad logfiles
 
> $PXEROOT/var/log/dmesg
 
> $PXEROOT/var/log/lastlog
 
> $PXEROOT/var/log/messages
 
> $PXEROOT/var/log/wtmp
 
</source>
 
 
 
====DHCP seadistamine====
 
 
 
Paigaldame dhcp serveri, võib paigaldada ka mingi teise lemmik dhcp serveri erinevalt selles näites esitatust
 
 
 
emerge dhcp
 
 
 
/etc/dhcp/dhcpd.conf
 
 
 
defineerime siin ära esiteks dns serveri, tftp serveri, pxekerneli nime ja kaks masinat mis sellelt boodivad, test serveri ja teenuste serveri
 
 
 
option domain-name "zoo.ee";                                         
 
option domain-name-servers 192.168.1.1;                       
 
default-lease-time 14400;
 
max-lease-time 28800;   
 
authoritative;
 
ddns-update-style none;
 
log-facility local7;                                   
 
                                                               
 
group {
 
  next-server 192.168.1.10;
 
  server-name "bootserver";
 
  filename "pxelinux.0"; 
 
  host vabrikutest {                             
 
      hardware ethernet 00:15:10:94:72:01;
 
    fixed-address 192.168.0.20;           
 
  }                                     
 
  host vabrikuserver {                         
 
    hardware ethernet 00:23:B9:14:8C:BC;
 
    fixed-address 192.168.0.21;           
 
  }                                                                     
 
}
 
 
 
Sedistame võrgukaardi millel dhcp kuulab
 
 
 
/etc/conf.d/dhcp
 
 
 
IFACE="eth1"
 
  
====TFTPD====
+
Lisame make.conf faili rea, et seda kausta kasutataks
  
paigaldame ftpd tarkvara
+
PORTDIR_OVERLAY="/usr/local/portage"
  
emerge app-admin/tftp-hpa
+
Seejärel kopeerime faili php-5.2.13.ebuild faili kausta /usr/local/portage/dev-lang/php ja käivitame käsu, mis tekitab
 +
ebuildist digest faili, mis sisaldab igasugust infot portage seotud failidest vist.
  
Määrame ära tftpd töökausta asukoha ja pordid/ipd mida ta kuulab
+
# ebuild /usr/local/portage/dev-lang/php/php-5.2.17.ebuild digest
  
/etc/conf.d/in.tftpd
+
Masin ragistab natuke ja teatab, et php vajab ka teatud patche, egas midagi, googeldame neid ja tõmbame alla. Meie juhul siis saidilt
 +
http://ftp.halifax.rwth-aachen.de/gentoo/distfiles/php-patchset-5.2.17-r0.tar.bz2
  
  INTFTPD_PATH="/srv/tftproot/"
+
  # cd /usr/portage/distfiles/
  INTFTPD_OPTS="-R 4096:32767 -s ${INTFTPD_PATH} -a 192.168.0.10"
+
  # wget http://compono.cz/php-patchset-5.2.17-r0.tar.bz2
  
====PXElinux ja selle konfiguratsioon====
+
Ja proovime uuesti ebuildi käsuga digesti tekitada. Kui käsk õnnestub on meil nüüd olemas töötav port, mille võime
 +
tavaliste vahenditega peale emergeda.
  
/srv/tftproot/ kausta tekitame esiteks unionfs'iga patchitud kerneli, pxelinux.0 faili
+
  # emerge --pretend =dev-lang/php-5.2.17
ja kausta pxelinux.cfg kuhu tekitame iga masina kohta
 
tema MAX aadressi nimelise konfiguratsioonifaili
 
 
 
pxelinux.0 tuleb paketist
 
 
 
  # emerge syslinux
 
 
 
Paigaldame selle õigesse kausta
 
 
 
# cp /usr/share/syslinux/pxelinux.0 /srv/tftproot
 
# mkdir /srv/tftproot/pxelinux.cfg
 
# touch /srv/tftproot/pxelinux.cfg/default
 
 
 
PXE otsib pxelinux.cfg/ kaustast kahte tüüpi konfifaile, esieks mac aadressi kujul ja teiseks hexadecimal kujul ip aadresse, selles näites kasutame füüsilse aadress nimelisi konfiguratsioonifaile
 
 
 
Näiteks vabrikutesti füüsiline aadress on 00:15:10:94:72:01; ning
 
fail peab olema siis 01-00-15-10-94-72-01, põhiline on kirjutada mac aadressi ette 01 ja asendada koolonid
 
kaldkriipsudega
 
 
 
Faili sisuks kirjutame esiteks kerneli nime ja root failisüsteemi asukoha ehk ip ja jaotise
 
 
 
DEFAULT /kern-2.6.32-unionfs
 
APPEND ip=dhcp root=/dev/nfs nfsroot=193.168.0.10:/srv/vabrikutest
 
 
 
Seadistame NFS serveri, tekitame selle konfiguratsiooni kaks järgnevat rida
 
 
 
====Bootivate arvutite kernel====
 
 
 
Vaja tekitada bootiv kernel mis unionfsiga patchitud
 
 
 
Tõmbame alla värske kerneli koodi, hetkel viimaseks Gentoo portages 2.6.34-r1
 
 
 
# emerge  gentoo-sources
 
 
 
Liigume kausta kuhu emerge paigaldas kerneli koodi
 
 
 
# cd /usr/src
 
 
 
Liigutame kerneli ümber uue nime alla, igasjuhuks
 
 
 
# cp -rp linux-2.6.34-gentoo-r1 linux-2.6.34-gentoo-r1-unionfs
 
 
 
Liigume aadressile http://www.fsl.cs.sunysb.edu/project-unionfs.html
 
ja tõmbame sealt enda kerneli versioonile sobiva paiga NB versioonid peavad kindlasti klappima
 
 
 
# wget http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.5_for_2.6.34.3.diff.gz
 
 
 
Liigutame patchi kerneli kausta
 
 
 
# mv unionfs-2.5.5_for_2.6.34.3.diff.gz linux-2.6.34-gentoo-r1-unionfs
 
 
 
Ja anname käsu
 
 
 
# gzip -dc unionfs-*.diff.gz | patch -p1
 
 
 
Ning seejärel kompileerime kerneli
 
 
 
Serverivabriku buildimis skriptis tuleb muuta veel vastavaks rida
 
 
 
install -D /dev/null $PXEROOT/lib/modules/2.6.32-gentoo/modules.dep
 
 
 
PS. Kui fireholi käivitamisel kurdab, et kerneli võiks /proc/config toega kokku ehitada. Viimane näitab mis konfiguratsiooniga on kernel nimelt kokku ehitatud. Seadistada saab seda kerneli kompileerimisel General setup alt
 
 
 
$ head /proc/config
 
CONFIG_X86=y
 
CONFIG_UID16=y
 
CONFIG_EXPERIMENTAL=y
 
CONFIG_MODULES=y
 
CONFIG_MODVERSIONS=y
 
CONFIG_KMOD=y
 
CONFIG_M386=y
 
CONFIG_X86_L1_CACHE_SHIFT=4
 
CONFIG_RWSEM_GENERIC_SPINLOCK=y
 
CONFIG_X86_PPRO_FENCE=y
 
 
 
Firehol võib moodulite kohta infot küsides lihtsalt netist bootitud masina muidu hanguma panna
 
 
 
proc/config lahendust saab kasutada ka soovides kompileerida täpselt samasugust kernelit kui originaal, lihtsalt tuleb anda käsk
 
 
 
zcat /proc/config.gz > /usr/src/linux/.config
 
 
 
Pole vaja "make install" ega "make modules_install" kirjutada. Fail
 
arch/x86/boot/bzImage tuleb kopeerida /srv/tftproot/ alla ja
 
/srv/tftproot/pxelinux.cfg/servertest esimesel real viidata.
 
 
 
====NFS server====
 
 
 
# emerge nfs-utils
 
 
 
/etc/exports
 
 
 
/srv/servertest 192.168.0.0/255.255.255.0(ro,sync,no_root_squash,no_subtree_check,no_acl)
 
/srv/vabrikuserver 192.168.0.0/255.255.255.0(ro,sync,no_root_squash,no_subtree_check,no_acl)
 
 
 
Stardime teenused
 
 
 
#rc-update add in.tftpd default
 
 
 
Paneme lõpuks kõik teenusd tööle
 
 
 
# /etc/init.d/dhcp start
 
# /etc/init.d/in.tftpd start
 
# /etc/init.d/nfs start
 
 
 
Reboodime enda testserveri ja hiljem põhiserveri
 
 
 
====Alternatiiv kasutades pxegrubi pxelinux.0 asemel====
 
 
 
# echo "sys-boot/grub netboot" >> /etc/portage/package.use
 
# emerge -av grub
 
# cp /usr/lib/grub/pxegrub /diskless/eta/boot/pxegrub
 
# nano -w /diskless/eta/boot/grub.lst
 
 
 
TODO
 
 
 
Võrgust veel lisalugemist
 
*http://www.gentoo.org/doc/en/diskless-howto.xml
 
  
 
===Jamadega jamamine===
 
===Jamadega jamamine===
902. rida: 829. rida:
 
tuleb uuendada profiili, esiteks kirjutada käsk
 
tuleb uuendada profiili, esiteks kirjutada käsk
  
  eselect profile list
+
  # eselect profile list
  
 
ning valida pakutud jimekirjast sobivam profiil ja anda käsk
 
ning valida pakutud jimekirjast sobivam profiil ja anda käsk
  
  eselect profile set <number>
+
  # eselect profile set <number>
  
 
Mille järel uuendatakse /etc/make.profiles linki
 
Mille järel uuendatakse /etc/make.profiles linki
 +
 +
===Mälu testimine===
 +
 +
Mitmed ootamatud sefaultid võivad viitada mäluvigadele. Mälu testimiseks
 +
 +
# Emerge "sys-apps/memtest86+"
 +
 +
Misjärel lisada grubi seadistusele
 +
 +
  title=Memtest86+
 +
  root (hd0,0)
 +
  kernel /boot/memtest
 +
 +
Nb! memtesti faili nimi peab kindlasti olema memtest mitte midagi muud. Mul miskipärast muidu ei tahtnud toimida kui
 +
isegi bin laiend oli lisatud.
  
 
===Lingid===
 
===Lingid===
 +
 +
* http://dev.gentoo.org/~swift/docs/gensetup-guide.xml Gensetub, Gentoo paigaldus etteantud konfi alusel.
  
 
* http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html linuxite võrgundusest
 
* http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html linuxite võrgundusest
  
 
* http://linuxtidbits.wordpress.com/2010/03/30/1438/
 
* http://linuxtidbits.wordpress.com/2010/03/30/1438/

Viimane redaktsioon: 7. jaanuar 2014, kell 17:27

Sissejuhatus

Kui installi aeg on vaja mõnda konfiguratsioonifaili muuta (ja seda kindlasti on vaja teha), kuid seda ei eksisteeri, siis ära karda seda ise luua! :)

installiks valmistumine

Sisestame installi cdplaadi mille saame muretseda lehelt http://www.gentoo.org/main/en/where.xml

Võimalik on kasutada livecd'd kus boodib ülex xfce graafiline keskkond ning saab kasutada graafilist installerit kuid gentoo põhiline positiivne omadus ongi ju tema võimalikult detailses ning kasutaja enda tehtavas käsurea installis, kus võimalik kogu süsteem äärmiselt minimaalselt ning enda nõudmistele vastavalt häälestada.

Seega boodime masina mida plaanime installida plaadilt üles ja Seadistame ssh ning võrgu

Installeerimiseks on soovitatav kasutada gentoo-nobf kernelit. Seda saab valida, kui vajutada F1 nuppu, kui arvuti "ootab" boot välja juures teie sekkumist.

Esimeseks tuleks kontrollida kas tunti kaart ikka ära

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:21:5a:f5:31:e7
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:39

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

kui võrgus on töötav DHCP server on tõenäoline, et install CD on juba saanud IP automaatselt, kui ei seadistame need käsitsi

# ifconfig eth0 192.168.1.10 netmask 255.255.255.0
# route add default gw 192.168.1.254
# echo "nameserver 192.168.1.1" > /etc/resolv.conf

ning lõpuks seadistame ruudu parooli

# passwd root

Seejärel stardib ssh

# /etc/init.d/sshd start
..genereeritakse võtmed starditakse ssh

..ja nüüd võime minna teise masina taha kus saame võtta mugavalt ette ssh konsooli ning manualid

ehk

$ ssh root@<ip aadress>
Welcome to the Gentoo 11 Linux LiveDVD!

Install

Partitsioonide - failisüsteemide loomine ja mountimine

Kuna näites kasutatud masina näol on tegemist HP serveriga siis kettaseadme rajaks on /dev/cciss/c0d0

Esimesena tuleks luua partitsioonid

# fdisk /dev/sda
  • p näitab partitsioone
  • n teeb uue partisiooni - küsitakse kas tegemist extended või primary partitsiooniga ning algust ja lõppu kus esimese võib jätta nagu ise

pakub ning teise puhul defineerida soovitud suuruse näiteks +512M

  • d kustutab partitsiooni

n puhul küsitakse partitsiooni algust ja lõppu

Loome endale kolm partitsiooni /boot / (juur) /var ning swap

  • /boot suuruseks 100-300mega (300M)
  • swap piisab tänapäeva masinatel kahest gigast täiesti (2048M)
  • / (juurika) suuruseks 15 giga (paneme nii / kui /usr kokku) (15360M)
  • /var kakskümmend giga (20480M)
  • ülejäänud ruum kõik /srv alla

NB! Olukorras, kus bootloader oskab kernelit rootfailsüsteemi pealt lugeda ja rootfailsüsteemi moodul on kernelis või initrd sees olemas, siis pole eraldi /boot partitsiooni vaja. Üldiselt tehakse /boot eraldi järgmistel juhtudel:

  • Admin on konservatiivne ja talle meeldib teha asju nii nagu installerid vaikimisi teevad. Sellel on oma eelis, näiteks ei pea hakkama valikuid teistele põhjendama.
  • Kasutuses on eelmise põlvkonna bootloader (loe: vanem kui grub2) ja muud failisüsteemid on LVM-i otsas.
  • Juurfailisüsteem on "eksootiline" ja bootloader ei oska seda lugeda.

Ajalooliselt tehti /boot eraldi veel ühel juhul: BIOS ei suutnud kõvaketta algusest piisavalt kaugele lugeda seetõttu oli oht, et suuremas failisüsteemis satuvad andmeblokid kättesaamatule kaugusele.

Swapi ja selle vajaduse kohta võib täpsemalt lugeda tekstist Saal

Partitsioonide skeem peaks tulema siis järgnev

* /dev/sda1 -- /boot
* /dev/sda2 -- (swap)
* /dev/sda3 -- /
* /dev/sda5 -- /var
* /dev/sda6 -- /home

Loome partitsioonid

Esiteks loome kolm põhipartitsiooni (boot, swap ja root). Selleks vajutame klahvi n, seejärel p (ehk primaarne partitsioon) trükime 1 (või enter) Kui küsitakse first sector vajutame enterit. Kui küsitakse last sector kirjutame +300M

Teiseks loome swap partitsiooni. Selleks vajutame uuesti klahvi n ja p, trükime 2 (või enter) Kui küsitakse first sector vajutame enterit. Kui küsitakse last sector kirjutame +4G

Kolmandaks loome / ehk root partitsiooni. Selleks vajutame uuesti klahvi n ja p, trükime 3 (või enter) Kui küsitakse first sector vajutame enterit. Kui küsitakse last sector kirjutame +15G

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048      616447      307200   83  Linux
/dev/sda2          616448     9005055     4194304   83  Linux
/dev/sda3         9005056    40462335    15728640   83  Linux


Nüüd on kolm primaarset partitsiooni tehtud. Edasi tuleb luua extended partitsioon. Ajaloolistel põhjustel on võimalik luua ainult kolm primaarset partitsioone. Soovides luua neid rohkem kui neli tuleb neljas teha laiendatud.

Selleks vajutame uuesti klahvi n. Valime e (extended) ja vajutame nii last kui first sector küsimise peale enter. Mispeale võetakse kasutusse kogu ülejäänud kettaruum.

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048      616447      307200   83  Linux
/dev/sda2          616448     9005055     4194304   83  Linux
/dev/sda3         9005056    40462335    15728640   83  Linux
/dev/sda4        40462336   312581807   136059736    5  Extended

Nüüd võime hakata looma loogilisi partitsioone mis tekitatakse laiendatud partitsiooni sisse.

Tekitame /var partitsiooni. Vajutame uuesti n, first sectori peale enter ja last sectorile trükime +20G

Seejärel lisame kogu allesjäänud ruumi /home partisiooniks. Selleks pole vaja teha muud kui vajutada taaskord n ja nii first kui last sectori küsimisele vastata enterivajutusega. Vaslmis

Imetleme kätetööd:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048      616447      307200   83  Linux
/dev/sda2          616448     9005055     4194304   83  Linux
/dev/sda3         9005056    40462335    15728640   83  Linux
/dev/sda4        40462336   312581807   136059736    5  Extended
/dev/sda5        40464384    82407423    20971520   83  Linux
/dev/sda6        82409472   312581807   115086168   83  Linux

Täiendavad tegevused partitsioonidega

Boot partitsioon tuleb muuta starditavaks. Sellejs vajutame klahvi a ja seejärel number 1. Ehk siis muudame esimese partitsiooni /dev/sda1 bootpartitsiooniks.

Swapi juures tuleb lisaks täpsustada partitsiooni tüüpi. Selleks tuleb vajutada klahvi t, valida teine partitsioon 2 ja trükkida 82 mis seadistab partitsiooni tüübiks "Linux swap"

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     9005055     4194304   82  Linux swap / Solaris
/dev/sda3         9005056    40462335    15728640   83  Linux
/dev/sda4        40462336   312581807   136059736    5  Extended
/dev/sda5        40464384    82407423    20971520   83  Linux
/dev/sda6        82409472   312581807   115086168   83  Linux

Kui partitsioonid tehtud tuleb vajutada klahvi w millejärel partitsioonitabel kirjutatakse paika

Ext2 tekitamine /boot partitsioonile. Tegelikult võib tänapäeval panna /boot paritsioonile ka ext4 julgelt.

# mke2fs /dev/sda1

Ext4 juurfailisüsteemile, var kettale ja homele. Ext4 on juba piisavalt stabiilne. Google kasutab storage infrastruktuuris ext4 eelmise aasta (2010) jaanuaris ja android ka. Ext4 eeliseks on suured failisüsteemid.

# mkfs.ext4 /dev/sda3
# mkfs.ext4 /dev/sda5
# mkfs.ext4 /dev/sda6

Tekitame swapi

# mkswap /dev/sda2

Ja aktiveerime selle

# swapon /dev/sda2 

Moundime tekkinud partitsioonid

# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mkdir /mnt/gentoo/var
# mount /dev/sda1 /mnt/gentoo/boot
# mount /dev/sda5 /mnt/gentoo/var

stage && portage lahtipakkimine

Stage on Gentoo arendajate poolt kokkupandud tarball mis sisaldab kogu baassüsteemi koos utiliitide ning init skriptidega säästes nii kasutaja nende eraldi tõmbamisest ja kompileerimisest

Tõmbame alla stage mis sisaldab kogu gentoo worldi, ehk kõiki gnu vajalikke utiliite /programme juba kokkupandud paketina (init, bash jms töövahendid)

hetkel värskeima stage 64bitise opsüsteemiga arvuti jaoks leiab kaustast http://distfiles.gentoo.org/releases/amd64/current-stage3/ või http://distfiles.gentoo.org/releases/amd64/autobuilds/

Paigaldame ka 64 bitise värskeima stage

# cd /mnt/gentoo
# wget ftp://ftp.eenet.ee/gentoo/releases/amd64/current-stage3/stage3-amd64-20110908.tar.bz2

Ning pakime stage lahti

# tar xvjpf stage3-*.tar.bz2

Seejärel edasiseks tegutsemiseks tuleb luua lahtipakitud keskkonna ümber chroot. Enne seda aga on vajalik mountida veel proc ning dev

# mount -t proc proc /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev

Ja kopeerida resolv.conf selleks ,et nimelahendused toimiksid

# cp -L /etc/resolv.conf /mnt/gentoo/etc/

Nüüd võime ehitada enda ümber chroot keskkonna ,et jätkata süsteemi seadistust Chroot on vajalik selleks, et kõik edasised käsud mis anname täidetaks kaustas /mnt/gentoo mitte aga livecd keskkonnas.

# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...

Häälestamine ning lisaprogrammide paigaldus

make.conf on minul selline, kui seda faili ei eksisteeri, siis tuleks see tekitada (asukoht /etc/make.conf)

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"  
FEATURES="parallel-fetch -userfetch"
USE="-X -kde -qt -gnome -gtk -gpm -ldap"
SYNC="rsync://ftp.eenet.ee/gentoo-portage"
GENTOO_MIRRORS="http://ftp.eenet.ee/pub/gentoo/ http://ftp.linux.ee/pub/gentoo/distfiles/ ftp://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/"
  • CHOST on meie masina arhidektuur.
  • MAKEOPTS abil seme mitme threadiga kompileeritakse.
  • USE abil mis on globaalsed kompileerimise seaded.
  • GENTOO_MIRRORS abil defineerime lähimad serverid.

Ning paigaldame masinasse värske portsude puu

# emerge --sync

Selle käsu täitmine võtab mõningase aja...aeglasema arvuti korral jõuab vahepeal kohvi teha

Lokaalid

Kuna oleme eestlased ja sooviks sellest iseärasusest tingituna täpilisi märke näha siis avame faili /etc/locale.gen

ja lisame sinna read

en_US ISO-8859-1
en_US.UTF-8 UTF-8
en_GB.UTF-8 UTF-8
et_EE ISO-8859-1
et_EE.UTF-8 UTF-8
Ajatsooni seadistamine

Et kella peale ei kobisetaks siis ajatsoon korrektseks

# echo 'TIMEZONE="Europe/Tallinn"' >> /etc/conf.d/clock
fstab seadistus

Lisame faili /etc/fstab järgmised read:

/dev/sda1       /boot     ext2    noatime            1 2
/dev/sda2       none      swap    sw                 0 0
/dev/sda3       /         ext4    noatime            0 1
/dev/sda5       /var      ext4    noatime            0 1
/dev/sda6       /home     ext4    noatime            0 1
võrgu seadistus

Avame võrgu seadistusfaili /etc/conf.d/net

config_eth0="192.168.1.20/24"
routes_eth0="default via 192.168.1.254"

Netmaski võib ka pikalt välja kirjutada

config_eth0="192.168.0.2 netmask 255.255.255.0"

Võrguseadme peale rebooti automaatseks ülestulemiseks on vajalik tekitada init skripti link

# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0

Kui arvutis on ka eth1 võrguseade olemas tuleb see samamoodi linkida. Ning seejärel tuleb muuta värskelt lingitud skript boodil starditavaks.

# rc-update add net.eth0 default
 * net.eth0 added to runlevel default

Tuleb silmas pidada, et nii tuleb kõik teised täiendavad võrguseadmed samuti lisada default runlevelile näiteks eth1 seade

PS: Gentoo üritab automaatselt ipv6 aadressi külge haarata. See on küll tore aga kui reeversit ipv6 automaatselt aadressil pole võib tekkida probleeme nt mailisaatmisega. Selleks, et ipv6 keelata, tuleb kõigepealt anda käsk

sysctl net.ipv6.conf.eth0.disable_ipv6=1

Seejärel tuleks see lisada ka /etc/sysctl.conf faili, nüüd aga

 net.ipv6.conf.eth0.disable_ipv6=1

Teine probleem võib tekkida sellega, et kuigi masinale on seadistatud staatiline ipv6 aadress kipub ta ikkagi ka rdadvi käest saama automaatse aadressi. See võib tekitada koos tulemüüriga probleeme

         inet6 addr: fe80::226:b9ff:fe3d:f576/64 Scope:Link
         inet6 addr: 2001:bb8:2001:1::131/128 Scope:Global
         inet6 addr: 2001:bb8:2001:1:226:b9ff:fe3d:f576/64 Scope:Global

Automaatse seadistuse keelamiseks eth1 seadmel

sudo sysctl -w net.ipv6.conf.eth1.autoconf=0
sudo sysctl -w net.ipv6.conf.eth1.accept_ra=0

Või kõigil võrguseadmetel

sudo sysctl -w net.ipv6.conf.all.autoconf=0
sudo sysctl -w net.ipv6.conf.all.accept_ra=0

Hiljem vaja kirjutada info ka sysctl.conf faili etc kaustas.

Teenused toimima

Et ssh stardiks ka peale booti st

 # rc-update add sshd default
  * sshd added to runlevel default

Põhimõtteliselt teeb see sama mis ln -vs /etc/init.d/sshd /etc/runlevels/default/

Olulised komponendid on syslog ja cron

# emerge syslog-ng
# rc-update add syslog-ng default
# emerge vixie-cron
# rc-update add vixie-cron default

Sama käsuga käib üldiselt kõikide teenuste Gentoos vaikimisi startima seadistamine nt rc-update add apache default jne eemaldada saab mingi teenuse käsuga näiteks rc-update del postfix

Ja siis lisaks veel abitöövahendite pakett

# emerge gentoolkit

Mis annab süsteemile lisaks equery ja glsa-checki mõlemad väga vajalikud abivahendid. Pikemalt võimalustest juhendis

http://www.gentoo.org/doc/en/gentoolkit.xml

Kerneli ehitamine

Tõmbame ja paigaldame kerneli algkoodi, koos vajalike paikadega

# emerge gentoo-sources

Siseneme kerneli algkoodi kausta

# cd /usr/src/linux

Ja käivitame kerneli pseudograafilise seadistusliidese

# make menuconfig

Kindlasti tuleb vaadata, et ext2 ja ex3 tugi oleks lubatud. Samuti tuleks tähelepanu pöörata ,et võrgu ning ketaste või kettakontrollerite draiverid oleksid sees kuna ilma nendeta on tõenäoline ,et tuleb uuesti livecd bootida ja asuda kernelit tegema, teisi komponente saab paigaldada juba kiiremini. Antud HP juhul tuli kontrollida compaq array suppordi olemasolu

# make && make modules_install

Paigaldamiseks töötab kas käsk

# make install

Selle käsu väljund peaks olema analoogne (sõltuvalt kerneli versioonist)

sh /usr/src/linux-3.10.25-gentoo/arch/x86/boot/install.sh 3.10.25-gentoo arch/x86/boot/bzImage \ 
       System.map "/boot"

Millega paigaldatakse kernel kausta /boot nimega /boot/vmlinuz-3.10.25-gentoo

kuid võib kerneli ka käsitsi paika kopeerida näiteks sarnaselt

# cp arch/x86_64/boot/bzImage /boot/kernel-versioon

või x86 arhidektuuri puhul

# arch/i386/boot/bzImage /boot/kernel-versioon

Selleks ,et kõik arvuti küljes olevad seadmed identifitseerida tuleks paigaldada lspci tarkvara selleks tuleb paigalda pciutils pakett

# emerge sys-apps/pciutils

Kasutamiseks öelda lihtsalt

# lspci
00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge (rev 80)
00:01.0 PCI bridge: VIA Technologies, Inc. VT8237/VX700 PCI Bridge
00:09.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 08)
00:0b.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 08)
00:0c.0 VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 01)
00:0f.0 IDE interface: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)
00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)

Abiks on ka lsmod käsk

# lsmod
Module                  Size  Used by
vzethdev               12288  0
simfs                   7900  1
vznetdev               17540  2
vzrst                 117652  0
vzcpt                  99748  0
tun                    14084  2  vzrst,vzcpt
vzdquota               37240  1 [permanent]
vzmon                  24968  5 vzethdev,vznetdev,vzrst,vzcpt
vzdev                   6664  4 vzethdev,vznetdev,vzdquota,vzmon
ipv6                  222988  23 vzrst,vzcpt,vzmon
ata_generic             8580  0
pata_acpi               7680  0
sata_via               10884  0
libata                133844  3 ata_generic,pata_acpi,sata_via
scsi_mod              123260  1 libata
i2c_viapro             10772  0
i2c_core               21396  1 i2c_viapro
e100                   33164  0
via_rhine              23048  0
s3fb                   19328  1
mii                     8192  2 e100,via_rhine
svgalib                11136  1 s3fb
ide_cd_mod             30852  0
cdrom                  32792  1 ide_cd_mod
pcspkr                  6272  0
vgastate               11648  1 s3fb
button                 10000  0

Kui seadmete tuvastamine käib esiti üle jõu võib alguses kasutada genkernelit http://www.gentoo.org/doc/en/genkernel.xml

Bootloaderi paigaldamine

# emerge grub

Loome faili mtab, see fail annab infot mis kettaseamed on hetkel süsteemis mounditud

# grep -v rootfs /proc/mounts > /etc/mtab

Grub2 installeerimiseks tuleb käivitada käsk (/dev/sdX, kus X on ketas, kus boot partitsioon)

# grub2-install /dev/sda

Käsk peaks tagastama lause.

Installation finished. No error reported.

Nüüd tuleb tekitada grubi konfiguratsioon

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

Ja vastus peaks olema

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.10.25-gentoo
done

Vastuse sees peab olema just loodud kernel (näite puhul 3.10.25).

Tekitame kasutaja sest Gentoos ei peeta root kasutajaga otse logimist heaks tooniks, vajalik on luua eraldi kasutaja kellega SU käsuga minna admin useriks, kasutaja peab olema seejuures nagu FreeBSDsgi wheel grupis

# useradd kasutaja
# passwd kasutaja
# usermod -G wheel kasutaja

Kontrolli tulemust, kas wheel gruppi lisamine oli edukas käsuga

# id kasutaja

Vastuses peaks sisalduma

groups=1000(kasutaja),10(wheel)

Viimaks root parool

# passwd 

unmount & reboot!

Kogu süsteemi uuendamine ja turvapaikamine

Peale installi oleks soovitatav kogu world uuesti buildida. Piisab muidugi küll kuid esialgu glsa teatatud vigadega pakettide uuendamisest kuid mõni öö võiks tõsiselt mõelda ka kõige uuesti ehitamisele.

  • enne tuleks kindlasti paigaldada gentoolkit mis tekitab revdep käsu
# emerge --update --newuse --deep world

PS: Mitmetuumsel masinal võib kompleerimist paraliseerida käsuga emerge --jobs=4 --update --deep --newuse world

Eemaldame üleliigsed ja enam mitte vajalikud paketid-sõltuvused

# emerge --depclean

Kontrollimine linkimist libide vastu (midagi võib olla vahepealse uuendamise ja puhastamisega katki läinud)

# revdep-rebuild

ning lõpuks uuendame seadistusfaile

# etc-update

Gentoo uuendamisel pigem soovitaks siiski pidevat kogu süsteemi rebuildimist vältida ning uuendada aegajalt vaid turvavigadega pakette, järgneva käsuga saab seda kontrollida

# glsa-check -l affected
[A] means this GLSA was already applied,
[U] means the system is not affected and
[N] indicates that the system might be affected.

selleks ,et gentoo iga nädalaselt saadaks teateid turvavigadega pakettidest võib lisada crontabi

40 22 * * 6 /usr/bin/emerge --sync > /dev/null && /usr/bin/glsa-check -m affected

Tarkvara haldus

Nagu juba ülal sai ära toodud toimub tarkvara paigaldus portagest kasutades emerge käsku.

Näiteks Nano editori paigaldamiseks tuleb kirjutada terminali

# emerge app-editor/nano

Kui emerge teatab ,et pakett (näiteks tavaline editor) on maskitud tuleks selle nimi lisada faili /etc/portage/package.unmask

Võib kirjutada üldisemalt

>=app-editor/nano

Aga võib määrata ka täpse versiooni, mis unmaskitakse

=dev-lang/ruby-1.9.2_rc2-r1

Ja üritada uuesti tarkvara emergeda

Kui teatatakse ,et masked by keyword nt masked by: ~x86 keyword, siis tuleb faili /etc/portage/package.keywords lisada rida

app-editor/nano **

Seda võib teha automaatselt käsurealt süntaksi alusel

# echo "category/packagename **" >> /etc/portage/package.keywords

Kui veateateks masked by: EAPI 3

Aitab portage nimelise tarkvara uuendamine

# emerge portage

Abi saab üldiselt gentoo enda bugrepordi allikatest http://bugs.gentoo.org/

Tarkvara paigaldatakse seejuures võrgust allatõmmatud algkoodist, tarkvara võimalused ja erinevad toetatud formaadid, laiendused, moodulid jms määratakse ära USE võtmega.

Näiteks samba puhul on vaikimisi use võtmeteks:

USE="acl aio client cups netapi pam readline server smbclient -addns -ads -avahi -caps -cluster -debug -doc -examples -fam -ldap -ldb -quota -smbsharemodes -smbtav2 -swat -syslog -winbind"

Kus äratoodud kõik vaikimisi paigaldusel-kompileerimisel lisatavad võtmed ja miinus märgiga võtmed, mida veel võimalik paketile lisada aga hetkel neid ei kasutata. Näiteks on sageli väga hea paigaldada tarkvara serverisse ilma selle Xorgi toeta, hoides nii ära hulga X akendega seotud sõltuvuste ja abiteekide paigaldse ning muutes süsteemi sellevõrra kergekaalulisemaks ja puhtamaks. Või siis jättes -cups võtmega samba juures paigaldamata printimise toe jääb paigaldamata ka terve hulk abitarkvara ning sõltuvusi, mis võivad hiljem süsteemi uuendamisel meid segama hakata või peita endas täiendavaid turvariske.

Neid võtmeid näeb täpsemalt ja koos kirjeldusega gentoolkiti paketti kuuluva käsuga equery

# equery u nano
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for app-editors/nano-2.3.1-r2:
 U I
 - - debug   :  Enable debug messages and assert warnings. Note that these will all be sent straight  to stderr rather than some logging facility. 
 - - justify : Enable justify/unjustify functions for text formatting.
 + + magic   :  Add magic file support (sys-apps/file) to automatically detect appropriate syntax  highlighting 
 + + minimal :  Disable all fancy features, including ones that otherwise have a dedicated USE flag  (such as spelling). 
 + + ncurses : Adds ncurses support (console display library)
 + + nls     : Adds Native Language Support (using gettext - GNU locale utilities)
 - - slang   : Adds support for the slang text display library (it's like ncurses, but different)
 - - spell   : Adds dictionary support
 + + unicode : Adds support for Unicode

Neid võtmeid saab muuta portage kaustas asuva package.use failiga, kirjutades sinna eraldi reale paketi nime ja selle taha soovitud võtmed. Soovides mõnd võtit välja lülitada tuleb kirjutada selle nimi miinusmärgiga. Näiteks soovides paigaldada postfixi mysqli, pami ja sasli toega peame kirjutama /etc/portage/package.use faili rea

mail-mta/postfix sasl pam mysql

Soovides paigaldada mysqli ilma perli toeta:

dev-db/mysql latin1 -perl

Või amavisd koos spamisassiga

mail-filter/amavisd-new spamassassin

Ja ülal näites todud samba minimaalsemate ehk vähemate sõltuvustega paigaldamiseks

net-fs/samba -acl -client -cups -pam

Jne, neid näiteid võiks tuua veel hulgi.

Soovies näha mis erinevaid tarkvara nt php versioone installida saab aitab käsk

# equery l -p dev-lang/php
[ Searching for package 'php' in 'dev-lang' among: ]
 * installed packages
 * Portage tree (/usr/portage)
[-P-] [  ] dev-lang/php-5.2.9-r2 (5)
[-P-] [  ] dev-lang/php-5.2.10 (5)
[-P-] [M~] dev-lang/php-5.2.10-r1 (5)
[-P-] [M~] dev-lang/php-5.2.10-r2 (5)
[-P-] [  ] dev-lang/php-5.2.11 (5)

M~ tähendab, et pakett on maskitud

Vaatame sõltuvuste puud

# equery depgraph =app-editors/nano-1.3.12-r1
 * Searching for nano1.3.12-r1 in app-editors ...

 * dependency graph for app-editors/nano-1.3.12-r1
 `--  app-editors/nano-1.3.12-r1  amd64 
   `--  sys-libs/ncurses-5.7-r7  (>=sys-libs/ncurses-5.2) amd64 
   `--  sys-devel/gettext-0.18.1.1-r1  (sys-devel/gettext) amd64 
   `--  sys-libs/slang-2.2.2  (sys-libs/slang) amd64 
[ app-editors/nano-1.3.12-r1 stats: packages (4), max depth (1) ]

Vaatame paketile kuuluvaid faile

# equery files nano
 * Searching for nano ...
 * Contents of app-editors/nano-2.2.5:
/bin
/bin/nano
/bin/rnano -> nano
/etc
/etc/nanorc
/usr
/usr/bin
/usr/bin/nano -> /bin/nano
/usr/share
/usr/share/doc
/usr/share/doc/nano-2.2.5
..

Vaatame paketi suurust

# equery size nano
 * app-editors/nano-2.2.5
         Total files : 162
         Total size  : 1.70 MiB

Pikemalt juttu aadressidel

http://en.gentoo-wiki.com/wiki/Gentoolkit

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3

Veel pisemat lisaseadistust

Hostname /etc/conf.d/hostname

HOSTNAME="zoo.loomaaed.ee"

ntpdate käsu saamiseks vaja paigaldada pakett ntp

# emerge ntp

Kui vaja dhcp clienti siis selleks tuleb paigaldada dhcpcd pakett

Teise ip saab võrgukaardile lisada käsuga

# ifconfig eth0:0 192.168.1.45 up

Seejuures on igasuguste võrguseadistuste juures abiks fail /etc/conf.d/net.example

süsteemi info vaatamiseks on head käsud

# grep bogo /proc/cpuinfo
bogomips        : 4617.99
bogomips        : 4592.88
bogomips        : 4592.78
bogomips        : 4592.77
bogomips        : 4588.57
bogomips        : 4588.58
bogomips        : 4588.56
bogomips        : 4588.57
# grep MemTotal /proc/meminfo
MemTotal:      8179900 kB

Paigaldame hdparm utiliidi

# emerge hdparm 

Testime ketast

# hdparm -tT /dev/sda
/dev/cciss/c0d0:
 Timing cached reads:   2762 MB in  2.00 seconds = 1381.99 MB/sec
 Timing buffered disk reads:  538 MB in  3.01 seconds = 178.47 MB/sec

inittab sisaldab mõttetuid konsoole, korjame need ära

# sed -i -e 's|^c[2-6]:2345:|#&|' /etc/inittab

TCP syncookie ja suured PIDid failis /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1
kernel.pid_max = 999999

Veel mõned suure tõenäosusega vajaminevad paketid.

  • mail-mta/postfix
  • sys-apps/less
  • sys-fs/lvm2
  • sys-fs/e2fsprogs
  • app-admin/logrotate
  • sys-apps/ethtool

Käsk pwgen tuleb paigaldada pakist pwgen

Emerge töö kiirendamiseks võib selle käivitada parameetriga --jobs=6

Eelinstalleeritud Gentoo liigutamine ühest serverist teise

Vahel võib tekkida süsteemiga ikka juhuseid kui otstarbekam on update hoitud süsteemi mitte uuesti nullist paigaldada ning seadistada vaid hoopis kopeerida ümber

Selleks vajalikud sammud

1. bootida uus arvuti mõnelt live cd'lt või rescue plaadilt, Linuxi versioon ei pea olema üldse Gentoo selleks toiminguks

2. Fdiski käsu abil tekitada kettale partitsoonid, neile omakorda failisüsteemid ja mountida nad külge /mnt/boot, /mnt/var ...

3. rsyncida info vanast serverist näiteks sobiks selleks hästi käsk

# rsync -av --numeric-ids -d -H --exclude-from=exclude / root@ip:/mnt/boot/

exclude fail sisaldas minul järgnevaid ridu, üldiselt võib sinna kirjutada kõik mounditud failisüsteemid

/var/
/srv/
/proc/
/dev/

4. fstab faili tekitamine ja vastavalt kettatähitstele ja partitsioonidele kohandamine

5. grubi initsialiseerimine, vt ülespoole gentoo installi kus õpetus kuidas seda teha

6. luua kaust /proc ja /dev ning anda MKDEV käsk, kui kasutatud mitte Gentoo live cd'd siis võib jääda dev sisu poolikuks ning kui süsteem bootides teatab näiteks unable to open initial console, siis aitab käsk

# mknod /dev/console c 5 1

Peale rebooti peaks olema valmis süsteem

Portagest eemaldatud tarkvara paigaldus

Võib ette tulla aegajalt juhtumeid kui vaja installida mingi vägagi vana tarkvaratükk, mis on portagest juba eemaldatud. Õnneks on samas selle programmi ebuild aga saadaval gentoo enda portage veebist.

Praegusel juhul tahaks siis peale panna php 5.2.x mingi versiooni, samas kui portage pakub meile vaid 5.3 ja 5.4.x versioone.

Seega siis lähme veebilehele ja hangime ebuildi:

http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/php/?hideattic=0

Sikutame selle alla

# wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/php/php-5.2.13.ebuild

Tekitame kausta PORTDIR_OVERLAY="/usr/local/portage" ja vajaliku struktuuri

# mkdir /usr/local/portage
# mkdir /usr/local/portage/dev-lang
# mkdir /usr/local/portage/dev-lang/php

PS: Kui jätta php kaust dev-lang alla tekitamata teatatakse: "ebuild does not seem to have a valid PORTDIR structure"

Lisame make.conf faili rea, et seda kausta kasutataks

PORTDIR_OVERLAY="/usr/local/portage"

Seejärel kopeerime faili php-5.2.13.ebuild faili kausta /usr/local/portage/dev-lang/php ja käivitame käsu, mis tekitab ebuildist digest faili, mis sisaldab igasugust infot portage seotud failidest vist.

# ebuild /usr/local/portage/dev-lang/php/php-5.2.17.ebuild digest

Masin ragistab natuke ja teatab, et php vajab ka teatud patche, egas midagi, googeldame neid ja tõmbame alla. Meie juhul siis saidilt http://ftp.halifax.rwth-aachen.de/gentoo/distfiles/php-patchset-5.2.17-r0.tar.bz2

# cd /usr/portage/distfiles/
# wget http://compono.cz/php-patchset-5.2.17-r0.tar.bz2

Ja proovime uuesti ebuildi käsuga digesti tekitada. Kui käsk õnnestub on meil nüüd olemas töötav port, mille võime tavaliste vahenditega peale emergeda.

# emerge --pretend =dev-lang/php-5.2.17

Jamadega jamamine

Kui emerge teatab

!!! Your current profile is deprecated and not supported anymore.
!!! Please upgrade to the following profile if possible:
       default/linux/x86/10.0/server

tuleb uuendada profiili, esiteks kirjutada käsk

# eselect profile list

ning valida pakutud jimekirjast sobivam profiil ja anda käsk

# eselect profile set <number>

Mille järel uuendatakse /etc/make.profiles linki

Mälu testimine

Mitmed ootamatud sefaultid võivad viitada mäluvigadele. Mälu testimiseks

# Emerge "sys-apps/memtest86+"

Misjärel lisada grubi seadistusele

 title=Memtest86+
 root (hd0,0)
 kernel /boot/memtest

Nb! memtesti faili nimi peab kindlasti olema memtest mitte midagi muud. Mul miskipärast muidu ei tahtnud toimida kui isegi bin laiend oli lisatud.

Lingid