Gentoo - Installation

Installer Gentoo facilement (OpenRC)

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction





Gentoo est une distribution GNU/Linux sympathique, conçue pour être optimisée pour le matériel de l'utilisateur. Tous les programmes sont donc compilés à partir du code source.

Gentoo utilise le gestionnaire de paquets Portage.

Calculate Linux dont je parle beaucoup sur se site est basé sur Gentoo, mais est plus "facile" d'emploi :intello:





Avant installation





Obtenir le média d'installation





Dans un premier temps, il est nécessaire de télécharger le CD d'installation. Prendre l'iso disponible ici :









Prérequis





Vérifier que la machine dispose du réseau, surtout d'Internet.

Disposer d'une deuxième machine avec un client SSH est un plus (le copier coller sera plus facile)



Préparer l'installation





Insérer le CD dans la machine :happy1:

Booter sur le CD.

Sur l'invite de commande boot: valider en appuyant sur Entrée.



Le Live CD charge les modules et démarre. Le chargement est terminé lorsque le prompt livecd ~ # s'affiche.



On met le clavier en français, ce sera plus facile :



Code BASH :
 loadkeys fr




On vérifie que nous disposons bien d'une IP :



Code BASH :
ifconfig




Si besoin, demander une IP à notre serveur DHCP :



Code BASH :
dhcpcd




On teste la connexion à internet (Ctrl+C pour annuler) :



Code BASH :
ping google.fr




Pour être sur de ne pas être embêté, je mets les DNS de Google :

Code BASH :
echo "namserver 8.8.8.8" > /etc/resolv.conf






Configurer l'accès distant ssh







Sur la machine locale





On démarre le service ssh :



Code BASH :
/etc/init.d/sshd start




Et on initialise le mot de passe root :



Code BASH :
passwd






Sur la machine distante







Code BASH :
ssh root@Ip_machine




On va se rendre dans le répertoire où nous installerons Gentoo en chroot :



Code BASH :
cd /mnt/gentoo




A partir d'ici, je ne saisierai les commandes que depuis la machine distante !





Partitionnement





Il existe plusieurs manières de partitionner son disque, avec des outils différents.

Moi, je vais utiliser cfdisk, il est plus "facile" à utiliser que fdisk.



Code BASH :
cfdisk




Partitionner à sa guise, dans ce tutoriel, je vais faire :

  • une partition racine de 20Go
  • une partition /home de 10Go
  • une partition SWAP de 2Go





Code BASH :
                                  cfdisk (util-linux 2.22.2)
 
                                     Disk Drive: /dev/sda
                               Size: 32212254720 bytes, 32.2 GB
                     Heads: 255   Sectors per Track: 63   Cylinders: 3916
 
    Name           Flags        Part Type    FS Type             [Label]          Size (MB)
 ---------------------------------------------------------------------------------------------
    sda1           Boot          Primary     Linux                                 20003.89    
    sda2                         Primary     Linux                                 10001.95
    sda3                         Primary     Linux swap / Solaris                   1998.75
                                 Pri/Log     Free Space                              207.70   *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     [ Bootable ]  [  Delete  ]  [   Help   ]  [ Maximize ]  [  Print   ]  [   Quit   ]
     [   Type   ]  [  Units   ]  [  Write   ]
                                 Wrote partition table to disk
                         Toggle bootable flag of the current partition
 




Ce qui me donne avec la commande fdisk ce résultat au final :



Code BASH :
fdisk -l
 
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63    39070079    19535008+  83  Linux
/dev/sda2        39070080    58605119     9767520   83  Linux
/dev/sda3        58605120    62508914     1951897+  82  Linux swap / Solaris
 




On formate les partitions :



Code BASH :
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2
mkswap /dev/sda3
 




On monte la partition racine dans /mnt/gentoo



Code BASH :
mount /dev/sda1 /mnt/gentoo




On créé les points de montage des autres partitions et on monte celles-ci dans leurs dossiers respectifs (exemple avec /home sur /dev/sda2)



Code BASH :
mkdir /mnt/gentoo/home
mount /dev/sda2 /mnt/gentoo/home




On en profite pour monter le SWAP :



Code BASH :
swapon /dev/sda3




Vérifier que la date est au format UTC (c'est à dire à l'heure de Londres).



Code BASH :
date
Thu Jul 25 08:29:50 UTC 2013




C'est OK dans mon cas.

Modifier si besoin la date et l'heure sur celle de Londres :



Code BASH :
date MMJJhhmmAAAA






Installer les fichiers d'installation de Gentoo







Stage 3 : Le système





Le site de Gentoo propose les liens vers les "stage 3" de chaque architecture. Prendre celle qui convient le mieux.



Code BASH :
cd /mnt/gentoo






32bits





Code BASH :
wget http://distfiles.gentoo.org/releases/x86/autobuilds/current-stage3/stage3-i686-*.tar.bz2


Remplacer dans l'URL l'étoile (*) par la date de construction de l'archive.

