Ubuntu (XUbuntu en fait) « persistant » sur clef USB

closeCet article a été publié il y a 16 ans 2 mois 6 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Jusqu’à présent, j’utilisais une clef USB formattée DOS avec la distrib SLAX pour me faire un OS de dépannage de PC plantés. Je vous passe l’utilité de ce genre de LiveOS de rescue, vous devez connaître ça par coeur je pense.
J’ai voulu installer une XUbuntu « persistante », c’est-à-dire « qui se souvient des modifications apportées à l’OS ». Avec ça donc, vous pouvez embarquer un LiveOS avec des données et des applications supplémentaires, mises à jour etc. Un vrai OS embarqué et vivant. Le pied total pour le geek qui sommeille en vous.

J’ai trouvé plusieurs sites web tous un peu brouillons donnant des informations sur le sujet. Je vous fais une synthèse propre de la chose, fait avec une XUbuntu (plus légère qu’Ubuntu) 7.10 i386 desktop

Mes sources de départ

Un article un peu dépassé
Un article correct si ce n’est qu’il n’explique pas grand chose et balance des commandes à la suite.
– Et enfin, un article parlant d’un bug qui n’a plus lieu mais qui a au moins le mérite d’expliquer un peu comment le LiveOS identifie une partition de la clef USB pour stocker les informations « persistantes ».

Ce dont vous avez besoin

– Une clef USB d’au moins 1 Go. Rapide de préférence. Comptez 700/750 Mo pour la partie figée de l’XUbuntu et le reste pour votre partie « persistante ».
L’ISO de XUbuntu (ou Ubuntu)
– Un PC sous Windows. Mais ce sera plus simple sous Linux (pour créer une partition EXT2).
– Un PC acceptant de booter sur de l’USB. Sinon pour tester, ça ne va pas être simple 🙂
C’est tout.

Préparer la clef

Le principe est de créer 2 partitions :
– la première en FAT16 (16, pas 32) qui hébergera le contenu de l’ISO un tout petit peu retravaillé. En gros, pour pouvoir booter, charger le noyau etc.
– l’autre au format EXT2 pour la partie « variable » de l’OS (la partie « persistante »). C’est bien de l’EXT2 et pas EXT3 : aucune utilité de journaliser sur un LiveOS, sans parler du débit relativement faible de l’USB.

Créer les partitions

Sous Windows vous passerez par le menu de « Gestion de disques » pour créer vos partitions.
Sous Linux, par fdisk /dev/sdb si votre clef est reconnue en SDB. Faites un fdisk -l pour le savoir. Je vous passe la config, au pire allez voir le 2è article que je mentionne plus haut dans mes sources, tout est dedans (style : « tapez sur n puis p puis 1 etc » – du bonheur).

Formatter les partitions

Sous Windows, facile. J’ai dit FAT16, pas FAT32. Vu ?
Sous Linux, la commande est mkfs.vfat -F 16 -n ubuntu710 /dev/sdb1 si votre clef est sdB. Le nom « ubuntu710 » est arbitraire.

Pour formatter la deuxième partitions en EXT2, si vous êtes sous Windows, vous avez 3 options qui se résument à trouver un Linux quelque part 🙂
1) Vous utilisez le propre OS qu’on va faire sur cette clef, en mode non « persistant » (je le décris ci-après) puisque pour l’instant la « partition de persistance » n’existe pas. Une fois sur cet OS, vous avez accès à la commande qui va bien.
2) Vous utilisez le CD gravé à partir de votre ISO [X]Ubuntu et bootez dessus pour avoir un Linux tout frais en LiveOS.
3) Vous avez un Linux sous la main quelque part et c’est plus simple.

