-
-
-
-
-
- Tools
- Dev
-
Comme pour d'autres tâches de maintenance, lorsqu'il s'agit d'installer GNU/Linux Debian sur un PC, je dois prévoir différentes méthodes pour des cas particuliers où la méthode directe classique serait inopérante.
J'ai été amené à créer un patch de l'image Debian Netinst afin d'être certain de pouvoir installer Debian sur n'importe quel PC à domicile.
Parfois, le lecteur DVD du PC est défectueux, trop vieux pour lire les supports réinscriptibles ou bien le DVD lui-même est corrompu.
Le manuel d'installation Debian préconise d'installer Debian depuis une clé USB clonée depuis le DVD d'installation. Pendant la phase de démarrage du PC, le BIOS identifie la clé USB comme un disque CD au format ISO-9660 ce qui permet à l'installateur Debian de démarrer.
Dans un terminal linux, cloner une image DVD dans une clé USB est aussi simple que cela :
Le contournement n°1 fonctionne souvent la première fois si la clé est neuve mais échoue les fois suivantes en raison de la mort des cases mémoires à mesure que l'on écrit sur le périphérique flash (on peut vérifier par : cmp /chemin/vers/le_fichier_dvd.iso /dev/sd..). Si l'on met à jour plusieurs fois la clé USB, ceci entraîne des surprises : l'installateur Debian se bloque par incapacité de lire certains fichiers sur le pseudo CD-ROM USB.
Le contournement officiel fourni par l'équipe est un outil appellé hd-media (cf. « Boot Debian from an USB device »).
hd-media rend possible l'installation de Debian depuis un fichier image disque à jour, placé sur un disque USB externe1).
Dans certains cas, il est impossible de démarrer le fichier iso du disque d'installation Debian par l'utilitaire hd-media : soit parce que le fichier iso est corrompu, soit parce qu'une autre image disque (Ubuntu, etc.) est prise en priorité.
On envisage alors d'installer Debian par internet au moyen du mini-CD d'installation Debian netinst. Malheureusement, à l'instar de l'image disque DVD Debian classique, ce mini-CD n'est pas censé être émulé en procédure loopback sous Grub-PC.
C'est ici qu'intervient mon contournement non officiel :
J'ai patché les images disques linux initiales de ces mini-CD amd64 et i386 afin qu'ils reconnaissent les répertoires d'emplacement de ces mini-CD décompressés.
Bien que le netinst d'origine soit un fichier d'image disque au format iso, ce netinst patché est un répertoire. Pour le démarrer, il faut donc utiliser le gestionnaire de démarrage Grub-PC.
Dans le fichier grub.cfg du bootloader Grub-PC, il suffit d'appeler le fichier initrd-patched.gz et de passer deux nouvelles options au noyau linux pour que l'installateur chargé en mémoire trouve le répertoire de son CD-ROM.
Ci-dessous, un exemple simple de programmation du bootloader Grub-PC, afin de démarrer l'installation de debian-netinst patché. Dans cet exemple, on suppose que les contenus des CDROM netinst patchés sont décompressés dans les répertoires /install-dirs/debian-netinst-amd64 et /install-dirs/debian-netinst-i386 de la clé USB :
function show_netinst_process { set pager=1 install_dir="$1" if test -f "$install_dir/debian-netinst-process-$lang.txt"; then cat "$install_dir/debian-netinst-process-$lang.txt" fi echo echo "Appuyez sur Entrer pour lancer l'installation netinst" read unset install_dir } probe --fs-uuid --set=cdrom_uuid "$root" menuentry "debian-netinst-amd64" [ show_netinst_process /install-dirs linux /install-dirs/debian-netinst-amd64/install.amd/vmlinuz setkmap=fr locale=fr_FR.UTF-8 vga=788 cdrom_uuid=$cdrom_uuid cdrom_dir=/install-dirs/debian-netinst-amd64 -- quiet initrd /install-dirs/debian-netinst-amd64/install.amd/initrd-patched.gz } menuentry "debian-netinst-i386" [ show_netinst_process /install-dirs linux /install-dirs/debian-netinst-i386/install.386/vmlinuz setkmap=fr locale=fr_FR.UTF-8 vga=788 cdrom_uuid=$cdrom_uuid cdrom_dir=/install-dirs/debian-netinst-i386 -- quiet initrd /install-dirs/debian-netinst-i386/install.386/initrd-patched.gz }
Voici le contenu du fichier $install_dir/debian-netinst-process-fr.txt évoqué ci-dessus :
L'installation du netinst patche s'interrompt juste apres l'installation du systeme de base. Voici comment continuer l'installation : 1 - Le menu s'affiche : choisir d'installer grub. 2 - Au redemarrage du PC, retirer la cle USB. 3 - Apres redemarrage, lancer le programme suivant : /root/firstboot
Voici les fichiers tarball :