Gentoo install

Allikas: Kuutõrvaja
Redaktsioon seisuga 14. mai 2009, kell 13:39 kasutajalt Jj (arutelu | kaastöö) (Kerneli ehitamine)

Sissejuhatus

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

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)

Kuna tundub toimivat anname ip aadressid

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

ning lõpuks seadistame ruudu parooli

# sudo passwd root

Seejärel stardile ssh

# sudo /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

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/cciss/c0d0
  • 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
  • / suuruseks paar giga
  • swap piisab kahest gigast igati tänapäevastel masinatel
  • /var samamoodi kuus seitse giga
Device Boot      Start         End      Blocks   Id  System
/dev/cciss/c0d0p1               1          13      104391   83  Linux
/dev/cciss/c0d0p2              14         274     2096482+  82  Linux swap / Solaris
/dev/cciss/c0d0p3             275        1602    10667160   83  Linux
/dev/cciss/c0d0p4            1603       72937   572998387+   5  Extended
/dev/cciss/c0d0p5            1603        4205    20908566   83  Linux

Kui partitsioonid tehtud võib vajutada w millejärel partitsioonitabel kirjutatakse paika

Ext2 /boot partitsioonile

# mke2fs /dev/sda1

Ext3 juurfailisüsteemile

# mke2fs -j /dev/sda3

Tekitame swapi

# mkswap /dev/sda2

Ja aktiveerime selle

# swapon /dev/sda2 

Moundime tekkinud partitsioonid

# mount /dev/cciss/c0d0p3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/cciss/c0d0p1 /mnt/gentoo/boot
# mount /dev/cciss/c0d0p5 /mnt/gentoo/var

stage && portage pakkimine jms tööd

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

Kuna hetkel on masin 64 biti toega siis paigaldame ka operatisoonisüsteemi sellise

# cd /mnt/gentoo
# wget http://distfiles.gentoo.org/releases/amd64/2008.0/stages/stage3-amd64-2008.0.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 /mnt/gentoo /bin/bash
# env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...

Häälestamine ning lisaprogrammide paigaldus

make.conf on minul selline

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"  
FEATURES="parallel-fetch -userfetch fixpackages"
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 meile

Ning paigaldame värske portsude puu

emerge --sync

Profiili linkimine

make.profile -> ../usr/portage/profiles/default/linux/amd64/2008.0

Lokaalid

Kuna oleme eestlased ja tahaks täpilisi märke näha siis

# nano -w /etc/locale.gen

ja lisame sinna

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 paigaldamine

Et kella peale ei kobisetaks

# echo 'TIMEZONE="Europe/Tallinn"' >> /etc/conf.d/clock
fstab seadistus
/dev/cciss/c0d0p1       /boot     ext2    noatime     1 2
/dev/cciss/c0d0p2       none      swap    sw                 0 0
/dev/cciss/c0d0p3       /         ext3    noatime            0 1
/dev/cciss/c0d0p5       /var         ext3    noatime            0 1
võrgu seadistus
# nano /etc/conf.d/net
config_eth0=( "192.168.1.20/24" )
routes_eth0=( "default via 192.168.1.254" )
# rc-update add net.eth0 default
 * net.eth0 added to runlevel default
Teenused toimima
 rc-update add sshd default
  * sshd added to runlevel 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

Ja siis lisaks veel

# emerge gentoolkit

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

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

Kerneli ehitamine

emerge gentoo-sources
cd /usr/src/linux
make menuconfig

eriti 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
# cp arch/x86_64/boot/bzImage /boot/kernel

või x86 arhidektuuri puhul

# arch/i386/boot/bzImage /boot/kernel

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

Kasutada võib ka alguses genkernelit http://www.gentoo.org/doc/en/genkernel.xml

Bootloaderi paigaldamine

# emerge grub

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

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

HP puhul on vaja seadistada grub'i konfiguratsioonis device nime mapimine õigele seadmele teiste arvutite puhul võib järgneva vahele jätta

# nano /boot/grub/device.map

(hd0) /dev/cciss/c0d0

Ning stardile grub'i interaktiivse shelli kus muudame ketta bootivaks

# grub --device-map /boot/grub/device.map

Kus boot partitsioon asub

grub> root  (hd0,0)
root  (hd0,0)
 Filesystem type is ext2fs, partition type 0x83

Installime mbr'i grubi

grub> setup (hd0)

Edasi vajalik ka grubi konfiguratsiooni tekitamine

# nano /boot/grub/grub.conf
timeout 5
default 0
title  GNU/Linux
root (hd0)
kernel /boot/bzImage root=/dev/cciss!c0d0p1

Jällegi on /dev/cciss!c0d0p1 kujul asja näitamine vajalik vaid HP seadmetel

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

# passwd 

unmount & reboot!

Peale installi tegevused

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
# emerge --depclean
# revdep-rebuild

ning lõpuks uuendame seadistusfaile

# etc-update

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

>=app-editor/nano

Kui teatatakse ,et masked by keyword siis faili /etc/portage/package.keywords

=app-editor/nano **

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

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.

Veel pisemat lisaseadistust

Hostname /etc/conf.d/hostname

HOSTNAME="zoo.loomaaed.ee"

ntpdate käsu saamiseks vaja emergeda ntp

Kui vaja dhcp clienti siis selleks tuleb paigaldada dhcpcd pakett

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
# emerge hdparm 
# hdparm -tT /dev/cciss/c0d0
/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