http://distfiles.gentoo.org/releases/x86/autobuilds/current-stage3




64bits





Code BASH :
wget http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3/stage3-amd64-*.tar.bz2


Remplacer dans l'URL l'étoile (*) par la date de construction de l'archive.

http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3




Extraire ensuite l'archive :

Code BASH :
tar xjvfp stage3-*.tar.bz2




Il ne faut pas oublier le commutateur p qui permet de préserver les permissions !





Portage





Télécharger et extraire l'arbre de portage :

Code BASH :
wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2
tar xvjf portage-latest.tar.bz2 -C /mnt/gentoo/usr






Installer le système de base





Il faut bien comprendre que le système Gentoo que nous installons se trouve dans /mnt/gentoo du live CD.



Dans un premier temps, on se copie le fichier de résolution de noms DNS :



Code BASH :
cp -L /etc/resolv.conf /mnt/gentoo/etc/




On monte ensuite les dossiers proc et dev dans /mnt/gentoo



Code BASH :
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev 




On change l'environement du live CD pour basculer vers l'environnement final.

On chroot le système.



Code BASH :
chroot /mnt/gentoo /bin/bash




On met à jour des variables d'environnement :



Code BASH :
env-update
source /etc/profile




Pour ne pas s’emmêler les pinceaux, on peut ajouter un repère à notre prompt pour bien distinguer que l'on est en chroot :



Code BASH :
export PS1="[chroot] $PS1"






Fichier make.conf





On édite le fichier make.conf pour lui ajouter quelques options supplémentaires :



Code BASH :
nano -w /etc/portage/make.conf




Code BASH :
MAKEOPTS="-j9" # 9 car j'ai 8 cœurs : nb cœurs+1
LINGUAS="fr" #Langue
VIDEO_CARDS="intel nvidia nouveau radeon vesa virtualbox" #Cartes graphiques, choisir les cartes adéquats






Locales





Les locales, c'est la langue du système et son encodage. Configurer tout cela pour du français :



Code BASH :
 nano -w /etc/locale.gen




Mettre ceci pour du français compatible UTF-8

Code BASH :
fr_FR.UTF-8 UTF-8




On génère les locales :



Code BASH :
locale-gen




On configure la disposition du clavier :



Code BASH :
nano -w /etc/conf.d/keymaps




Modifier la ligne keymap ainsi pour disposer d'un clavier AZERTY :



Code BASH :
keymap="fr"






Configurer le fuseau horaire





Vu que nous sommes sur Paris en France, configurons ainsi le fuseau horaire :



Code BASH :
cp /usr/share/zoneinfo/Europe/Paris /etc/localtime




Vérifier que l'horloge est bien en UTC :



Code BASH :
nano -w /etc/conf.d/hwclock




Code BASH :
clock="UTC"






Configurer le kernel





Installer les sources du noyau et l'utilitaire genkernel :



Code BASH :
emerge -q gentoo-sources genkernel




A revoir, la config est un peu "bourrin"



On copie les fichiers de configuration qui ont été utilisés par le Live CD pour l'utiliser sur notre kernel :



32bits :

Code BASH :
zcat /proc/config.gz > /usr/share/genkernel/arch/x86/kernel-config




64bits :

Code BASH :
zcat /proc/config.gz > /usr/share/genkernel/arch/x86_64/kernel-config




On configure puis compile notre kernel :

Code BASH :
genkernel all --menuconfig




Avec la fenêtre Linux/x86 x.x.x-gentoo Kernel Configuration configurer les options du kernel qui nous intéressent. Terminer par Exit.



On vérifie que les fichiers nécessaire au boot sont bien la :

Code BASH :
ls boot
System.map-genkernel-x86_64-3.8.13-gentoo 
kernel-genkernel-x86_64-3.8.13-gentoo
initramfs-genkernel-x86_64-3.8.13-gentoo
 




Le résultat peut varier suivant l'architecture et la version du noyau.





Fichier fstab





Editer le fichier fstab pour renseigner les partitions et leur point de montage :



Code BASH :
nano -w /etc/fstab




Exemple :



Code BASH :
#/dev/BOOT              /boot           ext2            defaults,noatime         1 2
/dev/sda1               /               ext4            defaults,noatime         0 1
/dev/sda2               /home           ext4            defaults,noatime         0 1
/dev/sda3               none            swap            sw              0 0
/dev/cdrom              /mnt/cdrom      auto            noauto,ro       0 0
/dev/fd0                /mnt/floppy     auto            noauto          0 0
 








Définir le nom d'hôte





Configurer le nom d'hôte de la machine. Éditer le fichier hostname :



Code BASH :
nano -w /etc/conf.d/hostname




On peut aussi configurer à notre guise le fichier hosts :



Code BASH :
nano -w /etc/hosts






Installer les outils







Logs et Journalisation





On installe rsyslog et logrotate :



Code BASH :
emerge -q rsyslog logrotate




