Méthodes alternatives pour l'installation de Gentoo Linux

Gerald Normandin Jr.  Contributeur
Travis Tilley  Contributeur
Oleg Raisky  Contributeur
Alex Garbutt  Contributeur
Alexandre Georges  Contributeur
Magnus Backanda  Contributeur
Faust A. Tanasescu  Contributeur
Daniel Ahlberg  Contributeur
Sven Vermeulen  Correcteur
Ken Nowack Relecteur
Tiemo Kieft  Correcteur
Benny Chuang  Correcteur
Jonathan Smith  Correcteur
Joshua Saddler  Correcteur
Olivier Fisette  Traducteur
Marion Agé  Traducteur

Dernière mise à jour le 10 septembre 2008

1.  À propos de ce document

Si la méthode d'installation standard qui consiste à démarrer à partir d'un CD-ROM d'installation ne fonctionne pas pour vous (ou si vous n'aimez pas cette prodécure), ce document vous aidera. Il s'agit d'une compilation des méthodes alternatives pour l'installation de Gentoo Linux. Si vous préférez, ce guide est la place pour des méthodes d'installation incongrues. Si vous connaissez une méthode d'installation utile ou si vous avez concocté une drôle de façon d'installer Gentoo, n'hésitez pas à l'écrire et à la poster sur notre système bugzilla.

2.  Amorcer un CD d'installation avec Smart BootManager

Téléchargez Smart BootManager depuis http://btmgr.sourceforge.net/download.html. Les sources et des paquets binaires pour Linux sont disponibles ainsi qu'une version .exe pour Windows. Des ensembles pour le support de différentes langues sont aussi disponibles. Pour l'instant, nous recommandons d'utiliser un paquet binaire puisque la compilation du code source ne fonctionne pas avec les versions récentes de NASM.

Compilez le logiciel à partir des sources ou téléchargez simplement le paquet binaire. De nombreuses options sont disponibles lors de la création de votre disquette de démarrage, tel qu'indiqué ci-dessous :

Exemple de code 2.1 : Options de Smart BootManager

sbminst [-t theme] [-d drv] [-b backup_file] [-u backup_file]

   -t theme       select the theme to be used, in which the theme could be:
                    us = English theme       de = German theme
                    hu = Hungarian theme     zh = Chinese theme
                    ru = Russian theme       cz = Czech theme
                    es = Spanish theme       fr = French theme
                    pt = Portuguese theme


   -d drv         set the drive that you want to install Smart BootManager on;
                  for Linux:
                    /dev/fd0 is the first floppy driver,
                    /dev/hda is the first IDE harddisk driver.
                    /dev/sda is the first SCSI harddisk driver.
                  for DOS:
                    0   is the first floppy drive
                    128 is the first hard drive;

   -c             disable CD-ROM booting feature;

   -b backup_file backup the data that will be overwritten for
                  future uninstallation;

   -u backup_file uninstall Smart BootManager, should be used alone;

   -y             do not ask any question or warning.

Exemple de code 2.2 : Utiliser sbminst pour créer votre disquette de démarrage

# sbminst -t fr -d /dev/fd0

Note : Remplacez fd0 par le nom de votre lecteur de disquette si nécessaire.

Ensuite, insérez simplement la disquette dans le lecteur de l'ordinateur avec lequel vous souhaitez amorcer le CD d'installation et insérez ce dernier dans le lecteur de CD-ROM, puis démarrez l'ordinateur.

Vous serez accueilli par le dialogue de Smart BootManager. Choisissez votre CD-ROM et appuyer sur Entrée pour amorcer le CD d'installation. Après le démarrage, poursuivez avec les instructions d'installation standard.

Vous trouverez de l'information supplémentaire sur Smart BootManager à http://btmgr.sourceforge.net/.

3.  Installation avec Knoppix

Note : Knoppix n'est disponible que pour l'architecture x86.

L'amorçage à partir du LiveCD Knoppix permet d'avoir un système Linux complètement fonctionnel pendant que vous compilez Gentoo. Tux Racer vous aidera à tuer le temps pendant le « bootstrap » du système.

Attention : Notez que si vous sauvez quoi que ce soit dans votre répertoire personnel sous Knoppix, vous ne le retouverez pas sous Gentoo après avoir redémarré la machine. Vous devez sauver vos données quelque part sur le disque ou sur un autre PC.

