LiveUSB - SliTaz sur un media USB

Methodes, type de media et notes

Ce document décrit les étapes à réaliser pour installer les fichiers nécessaires afin de démarrer SliTaz depuis un périphérique de type USB (clé, carte SD, disque dur externe). Ce n'est pas une installation du système à proprement parler, le mode de fonctionnemnt de SliTaz reste le même qu'en mode LiveCD, c'est à dire que le système sera entièrement chargé en mémoire vive (RAM) lors du démarrage. Avoir SliTaz sur un media USB vous permet de vous passer du cdrom sur les machines capables de démarrer depuis un périphérique USB et l'utiliser le même media pour stocker vos données personnelles de manière persistante. Il faut aussi savoir que tous les PC ne sont pas capables de démarrer directement sur USB et que le démarrage du système est plus long que depuis un cdrom.

Disque dur externe, carte SD ou clé USB

Un media de stockage USB peut être un disque dur externe de grande ou petite capacité, une carte de type SD/flash ou une clé USB. Vous pouvez par exemple, utiliser l'ancienne carte d'un appareil de photos numérique ayant au minimum une capacité de 32 Mb. Cela dit, l'utilisation de GRUB avec les clés USB ne réussi pas toujours et dépend du type de clé. Si l'utilisation de GRUB échoue, il est conseillé d'utiliser le gestionaire de démarrage EXTLINUX et d'installer un MBR fonctionnel sur la clé USB.

Pour commencer nous vous conseillons d'utiliser une partition formatée en ext3 et non au format natif FAT32. Le système de fichiers ext3 est un système de fichiers propre à GNU/Linux, robuste, fiable et illisible nativement depuis Windows, ce qui peut être un point positif ou négatif. A noter que vous pourrez aussi utiliser cette même partition pour stocker vos données de manière persistante via l'option home=usb proposée par SliTaz. Cela dit, vous pouvez aussi installer SliTaz sur une clé USB au format FAT32 comme suggéré sur le forum de SliTaz : SliTaz sur clé USB FAT32.

Étapes à réaliser

En gros, il faut récupérer les fichiers contenus sur le LiveCD, les copier sur le media USB et installer un gestionnaire de démarrage. A noter qu'il existe plusieurs gestionnaires de démarrage, Syslinux, GRUB ou encore Lilo. SliTaz fournit GRUB sur la version standard du LiveCD et dans les paquets du miroir, il a l'avantage de pouvoir aussi être utilisé pour démarrer d'autres systèmes d'expoitations et de proposer un SHell permettant par exemple de réinstaller GRUB dans le MBR (Master Boot Record) d'un disque dur.

LiveUSB en 2 commandes

Pour créer facilement un système Live tenant sur un media USB, vous pouvez utiliser TazUSB ou installer les fichiers manuellement. TazUSB est un utilitaire simple, efficace et bien testé. Vous pouvez créer un media en une ou deux commandes. Pour cela il vous faut un LiveCD de SliTaz et biensûr un media USB dont vous devez connaître le nom (fdisk -l ou blkid). Formatage optionnel et génération d'un media bootable reconnu comme /dev/sdb1:

 # tazusb format /dev/sdb1
 # tazusb gen-liveusb /dev/sdb1

Une fois le media généré, vous pouvez redémarrer sur votre media USB. Si vous désirez installer des applications, mettre à jour ou configurer le système et retouver vos modifications lors de a prochaine utilisation, il vous faut recréer le système compressé en utilisant la commande writefs de TazUSB. A noter que le menu de JWM propose par défaut des entrées pour écrire le système sur le media en utilisant gzip, lzma ou aucune compression (prend plus de place mais démarre beaucoup plus rapidement).

Préparer le media USB

