Installation d'une CentOS 5 sur un portable sans lecteur CD ou DVD à l'aide de PXE

Il est parfois dans la vie des moments ou rien ne va. Ainsi, lors d'une tentative d'installation d'une centos5 sur un ordinateur portable, j'ai pu constater que son lecteur CD était défectueux. Qu'à cela ne tienne, la carte réseau du portable supportant le boot PXE? nous allons l'installer en réseau... Au fait, la machine est un Acer 292WLMI, mais est en fait un barebone Compal CL51. J'ai également testé la me manip surun Xbook (Compal CL50) avec succès.

Pré requis:

  • Je dispose d'un serveur sous CentOS 4 sur le lan, qui est serveur web, DNS, DHCP, FTP, SMB, NFS etc...
  • Le serveur HTTP est configuré et fonctionnel
  • Le serveur DHCP est configuré et fonctionnel
  • J'ai relevé l'adresse MAC du portable
  • J'ai téléchargé les images ISO de la Centos 5 dans /shares/ISO

Nous allons installer les packages à partir du serveur http du CentOS 4.

La première étape consiste en la préparation de ce serveur http :

# Préparation de l'espace de téléchargement. 
# Ici il aura lieu dans http://monserveur/centos5
cd /mon_repertoire_racine_webs/html/
mkdir centos5
cd centos5
mount /shares/iso/CentOS-5.0-i386-bin-1of6.iso /media/cdrom -o loop=/dev/loop0
cp -Rf /media/cdrom/* .
umount /media/cdrom
mount /shares/iso/CentOS-5.0-i386-bin-2of6.iso /media/cdrom -o loop=/dev/loop0
cp -Rf /media/cdrom/* .
umount /media/cdrom
mount /shares/iso/CentOS-5.0-i386-bin-3of6.iso /media/cdrom -o loop=/dev/loop0
cp -Rf /media/cdrom/* .
umount /media/cdrom
mount /shares/iso/CentOS-5.0-i386-bin-4of6.iso /media/cdrom -o loop=/dev/loop0
cp -Rf /media/cdrom/* .
umount /media/cdrom
mount /shares/iso/CentOS-5.0-i386-bin-5of6.iso /media/cdrom -o loop=/dev/loop0
cp -Rf /media/cdrom/* .
umount /media/cdrom
mount /shares/iso/CentOS-5.0-i386-bin-6of6.iso /media/cdrom -o loop=/dev/loop0
cp -Rf /media/cdrom/* .
umount /media/cdrom
mkdir disk1
mkdir disk2
mkdir disk3
mkdir disk4
mkdir disk5
mkdir disk6
mount /shares/iso/CentOS-5.0-i386-bin-1of6.iso /home/webs/xxx/html/centos5/disk1 -o loop
mount /shares/iso/CentOS-5.0-i386-bin-2of6.iso /home/webs/xxx/html/centos5/disk2 -o loop
mount /shares/iso/CentOS-5.0-i386-bin-3of6.iso /home/webs/xxx/html/centos5/disk3 -o loop
mount /shares/iso/CentOS-5.0-i386-bin-4of6.iso /home/webs/xxx/html/centos5/disk4 -o loop
mount /shares/iso/CentOS-5.0-i386-bin-5of6.iso /home/webs/xxx/html/centos5/disk5 -o loop
mount /shares/iso/CentOS-5.0-i386-bin-6of6.iso /home/webs/xxx/html/centos5/disk6 -o loop

Il va ensuite nous falloir préparer un fichier Kickstart

Afin d'automatiser l'installation il nous aut un fichier kick start. Ceci se fait très simplement ... en lisant la documentation.

Nous allons ensuite préparer notre serveur CentOS 4 pour que le serveur PXE soit fonctionnel.

Utiliser system-config-netboot (l'installer si nécessaire) sous X et préparer l'environnement PXE (documentation ici) Ensuite, ajouter l'hote PXE avec le même utilisaire (documentation ici)

Activer le serveur tftp et stopper le firewall

N'ayant pas envie de laisser le serveur tftp après installation, et donc de configurer le firewall pour sécuriser le service tftp, j'ai décider de stopper le firewxall durant l'installation via PXE. Il sera remis à l'issue.

/sbin/chkconfig --level 345 xinetd on 
/sbin/chkconfig --level 345 tftp on
service xinetd restart
service iptables stop

Modification du serveur DHCP pour autoriser le boot PXE

--- Modifier dhcpd.conf et ajouter :
allow booting;
allow bootp;
class "pxeclients" { 
	match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; 
	next-server 192.168.0.250;
	filename "linux-install/pxelinux.0"; 
	}

Booter la machine

  • Elle devrait prendre une adresse IP
  • Elle devrait charger l'image de boot
  • Elle devrait lancer l'installer
  • Elle devrait trouver le fichier Kickstart, sinon faire l'install en manuel

Relancer firewall et arrêter tftp

chkconfig tftp off
service xinetd restart
service iptables start
umount /home/webs/xxx/html/centos5/disk1
umount /home/webs/xxx/html/centos5/disk2
umount /home/webs/xxx/html/centos5/disk3
umount /home/webs/xxx/html/centos5/disk4
umount /home/webs/xxx/html/centos5/disk5
umount /home/webs/xxx/html/centos5/disk6