Installer 3 CD Linux sur une clef USB
Installer une distribution Linux sur une clef USB, c'est bien. Mais, vu la taille des clefs USB actuelles, c'est un peu du gâchis de n'en mettre qu'une seule. Pourquoi pas, par exemple, un SystemRescueCD, un CD Ubuntu i386 et un CD Ubuntu AMD64 ?
Cette méthode permet d'installer 2 ou 3 distributions Linux sur une même clef USB (voire 41 en installant GRUB sur la même partition que l'un des CD).
Procédure
Identifiez le périphérique correspondant à la clef USB
- Insérez la clef USB.
Dans un terminal administrateur, utilisez la commande dmesg | tail -n 50 pour identifier le périphérique :
[109779.538284] usb-storage: device found at 9 [109779.538290] usb-storage: waiting for device to settle before scanning [109784.530294] usb-storage: device scan complete [109784.532763] scsi 10:0:0:0: Direct-Access Generic Flash Disk 8.07 PQ: 0 ANSI: 2 [109784.533545] sd 10:0:0:0: Attached scsi generic sg3 type 0 [109784.555079] sd 10:0:0:0: [sdc] 4040704 512-byte logical blocks: (2.06 GB/1.92 GiB) [109784.573909] sd 10:0:0:0: [sdc] Write Protect is off [109784.573919] sd 10:0:0:0: [sdc] Mode Sense: 03 00 00 00 [109784.573925] sd 10:0:0:0: [sdc] Assuming drive cache: write through [109784.599541] sd 10:0:0:0: [sdc] Assuming drive cache: write through [109784.599553] sdc: sdc1 sdc2 sdc3 sdc4 [109785.182447] sd 10:0:0:0: [sdc] Assuming drive cache: write through [109785.182466] sd 10:0:0:0: [sdc] Attached SCSI removable disk
Ici, le périphérique utilisé est sdc (il faudra donc l'appeler /dev/sdc lorsque nous aurons besoin d'y faire référence).
Dans le reste de cette procédure, il faudra remplacer /dev/sdc par le nom de votre clef USB.
Utilisez gparted pour formater la clef USB
Utilisez gparted pour formater la clef USB. Créez une partition FAT32 de 32 Mo et trois partitions FAT32 pour les distributions Linux. Prévoyez à chaque fois un peu plus que la taille du CD pour avoir de la marge.
- Placez-vous sur le périphérique correspondant à votre clef USB.
Supprimez les partitions existantes (
Toutes les données de la clef seront perdues !). Créez une première partition pour GRUB (/dev/sdc1) :
- Taille : « 32 Mo ».
- Créer comme : « Partition primaire ».
- Système de fichier : « fat32 ».
- Étiquette : « GRUB ».
Créez une deuxième partition pour le premier CD (/dev/sdc2) :
- Taille : un peu plus que la taille de votre 1er CD.
- Créer comme : « Partition primaire ».
- Système de fichier : « fat32 ».
Créez une troisième partition pour le deuxième CD (/dev/sdc3) :
- Taille : un peu plus que la taille de votre 2e CD.
- Créer comme : « Partition primaire ».
- Système de fichier : « fat32 ».
Créez une quatrième partition pour le troisième CD (/dev/sdc4) :
- Taille : un peu plus que la taille de votre 3e CD.
- Créer comme : « Partition primaire ».
- Système de fichier : « fat32 ».
- Appliquez vos modifications.
Placez en premier les CD les plus petits (ou les plus importants pour vous, comme un CD de secours). En effet, sur des systèmes un peu ancien, il peut être impossible de démarrer sur une partition située trop loin sur le disque
Installation d'un SystemRescueCD
Téléchargez l'image ISO du SystemRescueCD.
Montez la partition sur laquelle vous voulez installer SystemRescueCD (par exemple avec mount -t vfat /dev/sdc2 /mnt [en remplaçant /dev/sdc2 par le nom de la partition]).
Utilisez un gestionnaire d'archive (comme file-roller) pour copier le contenu de l'image ISO sur la partition.
Sur la partition, renommez le répertoire isolinux en syslinux.
Dans syslinux, renommez le fichier isolinux.cfg en syslinux.cfg.
Démontez la première partition de la clef USB (par exemple avec un umount /dev/sdc2).
Dans un terminal administrateur, entrez les commandes suivantes pour rendre la partition amorçable (en remplaçant /dev/sdc2 par le nom de la partition où est installé le SystemRescueCD) :
syslinux /dev/sdc2
Installation d'un CD Ubuntu
Avec l'outil « Créateur de disque de démarrage USB » (usb-creator-gtk), installez votre image ISO Ubuntu sur la partition de votre choix.
Installez GRUB
Une fois installés vos 3 images CD, vous pouvez passer à l'installation de GRUB.
Téléchargez la dernière version de GRUB Legacy (version 0.9x) pour i386 sur le serveur FTP de GRUB (grub-0.97-i386-pc.tar.gz par exemple).
Montez la première partition de la clef USB (par exemple avec mount -t vfat /dev/sdc1 /mnt).
Décompressez l'archive et recopiez le répertoire boot qu'elle contient dans la première partition.
Créez un fichier menu.lst dans boot/grub (de la première partition) :
timeout 120 color light-gray/black light-blue/black title NOM DU PREMIER LINUX rootnoverify (hd0,1) makeactive chainloader +1 boot title NOM DU DEUXIÈME LINUX rootnoverify (hd0,2) makeactive chainloader +1 boot title NOM DU TROISIEME LINUX rootnoverify (hd0,3) makeactive chainloader +1 boot
En remplaçant simplement « NOM DU PREMIER LINUX », « NOM DU DEUXIÈME UBUNTU » et « NOM DU TROISIEME LINUX » par les noms de vos CD (par exemple « SystemRescueCD 1.5.1 » ou « Ubuntu 9.10 Karmic Koala 32bit »).Démontez la première partition de la clef USB (par exemple avec un umount /dev/sdc1).
- Dans un terminal administrateur, entrez les commandes suivantes pour installer GRUB :
grub --batch --device-map=/dev/null <<FDT device (hd0) /dev/sdc root (hd0,0) setup (hd0) quit FDT
Vous devrez recommencer cette étape si vous mettez à jour vos images CD. N'oubliez pas de remplacer /dev/sdc par le périphérique de votre clef USB.
- Si tout se passe bien, cela devrait donner quelque-chose comme ça :
# grub --batch --device-map=/dev/null <<FDT > device (hd0) /dev/sdc > root (hd0,0) > setup (hd0) > quit > FDT [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> device (hd0) /dev/sdc grub> root (hd0,0) grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/fat_stage1_5" exists... yes Running "embed /boot/grub/fat_stage1_5 (hd0)"... 16 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done. grub> quit
Et voilà, c'est terminé !
Notes
Nommage des disques pour GRUB
GRUB numérote les disques et les partitions à partir de 0.
- (hd0) est le premier disque (dur).
- (hd1) est le deuxième disque.
- ...
- (hd0,0) est la première partition du premier disque.
- (hd0,1) est la deuxième partition du premier disque.
- (hd0,2) est la troisième partition du premier disque.
- ...
Lorsque l'on démarre sur un disque USB, le disque de démarrage est toujours le premier disque. Donc, dans la configuration GRUB (menu.lst), le disque USB sera connu comme (hd0).
Commentaires et suggestions
N'hésitez pas à m'envoyer vos critiques, suggestions et idées d'améliorations à l'adresse <jean DASH philippe DOT guerard AT tigreraye DOT org>.
Références
L'article Wikipédia sur les partitions de disques durs.
L'article Wikipédia sur le cylindre 1024 (en anglais).
Comment installer GRUB sur disquette (FAQ GRUB).
Comment démarrer sur un autre système d'exploitation (manuel GRUB).
Le nommage des disques (manuel GRUB).
La procédure d'installation de SystemRescueCD sur clef USB.
On ne peut pas dépasser 4, car c'est le nombre maximal de partitions primaires d'une table de partitions et que seules les partitions primaires sont amorçables. (1)

