Szybka instalacja Gentoo z obsługą programowego Raid i LVM2
1.
Wprowadzenie
Ten dokument zawiera wszystkie polecenia, których wydanie jest konieczne dla
zainstalowania Gentoo za pomocą archiwum stage3, w tym skonfigurowanie obsługi
LVM2 wraz z programową macierzą dyskową RAID. Przewodnik ten jest przeznaczony
dla zaawansowanych użytkowników. Do pobrania archiwum stage3 i drzewa Portage
konieczne będzie działające połączenie z Internetem.
Nowi użytkownicy powinni zapoznać się z Podręcznikiem Gentoo. Zawiera on
szczegółowy opis całego procesu instalacji oraz pracy z Gentoo.
Czas podany w opisie został zmierzony na komputerze PC z procesorem AMD 2000+
1.66 GHz, 512 MB pamięci RAM i dwoma dyskami SATA podłączonymi do sprzętowego
kontrolera, skonfigurowanego jako JBOD (system widzi dwa osobne dyski twarde).
Jeśli płyta główna naszego komputera posiada „sprzętowy” kontroler RAID, to
najprawdopodobniej jednak wcale nie jest on sprzętowy.
Listing 1.1: Sprawdzanie komputera |
# grep bogo /proc/cpuinfo
# grep bogo /proc/cpuinfo
bogomips : 3337.81
# hdparm -tT /dev/sda /dev/sdb
/dev/sda:
reads: 1048 MB in 2.00 seconds = 524.00 MB/sec
Timing buffered disk reads: 152 MB in 3.01 seconds = 50.50 MB/sec
/dev/sdb:
Timing cached reads: 1048 MB in 2.00 seconds = 524.00 MB/sec
Timing buffered disk reads: 152 MB in 3.01 seconds = 50.50 MB/sec
# grep MemTotal /proc/meminfo
MemTotal: 509248 kB
|
2.
Szybka instalacja
Płyty instalacyjne
Pobieramy płytę z jednego z serwerów
lustrzanych. Minimalne pliki ISO są w katalogu
releases/x86/<release>/installcd, pełne płyty instalacyjne w
releases/x86/<release>/livecd. Płyta minimalna przydaje się
tylko wtedy, gdy komputer jest podłączony do Internetu. Płyta pełna służy do
instalowania Gentoo bez dostępu do sieci, w takim przypadku należy skorzystać z
Podręcznika Gentoo
2007.0. Jeśli chodzi o ten opis, należy pobrać płytę minimalną.
Nagrywamy i uruchamiamy płytę
instalacyjną.
Uruchamianie systemu płyty instalacyjnej
Wciskamy F2 na ekranie uruchamiania, aby poznać możliwe do wybrania
opcje. Można uruchomić gentoo lub gentoo-nofb, to drugie wyłącza
framebuffer. Dodajemy opcję nox, aby nie ładowało się środowisko
graficzne. Inne opcje pozwalają na włączenie lub wyłączenie rozmaitych
dodatkowych funkcji. Jeśli wszystko pójdzie dobrze, sprzęt zostanie poprawnie
wykryty, a odpowiednie sterowniki załadowane. Jeśli jądro się nie uruchomi lub
komputer się zawiesi, należy poeksperymentować z różnymi ustawieniami.
Najbezpieczniejsza jest opcja nodetect - po wydaniu której sami ręcznie
możemy załadować potrzebne moduły.
Listing 2.1: Uruchamianie systemu płyty instalacyjnej |
Gentoo Linux Installation LiveCD http://www.gentoo.org
Enter to Boot; F1 for kernels F2 for options.
boot: gentoo-nofb
boot: gentoo-nofb nodetect
|
Opcjonalnie: ładowanie modułów
Jeśli skorzystamy z opcji nodetect, po uruchomieniu będzie konieczne
ręczne załadowanie niezbędnych do obsługi sprzętu modułów. Konieczne jest
zapewnienie połączenia z Internetem i obsługi dysków. Program lspci
umożliwia wykrycie używanego sprzętu.
Listing 2.2: Ładowanie potrzebnych modułów |
livecd root # lspci
livecd root # modprobe 3w-9xxx
livecd root # modprobe r8169
|
Konfiguracja sieci
Jeśli połączenie sieciowe jeszcze nie działa, należy skorzystać z programu
net-setup w celu jego konfiguracji. Możliwe też, że przed przystąpieniem
do konfiguracji konieczne będzie załadowanie dodatkowych modułów za pomocą
polecenia modprobe. Posiadacze ADSL powinni skorzystać z
pppoe-setup i pppoe-start. Aby zadziałało PPTP, należy edytować
/etc/ppp/chap-secrets i /etc/ppp/options.pptp, a
następnie użyć pptp <numer ip serwera>.
Połączenia bezprzewodowe konfiguruje się za pomocą iwconfig, a dopiero
potem uruchamia net-setup, ifconfig, dhcpcd oraz, jeśli to
jest konieczne, route.
Jeśli komputer znajduje się za serwerem proxy, należy za pomocą polecenia
export ustawić odpowiednio zmienne http_proxy, ftp_proxy i
RSYNC_PROXY.
Listing 2.3: Konfiguracja sieci za pomocą kreatora |
livecd root # net-setup eth0
|
Można również skonfigurować sieć ręcznie. W poniższym przykładzie przypisujemy
komputerowi adres 192.168.1.10 oraz ustawiamy 192.168.1.1 jako router i serwer
nazw.
Listing 2.4: Ręczna konfiguracja sieci |
livecd root # ifconfig eth0 192.168.1.10/24
livecd root # route add default gw 192.168.1.1
livecd root # echo nameserver 192.168.1.1 > /etc/resolv.conf
|
Płyta instalacyjna umożliwia uruchomienie serwera sshd. Możemy również
dodać konta użytkowników i uruchomić irssi (tekstowy klient IRC) oraz
przeglądać sieć za pomocą lynx i links.
Opcjonalnie: konfiguracja serwera SSH
Serwer sshd umożliwia łączenie się z komputerem, na którym instalujemy
Gentoo z innych maszyn oraz zdalną instalację.
Listing 2.5: Uruchamianie sshd |
livecd root # time /etc/init.d/sshd start
* Generating hostkey ...
* starting sshd ... [ok]
real 0m13.688s
user 0m9.420s
sys 0m0.090s
|
Następnie ustawiamy hasło roota na płycie instalacyjnej, co umożliwi łączenie
się z innego komputera. Ostrzegamy, że umożliwianie takich połączeń w
normalnych warunkach jest bardzo niebezpieczne. Jeśli sieć nie jest bezpieczna,
należy ustawić długie i mocne hasło oraz nie korzystać z takich opcji w
przyszłości. Serwer SSH zostanie wyłączony po ponownym uruchomieniu komputera.
Listing 2.6: Ustawianie hasła roota |
livecd root # passwd
New UNIX password:
Retype new UNIX password:
passwd: password updated successfully
|
Teraz można uruchomić terminal na drugim komputerze, połączyć się z nową
maszyną i kontynuować instalację zdalnie, przeklejając polecenia z tego opisu.
Listing 2.7: Łączenie z innego komputera |
$ ssh root@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts.
Password:
|
Przygotowywanie dysków
Teraz należy załadować moduły RAID i LVM2.
Listing 2.8: Ładowanie modułów RAID i LVM2 |
livecd ~ # modprobe raid0
livecd ~ # modprobe raid1
livecd ~ # modprobe dm-mod
|
Dzielimy dysk na partycje za pomocą programu fdisk lub cfdisk.
Prawdopodobne nazwy urządzeń twardego dysku to /dev/sda i
/dev/sdb dla dysków SATA i SCSI lub /dev/hda i
/dev/hdb dla dysków IDE. W niniejszym dokumencie zostanie użyty
następujący układ:
|
/dev/sda |
/dev/sdb |
Typ |
| /dev/md1 |
/boot |
/boot |
Raid-1 (mirroring) |
|
swap |
swap |
Normalne partycje |
| /dev/md3 |
/ |
/ |
Raid-1 (mirroring) |
| /dev/md4 |
LVM2 volumes |
Raid-0 (przeplatanie) |
Ważne:
Partycja, z której będzie uruchamiany system nie może być przeplatana. Nie może
być typu raid-5 lub raid-0.
|
Uwaga:
Z jednej strony, chcąc uzyskać większą stabilność, warto zastanowić się nad
użyciem raid-1 (lub nawet raid-5) na partycji (partycjach) wymiany. Wówczas
awaria dysku nie uszkodzi danych wymiany i nie spowoduje awarii aplikacji,
które z nich korzystają. Z drugiej strony, chcąc uzyskać większą wydajność,
można pozwolić kernelowi na użycie osobnych partycji wymiany, ponieważ i tak
domyślnie dane między nimi będą przeplatane.
|
Listing 2.9: Tworzenie partycji |
livecd ~ # fdisk /dev/sda
livecd ~ # fdisk -l /dev/sda
Disk /dev/sda: 299.9 GB, 299989204992 bytes
255 heads, 63 sectors/track, 36471 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 11 88326 fd Linux raid autodetect
/dev/sda2 12 61 401625 82 Linux swap / Solaris
/dev/sda3 62 311 2008125 fd Linux raid autodetect
/dev/sda4 312 36471 290455200 fd Linux raid autodetect
livecd ~ # fdisk /dev/sdb
|
Następnie należy stworzyć węzły urządzeń RAID i same urządzenia:
Listing 2.10: Tworzenie węzłów urządzeń i urządzeń |
livecd ~ # mknod /dev/md1 b 9 1
livecd ~ # mknod /dev/md3 b 9 3
livecd ~ # mknod /dev/md4 b 9 4
livecd ~ # mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm: array /dev/md1 started.
livecd ~ # mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
mdadm: array /dev/md3 started.
livecd ~ # mdadm --create /dev/md4 --level=0 --raid-devices=2 /dev/sda4 /dev/sdb4
mdadm: array /dev/md4 started.
livecd ~ # cat /proc/mdstat
Personalities : [raid0] [raid1]
md4 : active raid0 sdb4[1] sda4[0]
581006592 blocks 64k chunks
md3 : active raid1 sdb3[1] sda3[0]
1959808 blocks [2/2] [UU]
md1 : active raid1 sdb1[1] sda1[0]
88256 blocks [2/2] [UU]
|
Następnie stwórzmy woluminy LVM2 na /dev/md4. Następujący układ
jest jedynie przykładowy:
| Directory |
Size |
File system |
| /usr |
8 GB |
ext3 |
| /usr/portage |
2 GB |
ext2, small block size, many inodes |
| /usr/portage/distfiles |
4 GB |
ext2, large bock size, less inodes |
| /home |
10 GB |
ext3 |
| /opt |
4 GB |
ext3 |
| /var |
4 GB |
ext3 |
| /var/tmp |
6 GB |
ext2 |
| /tmp |
2 GB |
ext2 |
Listing 2.11: Tworzenie woluminów LVM2 |
livecd ~ # vgscan
Reading all physical volumes. This may take a while...
No volume groups found
livecd ~ # vgchange -a y
No volume groups found
livecd ~ # pvcreate /dev/md4
Physical volume "/dev/md4" successfully created
livecd ~ # vgcreate vg /dev/md4
Volume group "vg" successfully created
livecd ~ # lvcreate -L8G -nusr vg
/dev/cdrom: open failed: Read-only file system
Logical volume "usr" created
livecd ~ # lvcreate -L2G -nportage vg
livecd ~ # lvcreate -L4G -ndistfiles vg
livecd ~ # lvcreate -L10G -nhome vg
livecd ~ # lvcreate -L4G -nopt vg
livecd ~ # lvcreate -L4G -nvar vg
livecd ~ # lvcreate -L6G -nvartmp vg
livecd ~ # lvcreate -L2G -ntmp vg
livecd ~ # vgs
VG #PV #LV #SN Attr VSize VFree
vg 1 8 0 wz--n 554.09G 514.09G
livecd ~ # lvs
LV VG Attr LSize Origin Snap% Move Copy%
distfiles vg -wi-a- 4.00G
home vg -wi-a- 10.00G
opt vg -wi-a- 4.00G
portage vg -wi-a- 2.00G
tmp vg -wi-a- 2.00G
usr vg -wi-a- 8.00G
var vg -wi-a- 4.00G
vartmp vg -wi-a- 6.00G
|
Następnie za pomocą mke2fs, mke2fs -j, mkreiserfs,
mkfs.xfs lub mkfs.jfs tworzymy systemy plików na partycjach
linuksowych. Aktywujemy też partycję wymiany za pomocą poleceń mkswap i
swapon.
Listing 2.12: Tworzenie systemów plików i aktywowanie partycji wymiany |
livecd ~ # mke2fs /dev/md1
livecd ~ # mke2fs -j /dev/md3
livecd ~ # mke2fs -b 4096 -T largefile /dev/vg/distfiles
livecd ~ # mke2fs -j /dev/vg/home
livecd ~ # mke2fs -j /dev/vg/opt
livecd ~ # mke2fs -b 1024 -N 200000 /dev/vg/portage
livecd ~ # mke2fs /dev/vg/tmp
livecd ~ # mke2fs -j /dev/vg/usr
livecd ~ # mke2fs -j /dev/vg/var
livecd ~ # mke2fs /dev/vg/vartmp
livecd ~ # mkswap /dev/sda2 && mkswap /dev/sdb2
livecd ~ # swapon -p 1 /dev/sda2 && swapon -p 1 /dev/sdb2
livecd ~ # swapon -v -s
Filename Type Size Used Priority
/dev/sda2 partition 401616 0 1
/dev/sdb2 partition 401616 0 1
|
Montujemy główną partycję w katalogu /mnt/gentoo. W razie potrzeby
tworzymy katalogi dla dodatkowych partycji i montujemy je również.
Listing 2.13: Montowanie systemów plików |
livecd ~ # mount /dev/md3 /mnt/gentoo
livecd ~ # cd /mnt/gentoo
livecd gentoo # mkdir boot home usr opt var tmp
livecd gentoo # mount /dev/md1 /mnt/gentoo/boot
livecd gentoo # mount /dev/vg/usr /mnt/gentoo/usr
livecd gentoo # mount /dev/vg/home /mnt/gentoo/home
livecd gentoo # mount /dev/vg/opt /mnt/gentoo/opt
livecd gentoo # mount /dev/vg/tmp /mnt/gentoo/tmp
livecd gentoo # mount /dev/vg/var /mnt/gentoo/var
livecd gentoo # mkdir usr/portage var/tmp
livecd gentoo # mount /dev/vg/vartmp /mnt/gentoo/var/tmp
livecd gentoo # mount /dev/vg/portage /mnt/gentoo/usr/portage
livecd gentoo # mkdir usr/portage/distfiles
livecd gentoo # mount /dev/vg/distfiles /mnt/gentoo/usr/portage/distfiles
livecd gentoo # chmod 1777 /mnt/gentoo/tmp /mnt/gentoo/var/tmp
|
Rozpakowywanie archiwum stage
Po pierwsze ustawiamy datę za pomocą polecenia date MMDDRRRR. W
przykładzie używamy czasu UTC.
Listing 2.14: Ustawianie daty i czasu UTC |
livecd gentoo # date
Mon Mar 6 00:14:13 UTC 2006
livecd ~ # date 030600162006
Mon Mar 6 00:16:00 UTC 2006
|
Następnie pobieramy archiwum stage z jednego z serwerów lustrzanych. Przechodzimy do
/mnt/gentoo i rozpakowujemy je poleceniem tar xjpf <plik
stage3>.
Listing 2.15: Pobieranie archiwum stage3 |
livecd gentoo # links http://www.gentoo.org/main/en/mirrors.xml
livecd gentoo # wget ftp://gentoo.osuosl.org/pub/gentoo/releases/x86/2008.0_beta1/stage3-i686*tar.bz2
|
Listing 2.16: Rozpakowujemy archiwum |
livecd gentoo # time tar xjpf stage3*
real 1m14.157s
user 1m2.920s
sys 0m7.530s
|
Następnie instalujemy drzewo Portage. Postępujemy z nim tak jak ze stage3.
Wybieramy serwer lustrzany, pobieramy
plik i rozpakowujemy.
Listing 2.17: Pobieranie drzewa Portage |
livecd gentoo # cd /mnt/gentoo/usr
livecd usr # links http://www.gentoo.org/main/en/mirrors.xml
livecd gentoo # cd /mnt/gentoo/usr
livecd usr # wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2
|
Listing 2.18: Rozpakowujemy archiwum z drzewem Portage |
livecd usr # time tar xjf portage-lat*
real 0m40.523s
user 0m28.280s
sys 0m8.240s
|
Chrootowanie
Montujemy system plików /proc, kopiujemy do nowego systemu plik
/etc/resolv.conf i chrootujemy się do instalowanego systemu.
Listing 2.19: Chrootowanie |
livecd usr # cd /
livecd / # mount -t proc proc /mnt/gentoo/proc
livecd / # cp -L /etc/resolv.conf /mnt/gentoo/etc/
livecd / # chroot /mnt/gentoo /bin/bash
livecd / # env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...
|
Konfiguracja strefy czasowej
Ustawiamy informację o swojej strefie czasowej używając właściwej ścieżki z
katalogu /usr/share/zoneinfo.
Listing 2.20: Ustawienie strefy czasowej |
livecd / # ls /usr/share/zoneinfo
livecd / # cp /usr/share/zoneinfo/Europe/Warsaw /etc/localtime
livecd / # date
Wed Mar 8 00:46:05 CET 2006
|
Konfiguracja nazw hosta i domeny
Ustawiamy nazwę hosta w plikach /etc/conf.d/hostname i
/etc/hosts. W poniższym przykładzie skorzystamy z mybox
jako nazwy hosta oraz z at.myplace jako domeny. Można edytować pliki w
nano lub skorzystać z poniższych poleceń:
Listing 2.21: Ustawianie nazwy hosta i domeny |
livecd / # cd /etc
livecd etc # echo "127.0.0.1 mybox.at.myplace mybox localhost" > hosts
livecd etc # sed -i -e 's/HOSTNAME.*/HOSTNAME="mybox"/' conf.d/hostname
livecd etc # hostname mybox
livecd etc # hostname -f
mybox.at.myplace
|
Konfiguracja jądra
Instalujemy źródła jądra (zwykle gentoo-sources kompilujemy i kopiujemy
plik arch/i386/boot/bzImage do katalogu /boot.
Listing 2.22: Instalacja jądra |
livecd etc # time emerge gentoo-sources
real 3m3.110s
user 1m2.320s
sys 0m34.990s
livecd etc # cd /usr/src/linux
livecd linux # make menuconfig
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
<*> RAID support
< > Linear (append) mode (NEW)
<*> RAID-0 (striping) mode
<*> RAID-1 (mirroring) mode
< > RAID-10 (mirrored striping) mode (EXPERIMENTAL) (NEW)
< > RAID-4/RAID-5 mode (NEW)
< > RAID-6 mode (NEW)
< > Multipath I/O support (NEW)
< > Faulty test module for MD (NEW)
<*> Device mapper support
< > Crypt target support (NEW)
< > Snapshot target (EXPERIMENTAL) (NEW)
< > Mirror target (EXPERIMENTAL) (NEW)
< > Zero target (EXPERIMENTAL) (NEW)
< > Multipath target (EXPERIMENTAL) (NEW)
< > Bad Block Relocation Device Target (EXPERIMENTAL) (NEW)
livecd linux # time make -j2
real 5m5.869s
user 4m32.320s
sys 0m32.930s
livecd linux # make modules_install
livecd linux # cp arch/i386/boot/bzImage /boot/kernel
|
Konfiguracja systemu
Edytujemy plik /etc/fstab i zamieniamy wpisy BOOT,
ROOT i SWAP nazwami konkretnych partycji. Należy dwa razy
sprawdzić czy wpisy odpowiadają założonym przed chwilą partycjom i systemom
plików.
Listing 2.23: Przykładowy plik fstab |
livecd linux # cd /etc
livecd etc # nano -w fstab
/dev/md1 /boot ext2 noauto,noatime 1 2
/dev/md3 / ext3 noatime 0 1
/dev/sda2 none swap sw,pri=1 0 0
/dev/sdb2 none swap sw,pri=1 0 0
/dev/vg/usr /usr ext3 noatime 1 2
/dev/vg/portage /usr/portage ext2 noatime 1 2
/dev/vg/distfiles /usr/portage/distfiles ext2 noatime 1 2
/dev/vg/home /home ext3 noatime 1 2
/dev/vg/opt /opt ext3 noatime 1 2
/dev/vg/tmp /tmp ext2 noatime 1 2
/dev/vg/var /var ext3 noatime 1 2
/dev/vg/vartmp /var/tmp ext2 noatime 1 2
|
Następnie konfigurujemy połączenie sieciowe w pliku
/etc/conf.d/net. Dodajemy skrypt startowy net.eth0 na
domyślny (default) poziom uruchomieniowy. Jeśli mamy kilka kart sieciowych,
podlinkowujemy je do skryptu net.eth0 i dodajemy na domyślny poziom
uruchomieniowy. Następnie edytujemy plik /etc/conf.d/net za pomocą
nano lub wpisujemy następujące polecenia:
Listing 2.24: Konfiguracja sieci |
livecd etc # cd conf.d
livecd conf.d # echo 'config_eth0=( "192.168.1.10/24" )' >> net
livecd conf.d # echo 'routes_eth0=( "default via 192.168.1.1" )' >> net
livecd conf.d # rc-update add net.eth0 default
livecd conf.d # echo r8169 >> /etc/modules.autoload.d/kernel-2.6
livecd conf.d # rc-update add sshd default
|
Uwaga:
Jeśli jest konieczne wsparcie dla PCMCIA, należy zainstalować
pcmciautils.
|
Ustawiamy hasło roota za pomocą polecenia passwd.
Listing 2.25: Ustawianie hasła roota |
livecd conf.d # passwd
New UNIX password:
Retype new UNIX password:
passwd: password updated successfully
|
Następnie ustawiamy odpowiednią strefę czasową w pliku
/etc/conf.d/clock.
Listing 2.26: Edycja /etc/conf.d/clock |
livecd conf.d # nano -w /etc/conf.d/clock
TIMEZONE="Europe/Warsaw"
|
Sprawdzamy konfigurację systemu w /etc/rc.conf,
/etc/conf.d/rc, /etc/conf.d/keymaps i zmieniamy
wpisy tak, aby odpowiadały żądanym ustawieniom.
Listing 2.27: Opcjonalnie: konfiguracja systemu |
livecd conf.d # nano -w /etc/rc.conf
livecd conf.d # nano -w /etc/conf.d/rc
livecd conf.d # nano -w /etc/conf.d/keymaps
|
Instalowanie narzędzi systemowych
Instalujemy narzędzia pomocnicze RAID i LVM2.
Listing 2.28: Instalowanie narzędzi RAID i LVM2 |
livecd conf.d # emerge mdadm lvm2
|
Teraz instalujemy program logującegy, np. syslog-ng oraz demona
cron, np. vixie-cron. Oba dodajemy do poziomu uruchomieniowego.
Uwaga:
Demony cron są zależne od MTA. W związku z tym jako zależność zostanie
zainstalowane mail-mta/ssmtp. Można użyć bardziej zaawansowanego MTA
instalując go przed instalacją demona cron. Jeśli nie jest potrzebny, zostajemy
przy domyślnym wyborze.
|
Listing 2.29: Instalacja loggera i demona cron |
livecd conf.d # time emerge syslog-ng vixie-cron
real 1m54.099s
user 1m2.630s
sys 0m34.620s
livecd conf.d # rc-update add syslog-ng default
livecd conf.d # rc-update add vixie-cron default
|
Następnie instalujemy niezbędne narzędzia systemowe (xfsprogs,
reiserfsprogs lub jfsutils) oraz programy do obsługi sieci
(dhcpcd lub ppp).
Listing 2.30: Instalowanie dodatkowych narzędzi systemowych |
livecd conf.d # emerge xfsprogs
livecd conf.d # emerge jfsutils
livecd conf.d # emerge reiserfsprogs
livecd conf.d # emerge dhcpcd
livecd conf.d # emerge ppp
|
Konfiguracja programu ładującego
Instalujemy program grub i konfigurujemy go.
Listing 2.31: Instalacja i konfiguracja GRUB |
livecd conf.d # time emerge grub
real 1m4.634s
user 0m39.460s
sys 0m15.280s
livecd conf.d # nano -w /boot/grub/grub.conf
|
Listing 2.32: Przykładowy plik grub.conf |
default 0
timeout 10
title Gentoo
root (hd0,0)
kernel /boot/kernel root=/dev/md3
|
Listing 2.33: Instalacja gruba na obu dyskach |
livecd conf.d # grub
Probing devices to guess BIOS drives. This may take a long time.
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/
grub/menu.lst"... succeeded
Done.
grub> root (hd1,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd1)
grub> quit
|
Ponowne uruchamianie systemu
Wychodzimy z chroota, odmontowujemy systemy plików i ponownie uruchamiamy
komputer:
Listing 2.34: Ponowne uruchomienie komputera |
livecd conf.d # exit
livecd / # umount /mnt/gentoo/usr/portage/distfiles /mnt/gentoo/usr/portage /mnt/gentoo/usr
livecd / # umount /mnt/gentoo/var/tmp /mnt/gentoo/tmp /mnt/gentoo/var /mnt/gentoo/opt
livecd / # umount /mnt/gentoo/proc /mnt/gentoo/home /mnt/gentoo/boot /mnt/gentoo
livecd / # reboot
|
Finalizowanie instalacji
Uwaga:
Całkowity czas pomiędzy wyświetleniem znaku zachęty po raz pierwszy a
uruchomieniem nowego systemu wyniósł 00:42:31 czyli mniej niż godzinę. A
przecież ten czas został wydłużony przez pobieranie wielu dużych plików jak
stage3, drzewo Portage i kilka dużych pakietów. Poza tym w czas instalacji
wliczona była również konfiguracja jądra.
|
Logujemy się jako root, a następnie dodajemy jednego lub kilku
użytkowników do codziennej pracy za pomocą polecenia useradd.
Listing 2.35: Łączenie się do komputera, na którym zostało zainstalowane Gentoo |
$ nano -w ~/.ssh/known_hosts
$ ssh root@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts.
Password:
|
Listing 2.36: Dodawanie konta użytkownika |
mybox ~ # adduser -g users -G lp,wheel,audio,cdrom,portage,cron -m mkay
mybox ~ # passwd mkay
New UNIX password:
Retype new UNIX password:
passwd: password updated successfully
|
Ostatnie poprawki w konfiguracji
Wybieramy najlepsze serwery lustrzane i dodajemy odpowiednio do zmiennych
SYNC i GENTOO_MIRRORS w pliku /etc/make.conf - lub
korzystamy z programu mirrorselect, który zrobi to za nas. Można też
ustawić ilość równoległych procesów kompilacji.
Listing 2.37: Praca z mirrorselect i ustawianie MAKEOPTS |
mybox ~ # emerge mirrorselect
mybox ~ # mirrorselect -i -o >> /etc/make.conf
mybox ~ # mirrorselect -i -r -o >> /etc/make.conf
mybox ~ # echo 'MAKEOPTS="-j2"' >> /etc/make.conf
|
Następnie ustawiamy flagi USE. W tym celu uruchamiamy emerge -vpe world,
aby przejrzeć listę zainstalowanych pakietów oraz używanych przez nich flag
USE. Następnie dopisujemy wybrane flagi w pliku /etc/make.conf
lub wpisujemy poniższe polecenia:
Listing 2.38: Podgląd flag USE oraz ich ustawianie |
mybox ~ # emerge -vpe world
mybox ~ # echo 'USE="nptl nptlonly -ipv6 -fortran unicode"' >> /etc/make.conf
|
Najnowsze wersje glibc do zdefiniowania lokalizacji używają pliku
/etc/locale.gen.
Listing 2.39: Wybór lokalizacji |
mybox ~ # cd /etc
mybox etc # nano -w locale.gen
mybox etc # locale-gen
|
Na koniec warto jeszcze zmienić CFLAGS w pliku
/etc/make.conf w celu zoptymalizowania kompilacji pakietów. Zbytni
zapał w dostrajaniu tej zmiennej i dodawanie zbyt wielu flag zwykle kończy się
zepsuciem systemu, dlatego zalecamy rozwagę. Dobrym rozwiązaniem jest zwykle
wpisanie typu procesora do opcji march i dopisanie flag -O2
-pipe.
W tym momencie można też przełączyć system do wersji niestabilnej -
~x86. Jest to zdecydowanie opcja dla bardzo doświadczonych użytkowników
Gentoo, którzy potrafią sobie poradzić z naprawą zepsutego ebuildu czy pakietu.
Jeśli system ma pozostać w wersji stabilnej, nie należy dodawać zmiennej
ACCEPT_KEYWORDS. Dobrym pomysłem jest dodanie wpisu
FEATURES="ccache".
Listing 2.40: Ostatnie zmiany w make.conf |
mybox etc # nano -w make.conf
CFLAGS="-O2 -march=athlon-xp -pipe"
FEATURES="ccache"
ACCEPT_KEYWORDS="~x86"
|
W tym momencie można dwukrotnie przebudować cały system, aby w pełni skorzystać
ze wszelkich dokonanych w konfiguracji zmian. Zajmie to bardzo dużo czasu i da
niewiele korzyści. W związku z tym wiele osób decyduje się na zignorowanie tego
kroku i pozwolonie systemowi na stopniową przebudowę w miarę codziennych
aktualizacji. Ponowna kompilacja na tym etapie uczyniłaby jednak system
bardziej spójnym. Plusy przebudowy całego systemu zostały dokładnie omówione w
tekście Aktualizacja GCC w Gentoo.
Przebudowa pakietów, których nowsze wersje pojawiły się od czasu wydania Gentoo
oraz tych, którym zmieniły się flagi USE zajmie mnóstwo czasu. Czasami może
pojawić się informacja o blokadzie, która uniemożliwia aktualizację pakietów.
Należy poszukać wtedy wpisów "[blocks B ]" w wyjściu
polecenia emerge -vpuD --newuse world i usunąć blokujące pakiety.
Listing 2.41: Aktualizacja systemu |
mybox etc # emerge ccache
mybox etc # emerge -vpuD --newuse world
mybox etc # time emerge -vuD --newuse world
real 180m13.276s
user 121m22.905s
sys 36m31.472s
mybox etc # emerge --oneshot libtool
mybox etc # dispatch-conf
mybox etc # time perl-cleaner all
real 1m6.495s
user 0m42.699s
sys 0m10.641s
mybox etc # python-updater
|
Co dalej?
W zależności od przeznaczenia komputera, na którym zainstalowaliśmy właśnie
Gentoo możemy teraz przystąpić do instalacji oprogramowania serwerowego lub
biurkowego. W przykładzie zmierzymy czasy emerge gnome i emerge
kde na tym samym komputerze, na którym instalowaliśmy system.
Warto przejrzeć dokumentację Gentoo, gdzie znajdują
się informacje o instalacji i konfiguracji wielu różnych pakietów.
Ważne:
Poniższe polecenia to tylko przykład, nie jest to już część zalecanej
konfiguracji.
|
Listing 2.42: Instalacja GNOME |
mybox etc # emerge -vp gnome
mybox etc # nano -w /etc/make.conf
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \
-kde -qt3 -qt4 -arts -eds -esd gnome gstreamer gtk firefox"
mybox etc # time emerge gnome
real 520m44.532s
user 339m21.144s
sys 146m22.337s
|
Listing 2.43: Instalacja KDE |
mybox etc # emerge -vp kde-meta
mybox etc # nano -w /etc/make.conf
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \
kde qt3 qt4 -arts -eds -esd -gnome -gstreamer -gtk -firefox"
mybox etc # time emerge kde-meta
real 1171m25.318s
user 851m26.393s
sys 281m45.629s
|
Zawartość tego dokumentu jest rozpowszechniana na podstawie licencji Creative Commons -
Attribution / Share Alike.
|