Si vous avez déjà une partition au format ext3, vous n'avez pas besoin de reformater, sinon il faut créer un système de fichier avec l'utilitaire mkfs.ext3. Attention le formatage d'une partition détruit toutes les données qui s'y trouvent. Généralement, la première ou unique partition d'un media USB est reconnu par le noyau Linux comme /dev/sda, pour lister les périphériques et partitions disponibles vous pouvez utiliser la commande fdisk -l avant de créer le système de fichiers ext3 :

 # mkfs.ext3 /dev/sda1
 # mount -t ext3 /dev/sda1 /media/flash

Le formatage de la partition va créer un répertoire système nommé lost+found (perdu et trouvé), ce répertoire est utiliser par le système de fichier en cas de problèmes. Maintenant que le media est formaté et monté, vous pouvez copier le contenu du cdrom sur le périphérique, soit depuis un cdrom gravé, soit depuis une image ISO locale :

 # mount -t iso9660 /dev/cdrom /media/cdrom
 Ou :
 # mount -o loop slitaz-cooking.iso /media/cdrom

Copie de tous les fichiers contenu dans le répertoire boot/ du LiveCD, il se peut que le système de fichiers compressé soit nommé rootfs.lz, si c'est le cas, il faut le renommer en rootfs.gz :

 # cp -a /media/cdrom/boot /media/flash
 # mv /media/flash/boot/rootfs.lz /media/flash/boot/rootfs.gz

Installer et utiliser GRUB

Pour installer GRUB (GRand Unified Bootloader) il faut commencer par copier les fichiers stage1 et stage2 depuis /usr/lib/grub/i386-pc dans le répertoire boot/grub du media USB. Une fois les fichiers copiés et le media trouvé par GRUB, vous allez pouvoir installer le gestionnaire de démarrage dans le MBR du périphérique. Copie des fichiers, lancement du SHell GRUB et recherche de stage1 fraîchement copié :

 # cp /usr/lib/grub/i386-pc/stage[1-2] /media/flash/boot/grub
 # grub
 grub> find /boot/grub/stage1

Ce qui peut donner (hd0,0), (hd1,0) ou encore (hd2,0), GRUB voit le premier disque hda comme hd0, il faut donc modifier les valeures en fonction de votre configuration. Il se peut aussi que votre media ne soit pas trouvé, dans ce cas vous pouvez utiliser le bootloader EXTLINUX. Pour installer GRUB vous pouvez utiliser les commandes root et setup. Pour quitter le SHell GRUB c'est la commande quit :

 grub> root (hd2,0)
 grub> setup (hd2)
 grub> quit

La dernière chose qu'il reste à faire avant de redémarrer, est de créer un fichier de configuration de GRUB permettant de lancer SliTaz avec l'option home=usb, ce qui permet d'utiliser aussi le media comme partition /home pour stocker ses données, installer des applications en espace utilisateur et conserver vos configurations logiciels. Le fichiers de configuration utilisé par GRUB peut être créé avec votre éditeur de texte préféré, exemple avec LeafPad :

 # leafpad /media/flash/boot/grub/menu.lst
# /boot/grub/menu.lst: GRUB boot loader configuration.
#

# Change the colors.
color yellow/brown light-green/black

# For booting SliTaz from a cdrom or USB media (LiveRAM).
#
title 	SliTaz GNU/Linux (Cooking) (Kernel 2.6.22.9)
kernel 	/boot/bzImage root=/dev/null vga=771 home=usb
initrd 	/boot/rootfs.gz

Vous pouvez encore ajouter ces quelques lignes, pour avoir une entrée permettant de réinstaller GRUB dans un MBR (utile en cas problèmes) :

# For installing GRUB into the hard disk
#
title Install GRUB into the hard disk
root 	(hd0,0)
setup 	(hd0)

Voilà, vous pouvez démonter le cdrom et le media. ET redémarrer sur votre clé USB en prenant soins de configurer correctement le BIOS de votre machine pour qu'elle démarre depuis le media USB et non depuis le disque dur :

 # umount /media/cdrom
 # umount /media/flash
 # reboot

GRUB sur cdrom

