Guide d'installation rapide de Gentoo Linux x86 avec raid logiciel et LVM2

Xavier Neys  Auteur
Sven Vermeulen  Auteur
Steven Wagner  Auteur
Rémy Mainil  Traducteur
Marion Agé  Traducteur

Dernière mise à jour le 4 octobre 2009

1.  Introduction

Ce guide contient toutes les commandes nécessaires à une installation d'un stage3 de Gentoo avec LVM2 et RAID logiciel. Ce guide s'adresse à des utilisateurs expérimentés. Vous avez besoin d'une connexion à Internet pour télécharger le stage3 et l'instantané de Portage.

Les nouveaux utilisateurs devraient plutôt lire le Manuel qui donne un meilleur aperçu du processus d'installation.

Les commandes nécessitant plus de quelques secondes pour être réalisées sont suivies du temps nécessaire à leur exécution. Ces commandes ont été chronométrées sur un AMD 2000 1.66 Ghz avec 512 Mo de RAM et deux disques SATA connectés à un contrôleur matériel configuré comme JBOD (c'est-à-dire que deux disques durs séparés sont vus par Gentoo). Si vous disposez d'un contrôleur « matériel » sur votre carte mère, ce n'est probablement pas un contrôleur matériel.

Exemple de code 1.1 : Caractéristiques de la machine de test

(Les caractéristiques suivantes et les informations de chronométrage devraient
vous aider à estimer le temps nécessaire pour terminer votre installation.)

# grep bogo /proc/cpuinfo
 bogomips       : 3337.81

# hdparm -tT /dev/sda /dev/sdb
/dev/sda:
 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

/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.  Guide d'installation rapide

Média pour l'installation

Téléchargez un CD à partir de l'un de nos miroirs. Vous trouverez l'image ISO du CD d'installation minimal dans releases/x86/current-iso/. Le CD d'installation minimal ne sert que pour l'installation par le biais d'Internet. Ce guide utilise le CD d'installation minimal.

Gravez puis amorcez le CD.

Amorçage du CD

Appuyez sur F2lorsque s'affiche l'écran de démarrage afin de voir quelles sont les options de démarrage disponibles. Vous pouvez soit démarrer gentoo soit gentoo-nofb, ce dernier désactive le framebuffer. Si vous avez démarré depuis le LiveCD, n'oubliez pas d'ajouter l'option nox pour empêcher l'environnement graphique X de démarrer. De nombreuses options activent ou désactivent différentes fonctionnalités. Si tout se passe bien, votre matériel sera détecté et tous les modules seront chargés. Si le noyau ne parvient pas à démarrer proprement ou si votre ordinateur plante durant la procédure de démarrage, vous devrez peut-être tester différentes configurations. La façon la plus sûre de procéder est probablement d'utiliser l'option nodetect et ensuite de charger manuellement les modules requis.

Exemple de code 2.1 : Démarrer avec le CD d'installation minimal

Gentoo Linux Installation LiveCD                     http://www.gentoo.org
Enter to Boot; F1 for kernels  F2 for options.
boot: gentoo-nofb
(ou en cas de problème)
boot: gentoo-nofb nodetect

Facultatif : chargement de modules

Si vous utilisez l'option nodetect, une fois démarré, chargez les modules nécessaires. Vous devez activer une connexion réseau et avoir accès à vos disques. La commande lspci peut vous aider à identifier votre matériel.

Exemple de code 2.2 : Charger les modules nécessaires

livecd root # lspci
(Utilisez la sortie de la commande lspci pour identifier les modules nécessaires)

(Ceci est un exemple, adaptez-le à votre matériel)
livecd root # modprobe 3w-9xxx
livecd root # modprobe r8169

Configuration du réseau

Si votre réseau ne fonctionne pas déjà, vous pouvez utiliser net-setup pour le configurer. Vous devrez peut-être utiliser modprobe pour charger le support pour votre carte réseau avant de procéder à la configuration. Si vous avez une connexion ADSL, utilisez pppoe-setup et pppoe-start. Pour le support PPTP, éditez d'abord /etc/ppp/chap-secrets et /etc/ppp/options.pptp, puis exécutez pptp <server ip>.

Pour l'accès par réseau sans fil, utilisez iwconfig pour régler les paramètres, puis lancez net-setup à nouveau ou alors exécutez manuellement ifconfig, dhcpcd et/ou route.

Si vous êtes situé derrière un serveur mandataire (« proxy »), n'oubliez pas de préparer votre système avec export http_proxy, ftp_proxy et RSYNC_PROXY.

Exemple de code 2.3 : Guide pour configurer le réseau

livecd root # net-setup eth0

Alternativement, vous pouvez démarrer la connexion réseau manuellement. L'exemple suivant attribue l'adresse IP 192.168.1.10 à votre PC et définit 192.168.1.1 comme votre routeur et serveur de noms.

Exemple de code 2.4 : Configurer manuellement une connexion réseau

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

Le CD d'installation vous permet de démarrer un serveur sshd, d'ajouter des utilisateurs supplémentaires, d'exécuter irssi (un logiciel de chat en ligne de commande) ainsi que de naviguer sur le web avec links.

Facultatif : vous connecter à votre nouveau PC avec ssh

Le dispositif le plus intéressant est évidemment sshd. Vous pouvez le démarrer et vous y connecter depuis une autre machine et ainsi faire un copier-coller des commandes depuis ce guide.

Exemple de code 2.5 : Démarrer sshd

livecd root # time /etc/init.d/sshd start
 * Generating hostkey ...
(sshd génère une clé et affiche différentes informations)
 * starting sshd ...                            [ok]

 real   0m13.688s
 user   0m9.420s
 sys    0m0.090s

Maintenant, initialisez le mot de passe root sur le liveCD de façon à pouvoir vous y connecter depuis un autre PC. Notez qu'autoriser root à se connecter via ssh n'est pas recommandé en temps normal. Si vous n'avez pas confiance en votre réseau local, utilisez un mot de passe long et complexe, vous ne devriez l'utiliser qu'une seule fois car il disparaîtra après votre premier redémarrage.

Exemple de code 2.6 : Initialiser le mot de passe root

livecd root # passwd
New UNIX password: Saisissez un mot de passe
Retype new UNIX password: Saississez à nouveau le mot de passe
passwd: password updated successfully

Maintenant, vous pouvez démarrer un terminal depuis un autre PC et vous connecter à votre nouveau PC et ainsi suivre le reste de ce guide dans une autre fenêtre et faire des copier/coller des commandes.

Exemple de code 2.7 : Vous connecter à votre nouveau PC depuis un autre PC

(Utilisez l'adresse IP de votre nouveau PC.)
$ 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: Saississez le mot de passe

Préparer les disques

Chargez les modules pour le RAID logiciel et LVM2.

Exemple de code 2.8 : Charger les modules pour le RAID logiciel et LVM2

livecd ~ # modprobe raid0
livecd ~ # modprobe raid1
(raid5, raid6 et raid10 sont également disponibles.)

livecd ~ # modprobe dm-mod

Utilisez fdisk ou cfdisk pour créer vos partitions. Les noms des périphériques sont généralement /dev/sda et /dev/sdb pour des disques SATA ou SCSI, ou /dev/hda et /dev/hdb pour des disques IDE. Le schéma suivant est utilisé dans ce guide :

/dev/sda /dev/sdb Type
/dev/md1 /boot /boot Raid-1 (mirroring)
swap swap Partitions normales
/dev/md3 / / Raid-1 (mirroring)
/dev/md4 LVM2 volumes Raid-0 (striped)

Important : La partition depuis laquelle vous démarrez ne peut pas être du type striped. Elle ne peut donc pas être de type raid-5 ou raid-0.

Note : D'une part, si vous souhaitez plus de stabilité, préférez l'utilisation du mode raid-1 (ou même raid-5) pour vos partitions d'échange de façon à ce qu'un plantage du disque ne corrompe pas votre espace d'échange, ce qui évitera de planter les applications qui l'utilisent. D'autre part, si vous voulez plus de performances, laissez simplement le noyau utiliser des partitions d'échange séparées comme il le fait par défaut en mode striping.

Exemple de code 2.9 : Créer les partitions

livecd ~ # fdisk /dev/sda
(Vérifiez que vous utilisez le type fd et que l'option d'amorçage est
activée.)

(Le schéma de partitions suivant est utilisé pour le restant de ce guide.)
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

(Partitionnez le second disque comme le premier.)
livecd ~ # fdisk /dev/sdb

Ensuite, créez les nœuds des périphériques et les périphériques RAID :

Exemple de code 2.10 : Créer les nœuds des périphériques et les périphériques

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.

(Attendez que toutes les unités soient prêtes.)
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]

Ensuite, créez les volumes LVM2 dans /dev/md4. Le schéma suivant est utilisé comme exemple :

Répertoire Taille Système de fichiers
/usr 8 GB ext3
/usr/portage 2 GB ext2, petits blocs, beaucoup d'inodes
/usr/portage/distfiles 4 GB ext2, gros blocs, moins d'inodes
/home 10 GB ext3
/opt 4 GB ext3
/var 4 GB ext3
/var/tmp 6 GB ext2
/tmp 2 GB ext2

Exemple de code 2.11 : Créer les volumes LVM2

livecd ~ # vgscan
  Reading all physical volumes.  This may take a while...
  No volume groups found
livecd ~ # vgchange -a y
  No volume groups found

(Créez les volumes physiques, nous n'en avons qu'un dans notre exemple.)
livecd ~ # pvcreate /dev/md4
  Physical volume "/dev/md4" successfully created

(Créez les groupes de volumes, à nouveau nous n'en avons qu'un dans notre exemple.)
livecd ~ # vgcreate vg /dev/md4
Volume group "vg" successfully created

(Créez les volumes logiques)
livecd ~ # lvcreate -L8G -nusr vg
  /dev/cdrom: open failed: Read-only file system
  Logical volume "usr" created (D'autres messages similaires ne sont plus repris.)
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

(Afficher les groupes de volumes et le volumes logiques.)
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

Utilisez mke2fs, mke2fs -j, mkreiserfs, mkfs.xfs et mkfs.jfs pour créer les systèmes de fichiers. Initialisez votre partition de mémoire virtuelle avec mkswap et swapon.

Exemple de code 2.12 : Créer le système de fichiers et activer la mémoire virtuelle

(Le système de fichiers ext2 est suffisant pour la partition /boot.)
livecd ~ # mke2fs /dev/md1

(Utilisons le système de fichiers ext3 sur la partition racine.)
livecd ~ # mke2fs -j /dev/md3

(Créez les systèmes de fichiers sur les volumes logiques.)
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

(Créez et activez la mémoire virtuelle.)
livecd ~ # mkswap /dev/sda2 && mkswap /dev/sdb2
livecd ~ # swapon -p 1 /dev/sda2 && swapon -p 1 /dev/sdb2
(Vérifiez que toutes les partitions d'échange utilisent les mêmes priorités.)
livecd ~ # swapon -v -s
Filename                   Type            Size    Used    Priority
/dev/sda2                  partition       401616  0       1
/dev/sdb2                  partition       401616  0       1

Montez les systèmes de fichiers fraîchement créés sur /mnt/gentoo. Créez les répertoires pour les autres points de montage et montez-les.

Exemple de code 2.13 : Monter le système de fichiers

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

(Configurez les bonnes permissions pour les répertoires /tmp.)
livecd gentoo # chmod 1777 /mnt/gentoo/tmp /mnt/gentoo/var/tmp

Préparer le stage

D'abord, assurez-vous que la date de votre système est correcte en utilisant date MMJJhhmmAAAA. Utilisez le temps UTC.

Exemple de code 2.14 : Préciser la date et l'heure UTC

(Vérifiez l'horloge.)
livecd gentoo # date
Mon Mar  6 00:14:13 UTC 2006

(Préciser la date et l'heure actuelle, si nécessaire.)
livecd gentoo # date 030600162006 (Format : MMJJhhmmAAAA)
Mon Mar  6 00:16:00 UTC 2006

Ensuite, téléchargez une archive « stage » à partir d'un de nos miroirs :

Exemple de code 2.15 : Télécharger une archive « stage3 »

livecd ~ # cd /mnt/gentoo
livecd gentoo # links http://www.gentoo.org/main/en/mirrors.xml
(Choisissez un miroir, allez dans le répertoire releases/x86/current-stage3/,
sélectionnez le stage3 de votre choix, probablement le stage3 i686 et appuyez
sur D pour le télécharger.)

(Ou télécharger-le directement avec wget sans choisir un miroir proche.)
livecd ~ # cd /mnt/gentoo
livecd gentoo # wget ftp://distfiles.gentoo.org/pub/gentoo/releases/x86/current-stage3/stage3-i686-*.tar.bz2

Rendez-vous dans le dossier /mnt/gentoo et décompressez l'archive « stage » à l'aide de la commande tar xjpf <archive stage3>.

Exemple de code 2.16 : Désarchiver l'archive « stage3 »

livecd gentoo # time tar xjpf stage3*

real  1m14.157s
user  1m2.920s
sys   0m7.530s

Installez le dernier instantané de Portage. Pour ce faire, procédez comme pour l'archive « stage3 » : choisissez un miroir proche depuis notre liste, téléchargez l'instantané le plus récent et désarchivez-le.

Exemple de code 2.17 : Télécharger l'instantané Portage le plus récent

livecd gentoo # cd /mnt/gentoo/usr
livecd usr # links http://www.gentoo.org/main/en/mirrors.xml
(Choisissez un miroir, allez dans le répertoire snapshots/, sélectionnez
portage-latest.tar.bz2 et appuyez sur D pour le télécharger)

(Ou téléchargez le directement avec wget sans choisir un miroir proche)
livecd gentoo # cd /mnt/gentoo/usr
livecd usr # wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2

Exemple de code 2.18 : Désarchiver l'instantané Portage

livecd usr # time tar xjf portage-lat*

real  0m40.523s
user  0m28.280s
sys   0m8.240s

Exécution du chroot

Montez les systèmes de fichiers /proc et /dev, copiez et remplacez le fichier /etc/resolv.conf, puis utilisez chroot pour entrer dans votre environnement Gentoo.

Exemple de code 2.19 : Exécution de chroot

livecd usr # cd /
livecd / # mount -t proc none /mnt/gentoo/proc
livecd / # 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...

Configuration de votre fuseau horaire

Choisissez votre fuseau horaire en copiant le fichier approprié de /usr/share/zoneinfo vers /etc/localtime.

Exemple de code 2.20 : Copier le fichier correspondant à votre fuseau horaire

livecd / # ls /usr/share/zoneinfo
(Utilisation de Paris comme exemple.)
livecd / # cp /usr/share/zoneinfo/Europe/Paris /etc/localtime

livecd / # date
Wed Mar  8 00:46:05 CET 2006

Configurer votre nom d'hôte et votre nom de domaine

Configurer votre nom de domaine dans /etc/conf.d/hostname et dans /etc/hosts. Dans l'exemple suivant, nous utilisons mybox comme nom d'hôte et at.myplace comme nom de domaine. Vous pouvez soit éditer les fichiers de configuration avec nano ou utiliser les commandes suivantes :

Exemple de code 2.21 : Configuration du nom d'hôte et du nom de domaine

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
(Utilisez le nom d'hôte défini précédemment et testez)
livecd etc # hostname mybox
livecd etc # hostname -f
mybox.at.myplace

Configuration du noyau

Installez les sources d'un noyau de votre choix (habituellement gentoo-sources), configurez-le, compilez-le puis copiez le fichier arch/i386/boot/bzImage dans /boot.

Exemple de code 2.22 : Installer les sources d'un noyau, le compiler et l'installer

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

(Configurez votre noyau comme d'habitude et assurez-vous que les modules raid et
lvm dont vous avez besoin sont en dur, c'est-à-dire qu'ils ne sont pas
construits commes modules. Même recommandation pour les pilotes des disques et
pour les systèmes de fichiers.)
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

(Le temps nécessaire varie fortement en fonction des options choisies.)
real  5m5.869s
user  4m32.320s
sys   0m32.930s

livecd linux # make modules_install
livecd linux # cp arch/i386/boot/bzImage /boot/kernel

Configurer le système

Éditez le fichier /etc/fstab et remplacez /BOOT, /ROOT et /SWAP avec les noms effectivement donnés à vos partitions et ajoutez vos volumes logiques. N'oubliez pas de vérifier que les systèmes de fichiers correspondent à ceux mis en place.

Exemple de code 2.23 : Exemple de fichier 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

Configurez votre connexion réseau dans /etc/conf.d/net. Ajoutez le script d'initialisation net.eth0 au niveau d'exécution par défaut. Si vous avez de multiples adaptateurs réseaux, faites-en des liens symboliques vers le script net.eth0 et ajoutez-les également au niveau d'exécution par défaut. Vous pouvez soit éditer /etc/conf.d/net avec nano soit utiliser les commandes suivantes :

Exemple de code 2.24 : Configurer le réseau

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
(Si vous avez compilé le pilote de votre carte réseau comme module, ajoutez-le
dans /etc/modules.autoload.d/kernel-2.6.)
livecd conf.d # echo r8169 >> /etc/modules.autoload.d/kernel-2.6
(Si vous voulez vous reconnecter par ssh après avoir redémarré votre nouveau PC :)
livecd conf.d # rc-update add sshd default

Note : Si vous en avez besoin, installez pcmciautils (utilisez emerge) et ajoutez-le au niveau d'exécution par défaut.

Définissez le mot de passe root en utilisant passwd.

Exemple de code 2.25 : Définir le mot de passe root

livecd conf.d # passwd
New UNIX password: Tapez le mot de passe
Retype new UNIX password: Tapez à nouveau le mot de passe
passwd: password updated successfully

Éditez le fichier /etc/conf.d/clock pour spécifier le fuseau horaire précédemment sélectionné.

Exemple de code 2.26 : Éditer /etc/conf.d/clock

livecd conf.d # nano -w /etc/conf.d/clock
TIMEZONE="Europe/Paris"

Vérifiez la configuration du système dans les fichiers /etc/rc.conf, /etc/conf.d/rc et /etc/conf.d/keymaps. Modifiez-les si nécessaire.

Exemple de code 2.27 : Facultatif : éditer quelques fichiers de configuration

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

Installer les outils système

Installez les outils RAID et LVM2.

Exemple de code 2.28 : Installer les outils RAID et LVM2

livecd conf.d # emerge mdadm lvm2

Installez un système de journalisation tel que syslog-ng et ajoutez-le au niveau d'exécution par défaut. Faites la même chose pour un démon cron tel que vixie-cron.

Note : Les démons cron nécessitent un MTA. mail-mta/ssmtp sera installé comme dépendance. Si vous désirez utiliser un MTA plus évolué, vous pouvez l'installer maintenant. Si vous êtes pressé, laissez ssmtp être installé et désinstallez-le plus tard en installant alors le MTA de votre choix.

Exemple de code 2.29 : Installer un système de journalisation et un démon 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

Installez les outils systèmes nécessaires (xfsprogs, reiserfsprogs ou jfsutils) et les outils réseaux (dhcpcd ou ppp) si vous en avez besoin.

Exemple de code 2.30 : Installer des outils supplémentaires si nécessaire

livecd conf.d # emerge xfsprogs          (Si vous utilisez le système de fichiers XFS.)
livecd conf.d # emerge jfsutils          (Si vous utilisez le système de fichiers JFS.)
livecd conf.d # emerge reiserfsprogs     (Si vous utilisez le système de fichiers Reiser.)
livecd conf.d # emerge dhcpcd            (Si vous avez besoin d'un client DHCP.)
livecd conf.d # emerge ppp               (Si vous utilisez une connexion ADSL.)

Configurer le chargeur de démarrage

Faites un emerge de grub et configurez-le.

Exemple de code 2.31 : Installer Grub et éditer son fichier de configuration

livecd conf.d # time emerge grub

real  1m4.634s
user  0m39.460s
sys   0m15.280s
livecd conf.d # nano -w /boot/grub/grub.conf

Exemple de code 2.32 : Exemple de fichier grub.conf

default 0
timeout 10
title Gentoo
root (hd0,0)
kernel /boot/kernel root=/dev/md3

Exemple de code 2.33 : Installer grub sur les deux disques

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

Redémarrage

Quittez l'environnement chroot, démontez tous les systèmes de fichiers et redémarrez.

Exemple de code 2.34 : Redémarrage

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
(N'oubliez pas d'éjecter le CD.)

Finalisation de l'installation

Note : Le temps total écoulé entre l'écran d'invite de démarrage sur le CD minimal et l'écran de connexion après le redémarrage a été de 00:42:31 sur notre machine de test. Oui, moins d'une heure ! Notez que ce temps inclut également les temps de téléchargement du stage3, de l'instantané de Portage et de plusieurs paquets, ainsi que le temps passé sur la configuration du noyau.

Identifiez-vous en tant que root, et ajoutez un ou plusieurs utilisateurs pour l'utilisation quotidienne avec la commande useradd.

Exemple de code 2.35 : Connexion à votre nouvelle machine depuis un autre PC

(Vous pouvez nettoyer votre fichier known_hosts car votre machine a
généré une nouvelle clef définitive)
$ nano -w ~/.ssh/known_hosts
(Regardez l'adresse IP de votre nouveau PC et supprimez la ligne,
puis sauvegardez le fichier et quittez nano)

(Utilisez l'adrese IP de votre nouvelle machine)
$ 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: type_the_password

Exemple de code 2.36 : Ajout d'un nouvel utilisateur

mybox ~ # adduser -g users -G lp,wheel,audio,cdrom,portage,cron -m john
mybox ~ # passwd john
New UNIX password: Définissez le mot de passe de John
Retype new UNIX password: Entrez de nouveau le mot de passe
passwd: password updated successfully

Dernières étapes de configuration

Démarrez en sélectionnant les mirrirs les plus proches en définissant les variables SYNC et GENTOO_MIRRORS dans le fichier /etc/make.conf ou en utilisant mirrorselect. Vous pouvez aussi définir le nombre de processus de compilations simultanées maintenant.

Exemple de code 2.37 : Utilisez mirrorselect et configurez MAKEOPTS

mybox ~ # emerge mirrorselect
mybox ~ # mirrorselect -i -o >> /etc/make.conf
mybox ~ # mirrorselect -i -r -o >> /etc/make.conf
(Généralement, on utilise (le nombre de processeurs + 1))
mybox ~ # echo 'MAKEOPTS="-j2"' >> /etc/make.conf

À présent, il est temps d'activer ou non certains paramètres USE. Exécutez emerge -vpe world pour lister tous les paquets actuellement installés et l'état de leurs paramètres USE respectifs. Éditez le fichier /etc/make.conf ou utilisez la commande suivante pour définir la variables USE :

Exemple de code 2.38 : Liste des paramètres USE actuels, activation ou désactivation de certains

mybox ~ # emerge -vpe world
(Portage affiche les paquets avec leurs paramètres USE, par exemple,
désactivons ipv6 et fortran, et activons unicode)
mybox ~ # echo 'USE="nptl nptlonly -ipv6 -fortran unicode"' >> /etc/make.conf

Les versions récentes de glibc utilisent /etc/locale.gen pour définir les paramètres de « locales ».

Exemple de code 2.39 : Définir les locales

mybox ~ # cd /etc
mybox etc # nano -w locale.gen
mybox etc # locale-gen

La dernière étape mais pas des moindres, vous devriez modifier votre variable CFLAGS dans le fichier /etc/make.conf pour optimiser le code selon vos propres besoins. Veuillez noter que l'utilisation d'une longue liste de paramètres est rarement requise et peut même endommager le système. Il est recommandé de spécifier le type de processeur dans l'option march et de garder -O2 -pipe.

Vous pouvez basculer en architecture ~x86. Vous ne devriez faire cela s'il ne vous dérange pas d'obtenir des comportements bizarres avec des ebuilds ou des paquets cassés. Si vous préférez garder un système stable, n'ajoutez pas la variable ACCEPT_KEYWORDS. L'ajout de FEATURES="ccache" peut être une bonne idée.

Exemple de code 2.40 : Dernière édition du fichier make.conf

mybox etc # nano -w make.conf
(Mettez le type de votre CPU avec -march dans le CFLAGS)
CFLAGS="-O2 -march=athlon-xp -pipe"
(Ajoutez la ligne suivante)
FEATURES="ccache"
(N'ajoutez ceci que si vous savez ce que vous faites)
ACCEPT_KEYWORDS="~x86"

Vous voudrez peut-être recompiler votre système dans son ensemble une seconde fois pour faire pleinement usage des derniers changements de configuration. Cela prendra un certain temps pour un faible gain de vitesse. Vous pouvez laisser votre système s'optmiser par lui-même au fil du temps quand de nouvelles versions de paquets seront sorties. Toutefois, la recompilation reste une bonne idée pour maintenir la cohérence du système. Consultez le guide de mise à jour de GCC pour Gentoo pour en savoir plus à propos des avantages de la constance du système compilé et du « world ».

Recompiler uniquement les paquets qui ont déjà été mis à jour depuis la sortie ou qui sont affectées par vos nouveaux paramètres USE va prendre assez de temps. Vous pourriez également avoir à désinstaller des paquets qui bloqueraient votre mise à jour. Jetez un œil aux « [blocks B ] » dans la sortie de la commande emerge -vpuD --newuse world et utilisez emerge -C pour les supprimer.

Exemple de code 2.41 : Mise à jour de vos paquets

(Installation de ccache)
mybox etc # emerge ccache

(Notez que le changement vers ~x86 engendre la mise à jour de nombreux
paquets)
mybox etc # emerge -vpuD --newuse world
(Jetez un œil à la liste des paquets et à leurs paramètres USE, retirez
les paquets bloquant s'il y en a, et démarrez le long processus)
mybox etc # time emerge -vuD --newuse world
(79 paquets ont été (re)compilés)

real  180m13.276s
user  121m22.905s
sys   36m31.472s

(Réinstallez libtool pour éviter de futurs problèmes potentiels)
mybox etc # emerge --oneshot libtool

(Mise à jour des fichiers de configuration, assurez-vous de ne
pas laisser dispatch-conf mettre à jour des fichiers que vous auriez
modifiés)
mybox etc # dispatch-conf

(Si perl a été mis à jour, vous devez lancer le script
perl-cleaner)
mybox etc # time perl-cleaner all
real  1m6.495s
user  0m42.699s
sys   0m10.641s

(Dans le cas d'une mise à jour majeure de python, vous devez lancer le
script python-updater)
mybox etc # python-updater

Que faire ensuite

Selon l'utilisation qui sera faite de votre nouvelle machine Gentoo, vous désirerez probablement installer des applications serveur ou un environnement de travail. Par exemple, emerge gnome et emerge kde ont été chronométrés sur le système ~x86 comme décrit ci-dessus. Les deux ont été installés à partir du même point.

Vous devriez lire notre liste de documentation pour savoir comment installer et configurer les applications de votre choix.

Important : Ce qui suit n'est qu'un exemple. Il ne s'agit en aucun cas d'une configuration recommandée.

Exemple de code 2.42 : Installation de GNOME

mybox etc # emerge -vp gnome
(Vérifiez la liste des paquets et leurs paramètres USE, éditez le
fichier make.conf si nécessaire.)
mybox etc # nano -w /etc/make.conf
(Les paramètres USE suivants ont été définis)
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \
     -kde -qt3 -qt4 -arts -eds -esd gnome gstreamer gtk firefox"

mybox etc # time emerge gnome
(326 paquets ont été installés)

real  520m44.532s
user  339m21.144s
sys   146m22.337s

Exemple de code 2.43 : Installation de KDE

mybox etc # emerge -vp kde-meta
(Vérifiez la liste des paquets et leurs paramètres USE, éditez le
fichier make.conf si nécessaire.)
mybox etc # nano -w /etc/make.conf
(Les paramètres USE suivants ont été définis)
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
(391 paquets ont été installés)

real  1171m25.318s
user  851m26.393s
sys   281m45.629s