Les outils :
Tout d’abord, il vous faut :- un PC sous Linux :]
- extlinux, inclus dans le package sys-boot/syslinux
- une clef USB un peu plus grosse que votre LiveCD ou LiveDVD
- un peu de patience
La mise en oeuvre :
On crée une première partition en FAT32 pour nos données (afin que celles-ci soient accessibles partout sans problèmes) avec, par exemple, GParted ou (c)fdisck et on veille à laisser de l’espace libre pour une seconde partition dédiée au Linux en LiveCD.Pourquoi dans une seconde partition ? En fait, Windows ne trouve que la première partition d’un périphérique connecté en USB (même si vous avez deux partitions en FAT32 ou NTFS), et ignore les autres. Du coup, si vous voullez continuer à utiliser votre clef USB pour autre chose qu’un Linux en « LiveUSB » : vous devez utiliser la seconde partition pour cette usage.
Du coup, on crée notre seconde partition (sdb2) en ext2, car ce système de fichier ne possède pas de journalisation. En effet, nous n’en avons pas besoin, car les changements apportés sur notre futur LiveUSB ne seront pas retrouvés au redémarrage.
$ mkfs.ext2 -b1024 -m0 -L"LiveUSB" -O sparse_super /dev/sdb2 mke2fs 1.41.9 (22-Aug-2009) Étiquette de système de fichiers=LiveUSB Type de système d'exploitation : Linux Taille de bloc=1024 (log=0) Taille de fragment=1024 (log=0) 179200 i-noeuds, 2859568 blocs 0 blocs (0.00%) réservés pour le super utilisateur Premier bloc de données=1 Nombre maximum de blocs du système de fichiers=69992448 350 groupes de blocs 8192 blocs par groupe, 8192 fragments par groupe 512 i-noeuds par groupe Superblocs de secours stockés sur les blocs : 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 1024001, 1990657, 2809857 Écriture des tables d'i-noeuds : complété Écriture des superblocs et de l'information de comptabilité du système de fichiers : complété Le système de fichiers sera automatiquement vérifié tous les 29 montages ou après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i pour écraser la valeur.
Ensuite, on passe à zero l’intervalle de vérification du système de fichier (-i0), et on arrête le comptage du nombre de montages (-c0) :
tune2fs -c0 -i0 /dev/sdb2 tune2fs 1.41.9 (22-Aug-2009) Initialisation du nombre maximal de montages à -1 Initialisation de l'intervalle de vérification à 0 secondes
On crée ensuite un point de montage pour cette partition et on la monte :
mkdir /mnt/usb ; mount /dev/sdb2 /mnt/usb ; cd /mnt/usb
On monte l'ISO dans un répertoire et on copie le contenu du liveCD sur la clef USB :
mkdir /mnt/iso/ mount -o loop -t iso9660 ~/Desktop/livedvd-x86-amd64-32ul-11.0 /mnt/iso cp -a /mnt/iso/* .
On déplace les fichiers de boot, et on supprime des fichiers inutiles :
mv isolinux extlinux
mv extlinux/isolinux.cfg extlinux/extlinux.conf
rm extlinux/{boot.cat,elilo.efi,isolinux.bin}On installe extlinux sur le secteur de boot avec :
extlinux -i ./extlinux
On modifie le fichier de configuration de boot avec nano :
nano extlinux/extlinux.conf
Pour y ajouter l’option « root=LABEL=LiveUSB » sur la ligne qui commence par « append ». Par exemple, voici mon fichier de configuration :
$ cat extlinux/extlinux.conf default gentoo timeout 150 prompt 1 display boot.msg F1 kernels.msg F2 F2.msg F3 F3.msg F4 F4.msg F5 F5.msg F6 F6.msg F7 F7.msg menu title LiveUSB Gentoo 10.1 x64 label gentoo kernel gentoo append root=LABEL=LiveUSB init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot initrd=gentoo.igz vga=791 splash=silent,theme:livecd-2007.0 console=tty1 quiet label gentoo-nofb kernel gentoo append root=LABEL=LiveUSB init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot initrd=gentoo.igz label memtest86 kernel memtest86
Une fois fait, on peut démonter nos partitions :
umount /mnt/usb ; umount /mnt/iso ; rmdir /mnt/usb ; rmdir /mnt/iso
Enfin, on rend notre partition bootable :
cat /usr/share/syslinux/mbr.bin > /dev/sdb
Vous pouvez maintenant rebooter pour tester votre distribution Linux :]