HOWTO Installation de Gentoo sans disque dur

Un article de Gentoo Linux Wiki.

Cet article fait partie des HOWTOs.
Méthodes d'installation CD Live Noyau et matériel Portables et Notebooks Portage Système Réseaux et Services Serveur X Logiciels fréquemment utilisés Autres

Sommaire

[modifier] Introduction

L'objectif de ce HOWTO est de présenter une méthode qui vous permettra de créer un poste de travail sans disque dur sous Gentoo, en utilisant seulement les possibilités offertes par certaines cartes réseaux proposant le démarrage par PXE, et en utilisant également le gestionnaire de démarrage de GRUB pour PXE. Cette méthode a été testée et fonctionne.


Pour pouvoir effectuer la manipulation, vous aurez besoin d'une carte réseau sur le poste client qui utilise le protocole PXE pour démarrer. De nombreuses cartes 3Com proposent cette possibilité par exemple.


Nous allons traiter de la partie client et de la partie serveur. Le client est la machine sans disque, et le serveur est la machine qui dispose d'un serveur DHCP et d'un serveur de fichiers NFS. Dans nos exemples, le client sera appelé eta et le serveur sigma, à vous d'adapter selon vos besoin.
Le serveur sigma aura l'adresse IP statique 192.168.1.20.


[modifier] Mise en place du serveur

Évidemment nous ne présenterons pas l'installation complète du serveur, mais seulement des parties qui nous intéressent. Pour le reste, référez-vous aux guides d'installation officiels.

[modifier] Créer les répertoires

La première chose à faire est de créer les répertoires dans lesquels votre système sans disque va être gardé. Nous créerons donc un répertoire /sansdisque dans lequel nous mettrons un répertoire par client sans disque (vous pouvez bien sûr adapter l'arborescence selon vos désirs) :

Code : Création des répertoires
mkdir /sansdisque 
mkdir /sansdisque/eta

eta est le nom de l'un des postes de travail sans disque dur.


Il est également intéressant de créer tout de suite un répertoire boot pour chacun des répertoires de clients :

Code : Répertoire boot
mkdir /sansdisque/eta/boot

[modifier] Configuration des serveurs DHCP et TFTP

Le client va récupérer les informations nécessaires au démarrage en utilisant le protocole DHCP et ira chercher tous les fichiers nécessaires en utilisant le protocole TFTP. Voici comment nous allons configurer la chose.


Installez DHCP et configurez-le pour vos besoins. Puis ajoutez ce qui suit au fichier /etc/dhcp/dhcpd.conf :

Fichier : /etc/dhcp/dhcpd.conf
option option-150 code 150 = text ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.1.10;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}

Cela affectera à votre client une adresse IP fixe, ainsi que le répertoire d'accès à l'image de démarrage pour PXE, dans notre cas, pxegrub. Il vous faudra remplacer l'adresse MAC de la carte réseau du client ainsi que le répertoire où vous mettrez à disposition les fichiers pour le client, avec celui que vous utilisez effectivement. Dans notre exemple, la configuration ne nécessite que le changement de l'adresse MAC.


Puis installez TFTP :

Code : Installation de tftp
emerge "net-misc/tftp-hpa"

Dans /etc/conf.d/in.tftpd vous mettrez les lignes suivantes :

Fichier : /etc/conf.d/in.tftpd
INTFTPD_PATH="/sansdisque"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"

[modifier] Configurer GRUB

Pour démarrer avec PXE nous utiliserons ici GRUB. Pour cela vous aurez besoin de le compiler vous-même à la main, pour lui permettre la compilation d'image PXE (ou bien plus simplement USE="netboot" emerge grub). Ne vous inquiétez pas, c'est simple à faire.