Dans tous les cas, la commande sous Linux est la suivante : mkfs.ext2 -b 4096 -L casper-rw /dev/sdx2. Cette fois-ci, le nom « casper-rw » est important (de ce que j’en ai compris) car c’est lui qui est utilisé pour désigner les partitions utilisées pour la « persistance ». Donc bref, vous ne touchez pas si vous voulez que tout votre « / » soit « persistant ». Si vous voulez limiter au « /home » par exemple, survolez l’article suivant pour tenter de le faire. Je n’ai pas essayé (en gros, il faudrait une partition nommée « home-rw »).

« Copier l’OS »

Maintenant que les partitions sont prêtes, vous devez :
– Recopier le contenu de l’ISO sur la première partition.
– Dupliquer le contenu du répertoire « isolinux » à la racine de la partition 1 de la clef (un déplacement devrait suffire, mais je ne suis pas sûr).
– Dupliquer les fichiers "/casper/initrd.gz" et "/casper/vmlinuz" à la racine de la clef.

Rendre la clef bootable avec SYSLINUX

Téléchargez « syslinux » (un bootloader) depuis ce site. Actuellement, la version est 3.61 pour Windows. Sous Linux (Debian par exemple), l’outil SYSLINUX est packagé. Installez-le comme d’hab.
Sous Windows, vous faites un "syslinux X:" où X est la lettre de lecteur de votre partition n°1 de votre clef.
Sous Linux, vous faites un "syslinux -sf /dev/sdb1" si votre clef est sdB.

Adapter le menu de boot

Recopier à la racine de la 1è partition les fichiers fournis sur ce site. Parcourez-les pour bien comprendre comment fonctionne SYSLINUX.
Pour booter sur l’OS « persistant », vous tapez « persistent » au boot. Sinon vous bootez par défaut sur la version Live normale qui n’est pas persistante.

Optimisations !

Vous êtes sur une clef USB, c’est-à-dire un périphérique assez lent et avec une place limitée. A vous de bien régler l’écriture des logs, afin de ne pas encombrer votre clef inutilement. Pensez aussi à régler APT ou au moins à supprimer les paquets DEB de /var/cache/apt/archives/ après des upgrade/install de paquets etc…

Et voilà, frimez bien avec votre OS.
Ah j’oubliais : bootez en mode « persistant », créez 3 fichiers via touch ~/toto ; touch /tmp/toto ; sudo touch /toto
Rebootez bien proprement et vérifiez que vos fichiers sont encore là (sauf celui du /tmp, il aura dégagé).

4 comments

  1. Merci pour ton article très intéressant, mais juste un truc, qui n’a rien a voir.
    Sur le planet libre, ton article n’apparait pas en entier … Et, celon la charte en vigueur sur le planet :
    http://www.planet-libre.org/inscription/
    paragraphe 2 :

    2. Le Bloggueur
    [ … ]
    – Ce flux devra en plus être complet (pas de « cliquer pour lire la suite ») et comporter au minimum 3 articles
    [ … ]

    Cordialement . SckyzO

  2. Certes, mais…

    Personnellement, je trouve la navigation sur la page principale de planet-libre difficile à cause des articles « complets » justement. Car le survol d’article sur la page principale est du coup impossible. Les articles peuvent être courts, longs etc. On ne sait pas si on est au milieu d’un article qui ne nous intéresse pas ou si on est déjà dans le suivant, pour peu qu’on ait la molette de souris facile 🙂

    Sans compter des articles contenant plein d’images, c’est potentiellement inutilement long à charger.

    Enfin, j’ai fait le choix de mettre cette balise sur mon propre blog pour éviter cela justement, donc ça le fait sur Planet-libre et je ne sais pas faire le tri.
    Si c’est insoutenable côté planet-libre, alors je me désinscrirai et tant pis pour les lecteurs.
    Je ne fais pas ça pour gagner des hits sur mon site (personnellement, je m’en fous).

    Je savais que j’étais en contradiction sur ce point dès mon inscription, celui qui l’a validé a dû le voir aussi.

    Voilà 🙂

  3. Ping : Le blog de Michauko » XUbuntu “persistante” sur USB (MAJ concernant Hardy Heron)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.