Le Blog de C-quad

Archive pour février 2013

Installer via le réseau – boot PXE

J’installe depuis un bout de temps, mes ordinateurs en passant par le réseau. Jusqu’à présent je me référais en cas de doute à la documentation Fedora pour configurer le serveur hébergeant les images.

Cela fonctionnait très bien jusqu’à ce que je décide de migrer mon serveur vers CentOS 6. Et oui system-config-netboot n’est plus disponible sur CentOS 6.

Nous allons voir ici comment se passer de cet utilitaire. Plutôt que de détailler uniquement la configuration du netboot, et d’avoir à aller lire le reste sur d’autres sites, je détaille ici la procédure complète.

Préparation – Installation des logiciels nécessaires

Afin de pouvoir effectuer une installation grâce au réseau, il est nécessaire d’avoir quelques logiciels sur le serveur :

  • Un serveur DHCP : qui va attribuer une adresse IP au PC qui démarre et l’envoyer vers le boot PXE.
  • Un serveur TFTP : qui va héberger la partie nécessaire au boot
  • Un serveur HTTP : qui va héberger les ISO d’install. Ceci étant optionnel, il est tout à fait possible d’utiliser un répertoire NFS ou autre.

Nous allons donc procéder à l’installation de ces divers services :

# yum install syslinux xinetd tftp-server dhcp

Le service tftp est lancé par xinetd, il est nécessaire de l’activer :

# chkconfig tftp on
# service xinetd restart

Le service dhcp doit pointer vers le serveur hébergeant le boot.
Nous allons donc éditer le fichier /etc/dhcp/dhcpd.conf, Voici en exemple le mien :

 ddns-update-style none;
 ignore client-updates;
 authoritative;
 allow booting;
 allow bootp;
 subnet 192.168.0.0 netmask 255.255.255.0 {
        option routers 192.168.0.254;        # passerelle par défaut
        option subnet-mask 255.255.255.0;    # masque de sous-réseau
        option domain-name "cquad.lan";    # nom de domaine
        option domain-name-servers 212.27.40.241, 212.27.40.240;# serveurs DNS (free)
        range 192.168.0.50 192.168.0.100;    # plage d’adresse
        default-lease-time 21600;        # durée du bail en secondes
        max-lease-time 43200 ;            # durée maxi du bail en sec.
        next-server 192.168.0.5;             # adresse du serveur tftp     
        filename "pxelinux.0";   # fichier a chercher sur le serveur tftp
}

Les informations nous concernant sont les 2 dernières lignes :

        next-server 192.168.0.5;             # adresse du serveur tftp     
        filename "pxelinux.0";   # fichier a chercher sur le serveur tftp

Après avoir modifié cette configuration, il est nécessaire de relancer le service dhcp afin qu’elle soit prise en compte :

service dhcpd restart

Publier les images ISO d’installation

Nous allons créer un point de montage qui correspond à la distribution qui sera installée via PXE et y monter l’image du DVD ou CD :

# mkdir -p /var/pxe/fedora17
# mount -t iso9660 -o loop /home/Ced/Téléchargements/iso/Fedora-17-x86_64-DVD.iso /var/pxe/fedora17

Vous pouvez bien sur monter l’image via /etc/fstab

Il faut indiquer au serveur apache qu’il doit publier ces informations :

Nous créons le fichier suivant /etc/httpd/conf.d/pxeboot.conf :

Alias /fedora17 /var/pxe/fedora17
<Directory /var/pxe/fedora17>
 Options Indexes FollowSymLinks
 Order Deny,Allow
 Deny from all
 Allow from 127.0.0.1 10.0.0.0/24
 </Directory>
Penser à vérifier et recharger la configuration apache :
# apachectl -t
 Syntax OK
# service httpd reload

Configuration du boot

Cette partie était précédemment réalisée par l’utilitaire system-config-netboot. Nous allons désormais le faire manuellement.

A noter que cela n’est pas spécialement une mauvaise chose, cela permet de comprendre le fonctionnement.

Nous allons créer un répertoire qui va contenir le menu de démarrage lors du boot PXE :

# mkdir -p /var/lib/tftpboot/pxelinux.cfg

Nous recopions le fichier pxelinux.0 qui est pointé par la configuration DHCP et le fichier qui permet de gérer le menu:

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

Pour chaque distribution à installer, nous allons ajouter un dossier contenant les fichiers nécessaires à son installation :

# mkdir /var/lib/tftpboot/fedora17

Nous y recopions les données nécessaires au boot :

# cp /var/pxe/fedora17/images/pxeboot/vmlinuz /var/lib/tftpboot/fedora17/
# cp /var/pxe/fedora17/images/pxeboot/initrd.img /var/lib/tftpboot/fedora17/

Il nous reste à définir les options du boot dans le fichier /var/lib/tftpboot/pxelinux.cfg/default

# create new

timeout 100
default menu.c32

menu title ########## PXE Boot Menu ##########
label 1
   menu label ^1) Install Fedora 17
   kernel fedora17/vmlinuz
   append initrd=fedora17/initrd.img method=http://192.168.0.5/fedora17 devfs=nomount

label 2
   menu label ^2) Boot from local drive
   localboot

Attention, Il est nécessaire d’ouvrir le port 69 en UDP afin que le serveur TFTP soit accessible

Il ne vous reste plus qu’a démarrer le PC à installer en lui demandant dans le BIOS de démarrer sur la carte réseau.

Régler la luminosité d’écran avec les touches Fn

Je dispose d’un ordinateur portable Acer Aspire V3-571G qui fonctionne sous Fedora 17.  Tout fonctionne bien sous Linux, mis à part la gestion de la carte graphique (Nvidia Optimus), dont j’ai désactivé dans le BIOS la partie Nvidia pour n’en garder que la carte Intel peu consommatrice en ressource.

Néanmoins, le réglage de la luminosité (qui fonctionnait bien auparavant) nécessite maintenant de modifier quelques options au démarrage :

Ajouter dans le fichier  /etc/default/grub à la ligne commençant par « GRUB_CMDLINE_KERNEL » :

acpi_osi=Linux acpi_backlight=vendor

Créer une nouvelle configuration basée sur le système en cours d’exécution et ce qui se trouve dans /boot ainsi que ce qui est défini dans /etc/default/grub avec la commande :

grub2-mkconfig -o /boot/grub2/grub.cfg

Redemarrer pour prendre en compte les modifications.