On démarre le service au boot :



Code BASH :
rc-update add rsyslog default






Planificateur de tâches





On installe cron :



Code BASH :
emerge -q vixie-cron




On démarre le service au boot :



Code BASH :
rc-update add vixie-cron default






Client DHCP





Si par la suite on veut du réseau, c'est mieux d'avoir un client DHCP :



Code BASH :
emerge -q dhcpcd






Service SSH





N'oublions pas de lancer le service SSH au boot, s'il s'agit d'un serveur :



Code BASH :
 rc-update add sshd default






Mot de passe root





N'oublions pas le plus important, le mot de passe root !



Code BASH :
passwd






Installer le chargeur d'amorçage





La est le plus délicat, il ne faut pas se tromper.



Code BASH :
emerge -pv grub




Vérifier la version qui va s'installer.





GRUB Legacy (0.97) (Obsolète)







D'abord, on installe le logiciel GRUB :



Code BASH :
emerge -q grub




Maintenant, on édite le fichier de config de GRUB :



Code BASH :
nano -w /boot/grub/grub.conf




Je rappelle que /dev/sda1 est ma partition /, qui contient les fichiers du boot.

Si vous avez un /boot dédié sur une partition, relever le nom de la partition qui est montée sur /boot.



Voila mon fichier grub.conf avec le partitionnement utilisé depuis le début (Adapter avec les noms donnés par ls /boot) :



Code BASH :
default 0
timeout 30
#splashimage=(hd0,0)/boot/grub/splash.xpm.gz
 
title Gentoo Linux 3.8.13   
root (hd0,0)
kernel /boot/kernel-genkernel-x86_64-3.8.13-gentoo root=/dev/sda1
initrd /boot/initramfs-genkernel-x86_64-3.8.13-gentoo
 




Explication de root (hd0,0)
hd0 => /dev/sda

hd1 => /dev/sdb

etc.



hd0,0 => /dev/sda1

hd0,1 => /dev/sda2




On installe grub dans le secteur boot :



Code BASH :
grub                (Lance la console de grub)
grub> root (hd0,0)    (lieu de /boot ou / si pas de /boot)
grub> setup (hd0)     (Écrit GRUB dans le MBR.)
grub> quit            (Quitte la console GRUB.)






GRUB2





Ajuster "GRUB_PLATFORMS" dans le fichier make.conf si votre matériel est "exotique"



Dans un premier temps, on installe grub2 :



Code BASH :
emerge -q grub




Une fois grub installé, il faut le paramétrer.



Code BASH :
mkdir /boot/grub
grub2-mkconfig -o /boot/grub/grub.cfg




Puis on installe GRUB sur le MBR :



Code BASH :
grub2-install /dev/sda






Finalisation de l'installation du système





On sort du chroot :



Code BASH :
exit




On supprime les fichiers précédemment téléchargés :



Code BASH :
rm -f /mnt/gentoo/*.tar.bz2




On revient à la racine du live CD et on démonte tout ce dont on a plus besoin :



Code BASH :
cd 
umount -a




On reboot, on enlève le Live CD et on croise les doigts :ange:



Voila Gentoo est installée :magic:





Derniers réglages







Service NTP





Si on le souhaite, on peut installer le service NTP pour synchroniser l'horloge automatiquement via le réseau :



Code BASH :
emerge -q ntp




On démarre le service :



Code BASH :
/etc/init.d/ntpd start




On l'ajoute au démarrage de la machine :



Code BASH :
rc-update add ntpd default






Choisir son profil





Ils permettent de mettre certaines variables par défaut en fonction d'un type d'installation prédéfini.

Par exemple, si vous comptez utiliser KDE il est préférable d'utiliser un profile desktop/kde.



Listes des "profiles" :



Code BASH :
eselect profile list




Choix du "profile" :



Code BASH :
eselect profile set X




où X est le numéro du profil affiché dans la liste précédente.





Ajout d'utilisateurs





On ne va pas se promener sur notre nouveau système en root non ?



Pour cela, il faut ajouter un utilisateur au moins :



Code BASH :
useradd -m -g groupe_principal -G users,groupe1,group2,group3  nom_user




Voici une brève descriptions des groupes plutôt utiles :



  • audio : accès autorisé aux périphériques audio
  • cdrom : accès direct autorisé aux lecteurs optiques
  • portage : permet d'utiliser emerge --pretend
  • plugdev : permet de monter de périphériques à chaud et de les utiliser, par exemple des appareils photos : numériques ou des clés USB
  • video : accès autorisé au matériel de capture vidéo et à l'accélération matérielle
  • wheel : commande su utilisable





Ne pas oublier d'initialiser le mot de passe via la commande



Code BASH :
passwd nom_user




Quelques outils





Installons quelques outils pratiques :



Code BASH :
emerge -q gentoolkit portage-utils iproute2 htop app-misc/screen layman eix




Et voila, c'est terminé :intello: