Installer Debian à partir d’une clé ou un disque dur USB
Depuis 2001, la plupart des PC sont capables de démarrer directement sur un périphérique USB. Malheureusement on trouve peu de documentation claire sur le sujet, pourtant cette méthode présente de nombreux avantages. Je vais donc décrire comment démarrer et personnaliser l’installateur Debian à partir d’une clé USB.
I. Deux méthodes de boot différentes
D’abord il faut s’assurer que le BIOS contient les périphériques USB dans sa séquence de boot. On trouve deux méthodes ’USB-ZIP’ et ’USB-HDD’. La première est plus ancienne et lit la clé USB comme une disquette, il ne doit pas y avoir de partitions, et le premier secteur doit contenir un programme de boot de 512 octets. La seconde utilise la clé comme un disque dur, avec le même format de MBR et de partitions. De nos jours, tous les disques USB sont formatés dans le second format plus standard, par conséquent, si votre BIOS dispose de l’option USB-HDD, préférez celle-ci.
II. L’installeur Debian pour le boot USB
Le dépôt de l’installeur Debian comporte un dossier hd-media pour ce genre de boot :
vmlinuz - un noyau Linux Debian standard
initrd.gz - un ramdisk avec l’installeur de base (sans le support reseau) et un module permettant de charger n’importe quelle image ISO de CD ou DVD d’installation Debian.
gtk/initrd.gz - le même ramdisk, mais avec l’installeur graphique GTK et non plus nCurses.
boot.img.gz - une image de clé USB préfabriquée avec les éléments décrits ci-dessus, amorcés par syslinux
ftp://ftp.debian.org/debian/dists/sid/main/installer-i386/current/images/hd-media/
III. Une première approche quick’n’dirty (la seule qui fonctionne en USB-ZIP)
Il faut disposer d’une clé d’une capacité d’au moins 128Mo. On va se servir de l’image préfabriquée boot.img.gz
Si votre clé se trouve en /dev/sda, il suffit de télécharger l’image boot.img.gz et de l’écrire sur la clé :
# zcat boot.img.gz > /dev/sda
(bien entendu toutes les données de la clé seront ecrasées)
Il est alors possible de booter sur la clé avec la méthode USB-ZIP, mais il manque encore l’image du CD d’installation. Pour l’ajouter :
# mount /dev/sda /mnt
# cp debian-testing-i386-businesscard.iso /mnt/
# umount /mnt
Vous pouvez mettre l’image CD que vous voulez, tant qu’elle tient sur la clé. Une fois l’installation commencée, l’image sera chargée toute seule.
IV.Personnalisation de l’installeur USB
On va maintenant fabriquer nous-mêmes la clé, en la personnalisant et en utilisant la méthode USB-HDD.
Pour commencer il faut créer une partition FAT16 qui va contenir les fichiers de l’installeur et l’image CD (prévoyez 30Mo pour le premier, le second pourra varier entre 30Mo (Buisinesscard) et 4Go (DVD)) :
# fdisk /dev/sda
Device Boot Start End Blocks Id System
/dev/sda1 1 198 49073 6 FAT16
# mkdosfs /dev/sda1
# mount /dev/sda1 /mnt
# cp initrd.gz /mnt/
# cp vmlinuz /mnt/
# cp gtk/initrd.gz /mnt/initrdg.gz
# cp debian-testing-i386-businesscard.iso /mnt/
Maintenant, il nous faut un chargeur de démarrage. Après plusieurs essais je trouve que GRUB se comporte bizzarement avec les clés USB (ne trouve pas le stage1 pour 2 PC sur 3 lors de mes tests), Lilo a marché dans tous les cas, c’est donc lui qu’on va utiliser (installez le paquet lilo). Voici le fichier lilo.conf que j’ai utilisé :
disk=/dev/sda
bios=0x80
boot=/dev/sda
map=/tmp/map
install=/tmp/boot-compat.b
keytable=/tmp/fr.kmp
lba32
ignore-table
force-backup=/dev/null
prompt
image=/mnt/vmlinuz
label=Install
initrd=/mnt/initrd.gz
append=" vga=normal ramdisk_size=12000 root=/dev/ram rw"
image=/mnt/vmlinuz
label=GInstall
initrd=/mnt/initrdg.gz
append=" video=vesa:ywrap,mtrr vga=788 ramdisk_size=12000 root=/dev/ram rw"
Pour générer fr.kmp (et donc avoir Lilo avec un clavier français) :
$ keytab-lilo fr > /tmp/fr.kmp
Finalemment :
# lilo -C lilo.conf -M /dev/sda
# lilo -C lilo.conf
La clé devrait démarrer avec le choix entre une installation graphique et texte.
V. Méthode hybride
On peut aussi combiner les deux méthodes et utiliser l’image préfabriquée en USB-HDD, ceci a l’avantage de garder le joli menu Syslinux avec ses menus d’aide, ce qui n’était pas le cas de l’installation artisanale précédente.
Comme pour la clé précédente, il faut créer une partition FAT16 (cette fois-ci avec le drapeau boot activé).
Device Boot Start End Blocks Id System
/dev/sda1 * 1 198 49073 6 FAT16
On va ensuite extraire le contenu de l’image préfabriquée et le copier :
$ gunzip boot.img.gz
$ mkdir /tmp/debian-usb
# mount -o loop boot.img /tmp/debian-usb
# mount /dev/sda1 /mnt
# cp /tmp/debian-usb/* /mnt/
# umount /tmp/debian-usb
Vous voyez alors que l’image préfabriquée contient les mêmes fichiers initrd, linux, initrdg plus les fichiers de configuration de Syslinux (un chargeur de démarrage pour disquettes).
Il faut à présent réinstaller le secteur d’amorçage de Syslinux. Installez les paquets mtools et syslinux, puis exécutez :
# syslinux /dev/sda1
Pour utiliser syslinux avec un clavier français :
$ keytab-lilo fr > /mnt/fr.kmp
et ajoutez la ligne KBDMAP fr.kmp
dans /mnt/syslinux.cfg
Comme pour les autres variantes, il faut copier l’image CD sur la clé :
# cp debian-testing-i386-businesscard.iso /mnt/
Maintenant on a une partition 1 avec un secteur de boot, il faut qu’un chargeur de démarrage du MBR lui passe la main. Pour ce faire, on va encore utiliser Lilo avec le fichier de configuration suivant :
disk=/dev/sda
bios=0x80
boot=/dev/sda
map=/tmp/map
install=/tmp/boot-compat.b
keytable=/tmp/fr.kmp
lba32
ignore-table
force-backup=/dev/null
other=/dev/sda1
label=Debian
Même remarque qu’avant pour fr.kmp.
# lilo -C lilo.conf -M /dev/sda
# lilo -C lilo.conf
On peut enfin démarrer dessus, avec un beau menu plein d’options :)
VI. Conclusion
L’installation USB présente beaucoup d’avantages
Pas de CD à graver.
C’est plus rapide (plus de CD qui grince).
On peut facilement changer d’image ISO.
Il est possible d’automatiser l’installation avec un fichier preseed.cfg sur la clé. (voir la section 4.7 du manuel d’installation Debian)
Commentaires
Installer Debian à partir d’une clé ou un disque dur USB
Génial, toujours d’actualité, je m’en suis servi hier soir pour faire une installation.
Installer Debian à partir d’une clé ou un disque dur USB
Installer Debian à partir d’une clé ou un disque dur USB
Bonjour,
Dans vos explications, vous détaillez bien comment faire à partir de Linux. On devinne dès lors les commandes ou les marches a suivre sous Windows.
MAIS : Comment installer LILO alors que le PC est sous Windows ?
>Avant de passer au pinguin, faudrait enlever la fenêtre !<
Merci
> Installer Debian à partir d’une clé ou un disque dur USB
Mettre une capture d’écran ne me parait pas indispensable dans ce cas d’autant plus que tout les Bios sont différents.
Mais en effet, tu peux ajouter les manips en une phrase pour tes deux Bios différent pour guider l’utilisateur.
> Installer Debian à partir d’une clé ou un disque dur USB
D’accord, je vais essayer de prendre des captures d’écran, mais c’est pas évident au démarrage de l’ordi. Justement j’en ai deux avec deux bios radicalement différents qui supportent l’USB :)
> Installer Debian à partir d’une clé ou un disque dur USB
Voilà c’est corrigé, bonne remarque :)
> Installer Debian à partir d’une clé ou un disque dur USB
Bonsoir Alexis,
Je viens de lire ton article et je me demandais s’il ne serait pas intéressant de développer ton premier point concernant le Bios, à savoir, comment mettre l’USB-HDD par défaut dans le bios. pour certains non-initiés comme moi, par exemple, ces petites intros (que l’on peut trouver ailleurs j’en conviens) nous sont bien utiles pour nous lancer dans la suite de l’opération avec une certaine assurance... A+
> Installer Debian à partir d’une clé ou un disque dur USB
Bonjour Alexis,
J’ai tout lu mais j’ai pas testé. L’article est claire et très intéressant.
J’ai une toute petite remarque concernant les commandes :