Démarrez avec le LiveCD Knoppix. Avec les versions 3.6 à 3.8.2, vous devrez spécifier knoppix26 comme option de démarrage pour charger un noyau 2.6. Si vous oubliez cette étape alors lors du chroot vous obtiendrez une erreur indiquant que votre noyau est trop vieux. À partir de Knoppix 3.9, cela n'est pas nécessaire, car le noyau par défaut est 2.6.x.

Par défaut Knoppix démarre sur l'environnement graphique KDE. Ouvrez une konsole et tapez su - pour pouvoir changer votre mot de passe. Vous pouvez alors changer le mot de passe root de Knoppix. Maintenant configurez sshd pour permettre un accès distant si vous le souhaitez.

Exemple de code 3.1 : Créer le point de montage /mnt/gentoo

# mkdir /mnt/gentoo

À partir de ce point, vous pouvez continuez avec le chapitre 4 des instructions d'installation standard. Toutefois, lorsque l'on vous indique de monter le système proc, exécutez plutôt la commande suivante :

Exemple de code 3.2 : Lier-monter le pseudo-système de fichiers proc

# mount -o bind /proc /mnt/gentoo/proc

Veuillez noter que certaines options de Portage ne fonctionnent pas sous Knoppix, notamment userpriv et usersandbox. Si vous recevez des messages d'erreur, vous devriez désactiver ces options.

4.  Installation sur une machine sans disque avec PXE boot

Prérequis

Sur le client sans disque, vous aurez besoin d'un adaptateur réseau supportant le protocole PXE pour le démarrage. Plusieurs cartes de 3com supportent ce protocole. Vous aurez aussi besoin d'un BIOS qui supporte le démarrage par PXE.

Configuration de base du serveur

Création des répertoires : la première chose à faire est de créer les répertoires où votre système sans disque sera entreposé. Créez un répertoire nommé /diskless qui contiendra un sous-répertoire pour chaque client sans disque. Pour le reste de ce document, nous utiliserons « eta » comme nom de client.

Exemple de code 4.1 : Configurer les répertoires

# mkdir /diskless
# mkdir /diskless/eta
# mkdir /diskless/eta/boot

Configuration DHCP et TFTP : le client obtiendra l'information de démarrage par DHCP et téléchargera tous les fichiers requis par TFTP.

Installez un serveur DHCPd avec emerge dhcp (ou tout autre serveur DHCPd de votre choix). Vérifiez que l'interface réseau spécifiée dans /etc/conf.d/dhcpd soit la bonne et configurez le serveur selon vos besoins de base. Ensuite, ajoutez ce qui suit dans /etc/dhcp/dhcpd.conf.

Note : Cette configuration fournit au client une adresse IP statique ainsi que le chemin de l'image de démarrage PXE (pxegrub dans le cas présent). Vous devez remplacer l'adresse MAC de la carte Ethernet du client ainsi que le nom du répertoire où vous conservez les fichiers du client par vos propres valeurs.

Exemple de code 4.2 : dhcpd.conf

option option-150 code 150 = text ;
ddns-update-style none ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address ad.res.se.ip;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}

Ensuite vous devrez configurer votre interface dans le fichier /etc/conf.d/net afin qu'elle ne soit pas effacée au démarrage. Lisez le fichier /etc/conf.d/net.example pour plus d'informations.

Exemple de code 4.3 : /etc/conf.d/net

(Remplacez eth0 par le nom de votre interface)
config_eth0=( "noop" )

Pour TFTP, installez (avec emerge) app-admin/tftp-hpa. Dans le fichier /etc/conf.d/in.tftpd, ajoutez ce qui suit :

Exemple de code 4.4 : in.tftpd

INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"

Configuration de GRUB : pour fournir aux client le démarrage par PXE, j'utilise GRUB en ajoutant la variable USE netboot. Une fois que GRUB est compilé, copiez l'image PXE dans le répertoire de démarrage du client sans disque. Puis, éditez le fichier de configuration grub.lst.

Exemple de code 4.5 : Configurer GRUB

# echo "sys-boot/grub netboot" >> /etc/portage/package.use
# emerge -av grub
# cp /usr/lib/grub/pxegrub /diskless/eta/boot/pxegrub
# nano -w /diskless/eta/boot/grub.lst

Exemple de code 4.6 : grub.lst

default 0
timeout 30