Il est possible de créer rapidement une image ISO contenant GRUB, servant à démarrer SliTaz depuis un media USB et cela sur des machines ne pouvant pas démarrer directement sur USB. Pour ce faire GRUB fourni une image nommée stage2_eltorito permettant de rendre un cdrom bootable. Pour créer une image ISO gravable il faut créer la racine du cdrom, copier le fichier stage2_eltorito et générer une ISO avec genisoimage. Les commandes peuvent être copiées/collées ligne par ligne. Pour créer la racine du cdrom (rootcd et copier l'image eltorito de GRUB :

 $ mkdir -p rootcd/boot/grub
 $ cp /usr/lib/grub/i386-pc/stage2_eltorito \
   rootcd/boot/grub

Le fichier de configuration de grub se nomme toujours menu.lst, c'est un fichier texte éditable avec votre éditeur de texte préféré. Vous pouvez mettre le nombre d'entrées que vous désirez, pour démarrer SliTaz il faut spécifier la bonne racine root (hd2,0) pour que GRUB trouve le noyau (bzImage) et le système compressé (roottf.gz). Un petit fichier de configuration minimaliste :

# /boot/grub/menu.lst: GRUB boot loader configuration.
#

title 	SliTaz GNU/Linux (Cooking)
root 	(hd2,0)
kernel 	/boot/bzImage root=/dev/null home=usb
initrd 	/boot/rootfs.gz

Générer un ISO bootable

Pour générer une image ISO vous pouvez utiliser genisoimage fourni en standard sur le LiveCD de SliTaz. Cette commande est relativement longue, les backslash en fin de ligne permettent de continuer la commande sur la ligne suivante. Dans l'exemple, l'image se nomme grub.iso, le volume Grub et la racine du cdrom rootcd :

 $ genisoimage -R -o grub.iso \
       -b boot/grub/stage2_eltorito \
       -no-emul-boot -V "Grub" -boot-load-size 4 \
       -input-charset iso8859-1 -boot-info-table \
       rootcd

Installer et utiliser EXTLINUX

Extlinux est un gestionnaire de démarrage provenant du paquet Syslinux, il permet de démarrer un système GNU/Linux depuis un système de fichiers ext2 ou ext3. C'est un gestionnaire de démarrage simple et fiable, il fonctionne bien pour les clés USB. Pour commencer il faut récupérer la dernière version du paquet Syslinux depuis le site du noyau Linux et installer le binaire extlinux dans votre répertoire personnel ~/Bin ou dans un répertoire système tel que /usr/bin. Pour télécharger, désarchiver et installer EXTLINUX en espace utilisateur :

 $ wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.61.tar.gz
 $ tar xzf syslinux-3.61.tar.gz
 $ cp syslinux-3.61/extlinux/extlinux ~/.local/bin

Maintenant que le binaire extlinux est disponible, vous pouvez l'installer dans sur un media monté et cela via un SHell administrateur root obtenu via la commande su. Nous vous conseillons d'installer EXTLINUX dans un répertoire dédié, c'est à dire /boot/extlinux du media USB :

 # mkdir -p /media/flash/boot/extlinux
 # extlinux --install /media/flash/boot/extlinux

Sur les clé USB il faut encore installer un MBR pour s'assurer de rendre le media bootable. Attention à spécifier le bon périphérique, dans la plus part des cas une clé USB est reconnue comme sda :

 # cat syslinux-3.61/mbr/mbr.bin > /dev/sda

Le fichier de configuration se nomme extlinux.conf et doit se trouver dans le même répertoire que le binaire extlinux. Les chemins vers les fichiers peuvent être absolus ou relatifs au répertoire d'installation d'extlinux. Ce fichier à la même syntaxe que le fichier isolinux.cfg utilisé pour démarrer le LiveCD de SliTaz. Vous utilisant votre éditeur de texte préféré ou la commande cat (EOT signifie End Of Text, c'est là que le fichier se termine). A noter que vous pouvez copier/coller le contenu du fichier en une seule fois :

 # cat > /media/flash/boot/extlinux/extlinux.conf << "EOT"
display display.txt
default slitaz
label slitaz
    kernel /boot/bzImage
    append initrd=/boot/rootfs.gz rw root=/dev/null home=usb
 EOT

Afficher un message boot

La première ligne display display.txt permet d'afficher un fichier text au démarrage de EXTLINUX, vous pouvez utiliser/modifier celui utiliser sur le LiveCD ou en créer un nouveau. Si vous ne voulez pas afficher un display, il suffit de supprimer la ligne. Pour créer un nouveau fichier display.txt avec cat :

 # cat > /media/flash/boot/extlinux/display.txt << "EOT"
/*       _\|/_
         (o o)
 +----oOO-{_}-OOo---------------------------------------------------+
     ____  _ _ _____
    / ___|| (_)_   _|_ _ ____
    \___ \| | | | |/ _` |_  /
     ___) | | | | | (_| |/ /
    |____/|_|_| |_|\__,_/___|

 SliTaz GNU/Linux LiveUSB

 Simple Light Incredible Temporary Autonomus Zone

                                                                   */
 EOT

Reste plus qu'a redémarrer sur votre clé USB en prenant soins de configurer correctement le BIOS de votre machine pour qu'elle démarre depuis le media USB et non depuis le disque dur :

 # umount /media/flash
 # reboot

Installer SliTaz sur USB depuis Windows

Il est possible d'installer SliTaz sur un media USB depuis un système Windows, cette procédure a été testé sur Windows XP et Vista. Avant de commercer, téléchargez la dernière version de SliTaz sur le site : Obtenir SliTaz. Il vous faut aussi récupérer l'utilitaire syslnux syslinux-3.60.zip.

1. Extraire l'image sur la clé USB. L'image ISO peut être extraite avec des outils comme 7-Zip ou Winimage (shareware) par exemple. Normallement vous devriez obtenir l'arborescence suivante :

\boot
\boot\isolinux
\boot\grub
\boot\syslinux

2. Sur la clé USB, copier les fichiers du gestionnaire de démarrage dans le répertoire \boot\syslinux :

\boot\isolinux\*.txt 
\boot\isolinux\*.msg
\boot\isolinux\*.cfg
\boot\isolinux\*.lss

3. Toujours dans le répertoire \boot\syslinux, renommer isolinux.cfg en syslinux.cfg et isolinux.msg en syslinux.msg. Ce n'est pas indipensable pour isolinux.msg, mais c'est plus cohérent.

4. Extraire le fichier syslinux.exe de l'archive téléchargée sur kernel.org et le copier dans \boot\syslinux sur la clé.

5. Modifiez le fichier syslinux.cfg pour qu'il corresponde à vos besoin. Exemple:

display syslinux.msg
default slitaz
label slitaz
	kernel /boot/bzImage
	append initrd=/boot/rootfs.gz rw root=/dev/null lang=fr kmap=fr vga=normal
implicit 0	
prompt 1	
timeout 80
F1 help.txt
F2 options.txt
F3 isolinux.msg
F4 display.txt

Note : Par rapport au fichier d'origine la ligne display isolinux.msg a été remplaçée par display syslinux.cfg. Et les paramètres lang=fr kmap=fr on été rajouté sur la ligne append.

6. Il ne reste plus qu'à exécuter syslinux.exe pour installer le bootloader. Exemple dans le cas où la clé est désignée par la lettre K :

K:
cd \boot\syslinux
syslinux -ma -d \boot\syslinux K:

Version rapide

  1. Télécharchez l'achive syslnux.zip.
  2. Extrayez le répertoire syslinux et copiez le dans le répertoire boot de la clé USB.
  3. Exécutez le script \boot\syslinux\bootusb.bat.
Copyright © 2010 SliTaz - GNU General Public License;
Documentation publiées sous GNU Free Documentation License et codée en xHTML 1.0 valide.