Home Dokumentacje Szybka instalacja Gentoo z obsługą programowego Raid i LVM2
14 | 10 | 2019
Szybka instalacja Gentoo z obsługą programowego Raid i LVM2
Wpisany przez Xavier Neys   

Szybka instalacja Gentoo z obsługą programowego Raid i LVM2

Spis treści:

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

(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

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
  (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

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ą 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 
 Adres poczty elektronicznej jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć.
 
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

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
(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

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

(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

Chrootowanie

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...

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

(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

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

(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

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
(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

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 /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)

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

(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 
 Adres poczty elektronicznej jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć.
 
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

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

(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


Drukuj

Zaktualizowano 28 marca 2009

Oryginalna wersja tego dokumentu została po raz ostatni zaktualizowana 16 marca 2011. Jeśli chcesz pomóc w aktualizacji tego dokumentu do najnowszej wersji, skontaktuj się z Łukaszem Damentko, koordynatorem polskiego projektu tłumaczeń dokumentacji Gentoo.

Podsumowanie: Skrócony opis instalacji Gentoo z obsługą programowych macierzy dyskowych RAID oraz LVM2. Pozwala na szybką instalację systemu ze stage3 i jest przeznaczony dla zaawansowanych użytkowników.

Xavier Neys
Autor

Sven Vermeulen
Autor

Steven Wagner
Autor

Łukasz Damentko
Tłumaczenie

Kuba Bożanowski
Tłumaczenie

Donate to support our development efforts.

Copyright 2001-2011 Gentoo Foundation, Inc. Questions, Comments? Contact us.

 
Linki sponsorowane

W celu realizacji usług i funkcji na witrynach internetowych ZUI "ELPRO" stosujemy pliki cookies. Korzystanie z witryny bez zmiany ustawień dotyczących plików cookies oznacza, że będą one zapisywane w urządzeniu wyświetlającym stronę internetową. Więcej szczegółów w Polityce plików cookies.

Akceptuję pliki cookies z tej witryny.