title=Diskless Gentoo
root (nd)
kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=ad.res.se.ip:/diskless/eta

# Pour l'option nfsroot, l'adresse IP à fournir est celle du serveur
# et le répertoire est celui où sont conservés les fichiers de votre client
# sans disque sur le serveur.

Configuration de NFS : NFS est relativement simple à configurer. La seule chose que avez à faire est d'ajouter une ligne au fichier de configuration /etc/exports  :

Exemple de code 4.7 : /etc/exports

# nano -w /etc/exports
# /etc/exports: NFS file systems being exported.  See exports(5).
/diskless/eta eta(rw,sync,no_root_squash)

Mise à jour des hôtes : il est important de modifier votre fichier /etc/hosts pour qu'il satisfasse vos besoins.

Exemple de code 4.8 : /etc/hosts

127.0.0.1 localhost

192.168.1.10 eta.exemple.com eta
192.168.1.20 sigma.exemple.com sigma

Créer le système sur le serveur

Vous pourriez redémarrer le serveur avec un CD d'installation Gentoo, bien que cela ne soit pas nécessaire si vous maîtrisez l'installation de Gentoo depuis un système installé. Suivez les instructions d'installation standard comme c'est indiqué dans le Manuel Gentoo avec la modification suivante : lorsque vous montez le système de fichiers, exécutez la commande ci-dessous (remplacez hdaX par le nom de la partition sur laquelle vous avez créé le répertoire /diskless). Vous n'avez pas à monter d'autre partition puisque tous les fichiers requis résident dans le répertoire /diskless/eta.

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

# mount /dev/hdaX /mnt/gentoo

Archives tar des stages et chroot : cet exemple utilise une archive tar stage 3. Montez /proc dans le répertoire de votre client sans disque et définissez ce répertoire comme racine du système (chroot) avant de poursuivre l'installation. Suivez les instructions jusqu'à la configuration du noyau.

Attention : Soyez vigilant lors de l'extraction des fichiers de l'archive stage. Vous ne souhaitez certainement pas remplacer les fichiers de votre système actuel par ceux de l'archive...

Exemple de code 4.10 : Extraire l'archive tar du stage

# cd /mnt/gentoo/diskless/eta/
# tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2
# mount -t proc /proc /mnt/gentoo/diskless/eta/proc
# cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf
# chroot /mnt/gentoo/diskless/eta/ /bin/bash
# env-update
# source /etc/profile

Configuration du noyau : lorsque vous exécutez make menuconfig pour configurer votre noyau, n'oubliez pas d'ajouter les options suivantes en plus de celles recommandées dans les instructions d'installation.

Exemple de code 4.11 : Options de menuconfig

- Support pour votre adaptateur réseau
(Compilé en dur et pas en module.)

- Dans la section "Networking options" :

