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 |
(Poniższe polecenia umożliwią obliczenie czasu jaki zajmie instalacja Gentoo na komputerze o innych parametrach technicznych) # 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 |
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 (w razie problemów) 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 (Korzystamy z wyniku tego polecenia w celu określenia, które moduły są potrzebne) (A następnie je ładujemy) livecd root # modprobe 3w-9xxx livecd root # modprobe r8169 |
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ą 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 ... (sshd tworzy klucze, wyświetla dalsze informacje) * 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: wpisz_hasło Retype new UNIX password: wpisz_hasło 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 |
(Wpisujemy adres IP komputera, na którym instalujemy Gentoo) $ 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: wpisz_hasło |
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 (dostępne są także raid5, raid6 i raid10) 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 (Należy użyć typu fd i ustawić partyję jako uruchamialną) (W dalszej częsci opisu będziemy posługiwać się następującym podziałem:) 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 (Drugi dysk należy podzielić na partycje identycznie jak pierwszy) 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. (Poczekajmy aż wszystkie jednostki będą gotowe) 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 (Tworzymy fizyczne woluminy, w naszym przykładzie jest tylko jeden) livecd ~ # pvcreate /dev/md4 Physical volume "/dev/md4" successfully created (Tworzymy grupy woluminów, jak wyżej, tu mamy tylko jedną) livecd ~ # vgcreate vg /dev/md4 Volume group "vg" successfully created (Tworzymy logiczne woluminy) livecd ~ # lvcreate -L8G -nusr vg /dev/cdrom: open failed: Read-only file system Logical volume "usr" created (Further similar messages not displayed) 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 (Wyświetlamy grupy woluminów i woluminy logiczne) 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 |
(ext2 wystarczy dla partycji /boot) livecd ~ # mke2fs /dev/md1 (Główna partycja będzie na ext3) livecd ~ # mke2fs -j /dev/md3 (Tworzymy systemy plików na woluminach logicznych) 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 (Tworzymy i aktywujemy partycję wymiany) livecd ~ # mkswap /dev/sda2 && mkswap /dev/sdb2 livecd ~ # swapon -p 1 /dev/sda2 && swapon -p 1 /dev/sdb2 (Sprawdźmy czy wszystkie partycje wymiany używają tego samego priorytetu) 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 (Należy ustawić odpowiednie uprawnienia dla katalogów tmp) livecd gentoo # chmod 1777 /mnt/gentoo/tmp /mnt/gentoo/var/tmp |
Po pierwsze ustawiamy datę za pomocą polecenia date MMDDRRRR. W przykładzie używamy czasu UTC.
Listing 2.14: Ustawianie daty i czasu UTC |
(Sprawdzamy godzinę) livecd gentoo # date Mon Mar 6 00:14:13 UTC 2006 (Ustawiamy datę i godzinę jeśli jest to konieczne) livecd ~ # date 030600162006 (Format to MMDDggmmRRRR) 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 (Wybieramy serwer i przechodzimy do katalogu releases/x86/2008.0/stages/, wybierając z niego odpowiedni plik. Prawdopodobnie jest to stage3 dla architektury i686. Następnie rozpoczynamy pobieranie naciskając klawisz D) (Lub pobieramy plik bezpośrednio, nie szukając znajdującego się najbliżej serwera) livecd gentoo # wget http://distfiles.gentoo.org/releases/x86/2008.0/stages/stage3-i686-2008.0.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 (Wybieramy serwer, przechodzimy do katalogu snapshots/, podświetlamy portage-latest.tar.bz2 i wciskamy D żeby go pobrać) (Lub pobieramy go bezpośrednio, nie szukając znajdującego się najbliżej serwera) livecd gentoo # cd /mnt/gentoo/usr livecd usr # wget http://distfiles.gentoo.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
|
Montujemy systemy plików /proc i /dev, 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 licecd / # mount -o bind /dev /mnt/gentoo/dev 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... |
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 (Przykład dla Warszawy) 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 (Korzystamy ze zdefiniowanej nazwy hosta i sprawdzamy) livecd etc # hostname mybox livecd etc # hostname -f mybox.at.myplace |
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 (Teraz należy skonfigurować jądro, upewniając się przy tym, że obsługa RAID i LVM jest wkompilowana na stałe (nie jako moduły). To samo dotyczy obsługi dysków i systemów plików) 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 (Czas trwania zależy od wybranych opcji) real 5m5.869s user 4m32.320s sys 0m32.930s livecd linux # make modules_install livecd linux # cp arch/i386/boot/bzImage /boot/kernel |
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 (Jeśli sterownik do karty sieciowej został zbudowany jako moduł, należy dopisać go do pliku /etc/modules.autoload.d/kernel-2.6) livecd conf.d # echo r8169 >> /etc/modules.autoload.d/kernel-2.6 (Aby umożliwić łączenie się przez SSH do komputera po jego ponownym uruchomieniu) 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: wpisz_hasło Retype new UNIX password: wpisz_hasło 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 (Jeśli używamy systemu plików XFS) livecd conf.d # emerge jfsutils (Jeśli używamy systemu plików JFS) livecd conf.d # emerge reiserfsprogs (Jeśli używamy systemu plików Reiser) livecd conf.d # emerge dhcpcd (Jeśli potrzebny jest klient DHCP) livecd conf.d # emerge ppp (Dla połączeń PPPoE ADSL) |
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 |
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 /mnt/gentoo/var/tmp /mnt/gentoo/tmp /mnt/gentoo/var \ /mnt/gentoo/opt /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo/home \ /mnt/gentoo/boot /mnt/gentoo livecd / # reboot (Nie zapomnij wyjąć płyty CD z napędu) |
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 |
(Czyścimy plik known_hosts) $ nano -w ~/.ssh/known_hosts (Szukamy IP nowego komputera i kasujemy tę linię, następnie zapisujemy plik i wychodzimy z nano) (Łączymy się z tym komputerem) $ 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: wpisz_hasło |
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: wpisz_hasło Retype new UNIX password: wpisz_hasło 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 (Ilość procesorów powiększona o jeden zwykle jest tu najlepszą wartością) 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 (Portage wyświetli listę pakietów i ich flag USE. W przykładzie wyłączymy flagi ipv6 i fortran oraz włączymy unicode 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 (Ustawiamy -march na odpowiedni typ procesora) CFLAGS="-O2 -march=athlon-xp -pipe" (Dodajemy linię) FEATURES="ccache" (Tę linię dodają tylko bardzo doświadczeni użytkownicy) 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 |
(Instalacja ccache) mybox etc # emerge ccache (Przełączenie systemu na ~x86 znacznie zwiększy ilość pakietów do zaktualizowania) mybox etc # emerge -vpuD --newuse world (Należy dokładnie przyjrzeć się liście pakietów i ich flagom USE, usunąć te, które blokują instalację, jeśli takie się pojawią, a następnie przystąpić do długiego procesu aktualizacji) mybox etc # time emerge -vuD --newuse world (Przekompilowano 79 pakietów) real 180m13.276s user 121m22.905s sys 36m31.472s (Należy również przeinstalować libtool co pozwoli na uniknięcie problemów w przyszłości) mybox etc # emerge --oneshot libtool (Aktualizujemy pliki konfiguracyjne uważając, aby dispatch-conf nie nadpisało naszych ustawień) mybox etc # dispatch-conf (Po aktualizacji perla należy uruchomić skrypt perl-cleaner) mybox etc # time perl-cleaner all real 1m6.495s user 0m42.699s sys 0m10.641s (W przypadku aktualizacji pythona należy uruchomić skrypt python-updater mybox etc # python-updater |
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 (Przeglądamy listę pakietów i ich flag USE, jeśli to konieczne, dopisujemy je w make.conf mybox etc # nano -w /etc/make.conf (Dodajemy następujący wpis do flag USE) USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \ -kde -qt3 -qt4 -arts -eds -esd gnome gstreamer gtk firefox" mybox etc # time emerge gnome (Zainstalowano 326 pakietów) real 520m44.532s user 339m21.144s sys 146m22.337s |
Listing 2.43: Instalacja KDE |
mybox etc # emerge -vp kde-meta (Przeglądamy listę pakietów i ich flag USE, jeśli to konieczne, dopisujemy je w make.conf mybox etc # nano -w /etc/make.conf (Dodajemy następujący wpis do flag USE) 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 (Zainstalowano 391 pakietów) real 1171m25.318s user 851m26.393s sys 281m45.629s |
Materiał udostępniany na podstawie licencji Creative Commons - Attribution / Share Alike.