Allez donc récupérer la dernière version du code source de GRUB (par Internet, ou simplement en faisant emerge -f grub et récupérer l'archive dans le répertoire /usr/portage/distfiles) et copiez-le où vous le souhaitez, par exemple dans /root.

Puis préparez la compilation :

Code : Désarchiver et préparation à la compilation
tar zxvf grub-0.92.tar.gz 
cd grub-0.92 
./configure --help


Vous verrez alors une liste des options disponibles. Dans ces options, vous en verrez plusieurs pour des pilotes d'interfaces réseaux. Trouvez l'option qui vous permettra d'utiliser la carte réseau de votre client.
Dans notre cas, ce sera une carte 3Com 3c905.

Puis effectuez les commandes suivantes :

Code : Compilation
./configure --enable-diskless --enable-3c90x 
make


Ne faites pas un make install ce n'est pas nécessaire ! La compilation de GRUB a déjà généré l'image pxegrub dont nous avons besoin.

Quand la compilation aura fini, allez récupérer l'image pxegrub :

Code : Récupérer l'image pxegrub
cd stage2 
cp pxegrub /sansdisque/eta/boot/pxegrub

Maintenant créez le fichier de configuration de GRUB pour la machine cliente et configurez-le :

Code : Création du fichier de configuration
nano -w /sansdisque/eta/boot/grub.lst
Fichier : /sansdisque/eta/boot/grub.lst
default 0
timeout 30
title=Gentoo Sans disque
root (nd)
kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=192.168.1.20:/sansdisque/eta

Pour les options de nfsroot, l'adresse IP est celle de votre serveur et le répertoire est celui dans lequel se trouveront les fichiers (sur le serveur).

[modifier] Configurer le serveur NFS

NFS est assez simple à configurer. La seule chose que vous aurez à faire est d'ajouter la ligne suivante au fichier de configuration /etc/exports :

Fichier : /etc/exports
# /etc/exports: NFS file systems being exported. See exports(5). 
/sansdisque/eta eta(rw,sync,no_root_squash)


[modifier] Mettre à jour vos hôtes

Un point important à faire est de modifier votre fichier /etc/hosts pour qu'il puisse respecter vos besoins. Dans notre configuration, nous aurons donc dans notre fichier :

Fichier : /etc/hosts
127.0.0.1 localhost
192.168.1.10 eta.exemple.com eta
192.168.1.20 sigma.exemple.com sigma

[modifier] Configuration de Gentoo sur le serveur

Plusieurs méthodes ont été testées pour installer le système de base de votre machine cliente. La seule qui a fonctionné correctement est la suivante :


Redémarrez le serveur sur le LiveCD de Gentoo.

Suivez ensuite les instructions habituelles d'installation standard comme expliqué dans le manuel d'installation de Gentoo MAIS avec les différences suivantes :


[modifier] Monter un système de fichier

Quand vous aurez besoin de monter le système de fichier, effectuez la commande suivante (avec hda3 qui est la partition où vous avez créé le répertoire /sansdisque) :

Code : Monter la partition d'installation
mount /dev/hda3 /mnt/gentoo

C'est tout pour le moment.


[modifier] Archive de Stage et chroot

ATTENTION ! Faites bien attention à l'endroit où vous désarchivez votre stage ...


Nous utiliserons ici une archive de stage3 pour faire simple et rapide :

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

Puis suivez les étapes habituelles, jusqu'à arriver à la configuration du noyau.


[modifier] Configuration du noyau

Au moment de faire le make menuconfig pour configurer votre noyau, n'oubliez pas d'activer les options suivantes (en plus de celles recommandées par la documentation d'installation) :

  • Ajoutez le support de votre carte réseau
  • Dans les Networking options :
Code : Networking options

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

  • Dans File systems --> Network File Systems :
Code : Network File Systems

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


[modifier] Changer le fstab

Laissez seulement les lignes suivantes dans le fichier|

Fichier : /etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0


[modifier] Gestionnaire de démarrage

Il ne sert à rien d'en installer un, puisqu'on en a déjà un (pxegrub).


[modifier] Redémarrer le serveur

Finissez l'installation et redémarrez votre serveur. Il doit redémarrer comme auparavant (sinon vous avez fait une erreur). Démarrez les services DHCP, TFTPD et NFS.

[modifier] Démarrez le poste client

Maintenant démarrez votre poste client. Configurez le bios et la carte réseau pour utiliser le PXE en premier au démarrage (avant le lecteur CD ou le lecteur disquette).


La carte réseau devrait prendre son adresse IP en utilisant le DHCP, puis téléchargera l'image PXE de GRUB en utilisant le service TFTP.

Alors vous devriez avoir un joli menu de démarrage GRUB où vous devrez sélectionner le noyau sur lequel vous voudrez démarrer, et validez.

Si tout va bien, votre noyau devrait démarrer, monter le répertoire racine en utilisant NFS.


[modifier] Permettre l'utilisation de X.org XDMCP

Bon, maintenant vous pouvez utiliser votre client sans disque dur comme si c'était un client normal. Mais si par exemple le client est une vieille machine, lancer des applications graphiques serait stupide.

Vous pouvez tirer avantage de la puissance de votre serveur en plus de celle de votre client en installant distcc, puis avec distcc, installez votre serveur X sur le client. Ensuite, suivez ces informations (en) pour activer le XDMCP sur votre serveur.

Enfin, sur le client, faites un X -broadcast et vous aurez alors l'invite de connexion de votre gestionnaire de session qui s'affichera.

Dans ce cas, tout sera exécuté sur le serveur distant. Si cela n'est pas ce que vous souhaitez, lancez votre serveur X comme d'habitude sur le client. Il utilisera alors son propre matériel.



[modifier] Fin ?

Vous voilà en pleine possession d'un poste de travail sans disque dur qui pourra exécuter tout ce que vous souhaitez sur un serveur distant.

Vous pouvez faire partager votre expérience sur le forum de Gentoo.org. Si vous avez un quelconque problème, faires une recherche sur le forum avant de demander à l'auteur (voir plus bas). De nombreuses contributions ont déjà été faites sur le sujet (NdT : dans les sections en anglais surtout)

[modifier] À lire

Autres langues