[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support


- Dans la section "File systems --> Network File Systems" :

<*> NFS file system support
[*] Provide NFSv3 client support
[*] Root file system on NFS

Sauvez le noyau dans l'environnement « chrooté » (donc pas dans /boot) tel que défini dans la configuration de pxegrub ci-dessus. Ensuite, configurez le fichier /etc/fstab de votre client sans disque.

Exemple de code 4.12 : /etc/fstab

# nano -w /etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs nodev,nosuid,noexec 0 0

Pour empêcher le client de lancer une vérification du système de fichiers, utilisez l'astuce suivante :

Exemple de code 4.13 : Empêcher le client de vérifier le système de fichiers

# touch /fastboot
# echo "touch /fastboot" >> /etc/conf.d/local.start

Ensuite, installez le paquet nfs-utils indispensable au bon fonctionnement des clients.

Exemple de code 4.14 : Installer nfs-utils

# emerge nfs-utils

Chargeur de démarrage. N'installez pas un autre chargeur de démarrage puisque nous en avons déjà un : pxegrub. Terminez simplement l'installation et redémarrez le serveur. Démarrez les services dont vous avez besoin pour démarrer le nouveau client, soit : DHCP, TFTPD et NFS.

Exemple de code 4.15 : Démarrage des services

# /etc/init.d/dhcp start
# /etc/init.d/in.tftpd start
# /etc/init.d/nfs start

Démarrer le nouveau client

Pour que le nouveau client démarre correctement, vous devez configurer le BIOS et l'adaptateur réseau afin d'utiliser PXE comme première méthode de démarrage (avant le CD-ROM ou la disquette). Pour obtenir de l'aide à ce sujet, consultez les manuels pour votre matériel ou les sites Web des constructeurs. L'adaptateur réseau devrait obtenir une adresse IP par DHCP et télécharger l'image PXE de GRUB par TFTP. Vous verrez alors un élégant menu de démarrage GRUB en noir et blanc. Choisissez le noyau à démarrer puis tapez Entrée. Si tout se passe bien, le noyau devrait démarrer, monter le système de fichiers racine par NFS et afficher une invite de connexion. Appréciez !

5.  Installer Gentoo à partir d'une distribution Linux déjà installée

Prérequis

Afin d'installer Gentoo à partir de votre distribution déjà installée, la commande chroot doit être installée sur votre système. Vous devez aussi disposer du fichier ISO ou de l'archive tar Gentoo que vous souhaitez installer.

Vue d'ensemble

Nous allons d'abord allouer une partition à Gentoo en redimensionnant la partition Linux existante. Puis, nous monterons la partition et y désarchiverons le fichier tar. Nous entrerons ensuite dans ce pseudo-système avec la commande chroot. Nous pourrons alors débuter l'installation du système. Une fois le « bootstrap » terminé, nous procéderons à la configuration finale du système afin de s'assurer qu'il puisse démarrer. Nous serons alors prêt à redémarrer et à utiliser Gentoo.

Comment faire de la place à Gentoo ?

La partition racine contient le système fichiers monté sur /. Exécuter simplement mount sans argument permet de visualiser les différents points de montage. Nous utiliserons aussi df (« disk free ») pour savoir quelle quantité d'espace disque est disponible et comment la partition sera redimensionnée. Notez bien qu'il n'est pas obligatoire de redimensionner votre partition racine ! Vous pouvez choisir n'importe quelle partition supportée par le programme de redimensionnement. (Nous en reparlerons un peu plus loin.)

Exemple de code 5.1 : Obtenir de l'information sur le système de fichiers

# mount
/dev/hdb2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw,nodev,nosuid,noexec)
# df -h 
Filesystem           Size Used Avail Use% Mounted on
/dev/hdb2            4.0G 1.9G  2.4G  82% /
none                  38M    0   38M   0% /dev/shm

On remarque que la partition montée sur / se nomme /dev/hdb2 et dispose de 2,4 Go d'espace libre. Je vais redimensionner cette partition pour laisser 400 Mo d'espace libre, ce qui permettra d'allouer 2 Go à Gentoo. Ça me semble approprié, car j'ai l'intention d'y installer beaucoup de choses. Toutefois, un Go est suffisant pour la plupart des utilisateurs. Maintenant, partitionnons !

Installer parted pour le redimensionnement des partitions

Parted est un utilitaire conçu par la fondation GNU, un immense et vénérable projet. (Vous utilisez probablement des logiciels GNU en ce moment même). Cet utilitaire sera pour nous un outil précieux. Le nom parted signifie « partition editor ». Vous pouvez le télécharger à partir de http://www.gnu.org/software/parted/.

Note : Il existe d'autres outils servant à redimensionner des partitions. Toutefois, l'auteur ne prétend pas savoir si ces outils (PartitionMagic™ et autres) conviennent à ce que nous tentons de faire dans ce guide (l'auteur ne s'intéresse d'ailleurs pas à ce type de logiciels). S'il souhaite utiliser un outil alternatif, le lecteur devra déterminer lui-même si celui-ci est approprié.

Recherchez sur cette page le type de système de fichiers que vous souhaitez redimensionner et vérifiez si parted le supporte. Si ce n'est pas le cas, c'est peine perdue ; vous devrez détruire une partition afin de faire de l'espace pour Gentoo et réinstaller ensuite ce que vous aurez détruit. Si votre système de fichiers est supporté, téléchargez le logiciel et installez-le. Vous ferez alors face à un problème : puisque l'on souhaite redimensionner la partition racine, il est nécessaire de redémarrer le système à partir d'une disquette contenant un système Linux minimum ainsi que le programme parted, pré-compilé puis copié sur cette disquette. Toutefois, si vous pouvez démonter la partition que vous souhaitez redimensionner sans quitter Linux, vous n'avez pas besoin de suivre les instructions suivantes. Vous n'avez qu'à compiler parted et à l'exécuter sur la partition démontée de votre choix. Voici ce que j'ai fait pour mon système.

Important : Assurez-vous que les opérations que vous voulez faire sur vos partitions sont supportées par parted !

Téléchargez la disquette démarrage/administration mininux (une mini-distribution basée sur Linux 2.4) à partir de http://mininux.free.fr/uk/. Créez une disquette tel que suggéré dans la documentation qui accompagne le programme et insérez une nouvelle disquette dans le lecteur pour l'étape suivante.

Note : Bien sûr, Linux est synonyme de « Il y a plus d'une façon de le faire. ». Notre objectif est d'exécuter parted sur une partition démontée. Vous pouvez utiliser une disquette de démarrage/administration autre que mininux. Cette étape n'est d'ailleurs pas toujours nécessaire ; dans certains cas, vous pouvez par exemple simplement démonter le système de fichiers de la partition à repartitionner puis exécuter parted sans quitter votre session Linux.

Exemple de code 5.2 : Création d'une disquette pour l'utilitaire parted

# mkfs.minix /dev/fd0
480 inodes
1440 blocks
Firstdatazone=19 (19)
Zonesize=1024
Maxsize=268966912

Nous allons maintenant procéder à la compilation de parted. Si le logiciel n'est pas déjà téléchargé et désarchivé, faites-le maintenant et placez-vous dans le répertoire correspondant avec la commande cd. Exécutez les commandes suivantes afin de construire l'utilitaire et de le copier sur votre disquette.

Exemple de code 5.3 : Compilation et installation de parted sur la disquette

#  mkdir /floppy; mount -t minix /dev/fd0 /floppy &&
export CFLAGS="-O3 -pipe -fomit-frame-pointer -static" && ./configure
&& make && cp parted/parted /floppy && umount /floppy

Félicitations ! Vous êtes prêt à redémarrer et à redimensionner votre partition. Avant de faire cela, parcourez rapidement la documentation de parted sur le site Web de GNU. Le redimensionnement ne devrait pas prendre plus de 30 minutes, même pour les disques les plus spacieux. Soyez patient. Redémarrez votre système avec la disquette de démarrage mininux (insérez-la simplement dans le lecteur) et, une fois votre session ouverte, remplacez la disquette par celle contenant l'utilitaire parted. Ensuite, tapez mount /dev/fd0 /floppy pour que parted soit monté sur /floppy. Et voilà ! Exécutez parted et commencez le redimensionnement. Une fois cette longue procédure terminée, vous serez prêt pour votre divertissement préféré : installer Gentoo. Pour l'instant, redémarrez votre vieux système Linux. Le disque dur sur lequel vous voulez opérer est celui qui contient la partition à redimensionner. Par exemple, si vous redimensionnez /dev/hda3, le disque est /dev/hda.

Exemple de code 5.4 : Commandes à exécuter dans le système mininux

# mount /dev/fd0 /floppy 
# cd /floppy; ./parted [disque sur lequel vous vous opérer]
(parted)  print 
Disk geometry for /dev/hdb: 0.000-9787.148 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031   2953.125  primary   ntfs
3       2953.125   3133.265  primary   linux-swap
2       3133.266   5633.085  primary   ext3
4       5633.086   9787.148  extended
5       5633.117   6633.210  logical
6       6633.242   9787.148  logical   ext3
(parted)  help resize 
  resize MINOR START END        resize filesystem on partition MINOR

        MINOR is the partition number used by Linux.  On msdos disk labels, the
        primary partitions number from 1-4, and logical partitions are 5
        onwards.
        START and END are in megabytes
(parted)  resize 2 3133.266 4000.000 

Important : Soyez patient ! L'ordinateur travaille ! Vérifiez la diode du disque dur sur votre boîtier pour le confirmer. La procédure devrait prendre entre 2 et 30 minutes.

Après le redimensionnement, redémarrez votre vieux système Linux. Ensuite, suivez les instructions du Manuel Gentoo, chapitre : Préparer les disques. Lorsqu'il est temps d'entrer dans le nouveau système avec chroot, utilisez la commande suivante pour nettoyer votre environnement :

Exemple de code 5.5 : Nettoyer l'environnement lors de l'utilisation de chroot

# env -i HOME=$HOME TERM=$TERM chroot /mnt/gentoo /bin/bash
# /usr/sbin/env-update
# source /etc/profile

Appréciez !