Contenu | Rechercher | Menus

Comment installer Ubuntu sur une clé ou un disque USB en mode persistant

Au cours de la procédure nous allons prendre comme exemple le cas d'un liveUSB : avec une clé de 1Gio et le système live mis dessus (environ 700Mio)

Préparation de la clé USB

Deux solutions s'offrent à vous :

Première possibilité : Partitionnement de la clé USB

Pré-requis

  • Savoir que les grosses bandes noires sont à copier-coller dans un terminal en remplaçant X par la lettre que vous trouverez juste après.

Préparation des partitions

Cette solution consiste à créer une partition au format ext2 ou ext3 ayant pour nom (label) "casper-rw".

L'intérêt de cette solution est qu'il est possible de monter la 2ème partition en ext2 ou ext3 sous windows avec ext2fsd.

Avant de commencer je vous conseille de débrancher tout autre appareil de stockage usb que vous pouvez avoir sur votre ordinateur (appareil photo, clé usb, disque dur externe)

Voici l'exemple avec notre clé USB de 1Gigaoctet.

Utilisation de GParted.

Si gparted n'est pas installé :

sudo apt-get install gparted

Puis :

gksudo gparted


Choisissez grâce au menu déroulant en haut à droit votre clé USB.
La clé est représentée sous la forme /dev/sdX. Mémorisez cette lettre X, on en aura besoin par la suite.
Démonter la partition existante sur cette clé en faisant un clic droit sur la partition et en choisissant "Démonter".

Création des partitions

Création d'une première partition FAT32 de 750Mo, avec le flag “actif” : C'est la partition qui contiendra le LiveUSB d'Ubuntu et d'une partition ext2 ou ext3 prenant le reste de la place de la clé USB qui va contenir les données persistantes.

Partition N°1 :

Cliquer sur la partition existante puis cliquer sur "Redimensionner/Déplacer". En face de "Nouvelle taille" taper 750 puis taper 0 en face de "Espace libre précédant". Cliquer ensuite sur "Redimensionner/Déplacer".

Partition N°2 :

Cliquer sur "non alloué" puis sur Nouveau. Dans la nouvelle fenêtre mettre : Par défaut GParted choisit tout l'espace non alloué restant pour créer une nouvelle partition primaire, ce qui est ce qu'on veut pour notre exemple. Il suffit donc de choisir le "Système de fichier" : ext2 ou ext3 sachant que ext3 marche mieux mais prend plus de place.
Cliquer ensuite sur "Ajouter".

Aucun changement n'est effectué pour l'instant donc il faut cliquer sur "Appliquer" pour effectuer les opérations. Une fois les changements terminés, revenez à la fenêtre principale de GParted, faites un clic-droit sur la partition FAT 32 de 750 Mo et choisissez "Gérer les drapeaux".
Cocher boot et fermer la fenêtre.
Mémoriser la dénomination de la partition en ext2 ou ext3 marquée dans GParted sous la forme /dev/sdXy.

Nommer la partition en ext2 ou ext3

Pour que le système sache où enregistrer les données persistantes il faut donner le nom casper-rw à la partition qui doit les contenir.
Dans un terminal :

sudo e2label /dev/sdXy casper-rw

En remplaçant X et y par la lettre et le chiffre correspondant.

Création du secteur de démarrage

Il faut enfin créer le secteur de démarrage :

sudo install-mbr /dev/sdX

(en remplaçant X par la lettre que vous avez mémorisé précédemment !)

Si vous obtenez "sudo: install-mbr: command not found", exécutez d'abord :

sudo apt-get install mbr

Ensuite passez à l'installation du système de base.

Seconde possibilité : fichier contenant un système de fichier

Le principe est de créer à la racine d'une partition (une partition de clé USB de disque dur ou autre, tant qu'elle est au format FAT, ext2 ou ext3) un fichier nommé "casper-rw" que l'on va formater en ext2 ou ext3.

L'intérêt de cette solution est que la clé USB ne contient qu'une partition :

  • meilleure compatibilité avec des systèmes anciens, légers ou embarqués.
  • possibilité de changer la taille du fichier c'est à dire la taille affectée au root persistant FIXME

Pour notre clé USB

On part du principe que la clé USB est formatée en FAT (FAT16 ou FAT32) et qu'elle contient l'installation live de (K)(X)ubuntu (voir installation).

  • environ 700Mio sont pris par le système du liveUSB (moins pour Xubuntu)
  • donc nous allons créer un fichier de 250Mio
dd if=/dev/zero of=/media/cleUSB/casper-rw bs=1M count=250

si la clé USB est montée dans le dossier /media/cleUSB/

mkfs.ext2 -L casper-rw /media/cleUSB/casper-rw

ou

mkfs.ext3 -L casper-rw /media/cleUSB/casper-rw

Répondez "oui" à la question.

Installation du système de base

  • Montez l'image iso de la version d'Ubuntu que vous voulez (gutsy par exemple) grâce à gmount-iso
  • Montez les partitions de votre clé USB (débranchez puis rebranchez votre clé) Peut provoquer un changement soudain d'appellation (sdb à sdc).
  • Ouvrez le répertoire de votre iso montée et rendez visibles les fichiers cachés (ctrl + H dans nautilus)
  • Dans la partition FAT32 (pour la reconnaître, elle est totalement vide, celle en ext2 ne l'est pas) copiez tout le contenu de l'image iso sauf le dossier isolinux (ce n'est pas grave si vous avez des messages d'erreurs, faites juste Ignorer)
  • Dans l'image iso ouvrez le dossier isolinux et copiez tout son contenu à la racine de la partition FAT32
  • Dans l'image iso ouvrez le dossier casper et copiez les fichiers vmlinuz et initrd.gz à la racine de la partition FAT32
  • Créez le fichier syslinux.cfg dans la partition FAT32 et insérez-y ce texte:
DEFAULT persistent
GFXBOOT bootlogo
GFXBOOT-BACKGROUND 0xB6875A
APPEND  locale=fr_FR bootkbd=fr console-setup/layoutcode=fr console-setup/variantcode=nodeadkeys file=preseed/ubuntu.seed boot=casper initrd=initrd.gz quiet splash --
LABEL persistent
  menu label ^Démarrer Ubuntu 7.10 en mode persistant
  kernel vmlinuz
  append  locale=fr_FR bootkbd=fr console-setup/layoutcode=fr console-setup/variantcode=nodeadkeys file=preseed/ubuntu.seed boot=casper persistent initrd=initrd.gz quiet splash --
LABEL live
  menu label ^Démarrer ou installer Ubuntu en mode live
  kernel vmlinuz
  append  locale=fr_FR bootkbd=fr console-setup/layoutcode=fr console-setup/variantcode=nodeadkeys file=preseed/ubuntu.seed boot=casper initrd=initrd.gz quiet splash --
LABEL xforcevesa
  menu label Démarrer Ubuntu en mode sans échec graphique
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper xforcevesa initrd=initrd.gz quiet splash --
LABEL driverupdates
  menu label Installer avec la mise à jour des drivers
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper debian-installer/driver-update=true initrd=initrd.gz quiet splash --
LABEL check
  menu label Vérifier l'intégrité de l'USB
  kernel vmlinuz
  append  boot=casper integrity-check initrd=initrd.gz quiet splash --
LABEL memtest
  menu label Test de la mémoire
  kernel mt86plus
  append -
LABEL hd
  menu label Démarrer depuis le disque dur
  localboot 0x80
  append -
DISPLAY isolinux.txt
TIMEOUT 300
PROMPT 1
F1 f1.txt
F2 f2.txt
F3 f3.txt
F4 f4.txt
F5 f5.txt
F6 f6.txt
F7 f7.txt
F8 f8.txt
F9 f9.txt
F0 f10.txt
  • Enregistrez le fichier
  • Dans un terminal tapez:
    sudo umount /dev/sdX1
    sudo syslinux -f /dev/sdX1
    sudo eject /dev/sdX

Normalement c'est terminé vous pouvez enfin utiliser votre clé USB pour booter Ubuntu partout !

Activer le mode persistant

Principe: ajouter le paramètre persistant au noyau au démarrage

  • edgy

Au démarrage de l'ordinateur, quand le système live démarre, ajoutez l'option persistant FIXME plus de détails

  • feisty

Au démarrage de l'ordinateur, quand le système live démarre appuyez sur F6.

ajoutez l'option persistant avant les "- -"

ajouter un screenshot FIXME

Il semble qu'il y ait un bug et que la persistance ne marche pas sous feisty. ce bug est répertorié chez launchpad.net

Avec notre clé usb

Editez le fichier syslinux.cfg qui est sur la clé USB et changer la ligne append et ajoutez le mot clé persistant

avant

LABEL live
  menu label ^Start or install Ubuntu
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper initrd=initrd.gz quiet splash --

après

LABEL live
  menu label ^Start or install Ubuntu
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper initrd=initrd.gz quiet splash persistent --

Pour le cas d'un live cd.

Il faut extraire l'image iso du cd.

Éditez le fichier isolinux.cfg et modifiez-le de la même manière que la clé USB.

Régénérer l'image iso du CD.

À retenir

  • Le menu d'Ubuntu ne s'affiche pas :
    • La partition contenant le système doit se situer dans les 8 premiers Go du disque pour que le BIOS puisse l'amorcer. Elle doit aussi être rendue amorçable (flag boot sous gparted).
    • Vous devez avoir un fichier ldlinux.sys sur la partition contenant le système. Il est créé par la commande syslinux. De même, vous devez avoir syslinux.cfg qui contient les différents options de démarrage d'Ubuntu.

Il n'est pas nécessaire de modifier le MBR du disque pour le rendre amorçable.

Le système n'est pas persistant :

  • Vérifiez que vous avez bien un fichier casper-rw ou une partition nommée casper-rw
  • Vérifiez que l'option persistent est bien présente dans la ligne boot du menu d'Ubuntu
  • Vérifiez que l'option file=preseed/ubuntu.seed correspond bien a votre distribution :
file=preseed/ubuntu.seed pour ubuntu
file=preseed/xubuntu.seed pour xubuntu ETC ETC
Bug pour Ubuntu 8.04 LTS Hardy Heron

Un bug du live CD d'Ubuntu 8.04 LTS Hardy Heron rend l'option 'persistent' non fonctionnelle. Il se caractérise par l'apparition d'une invite de commande (initramfs) au lieu du bureau. Pour solutionner ce problème, après avoir rebranché la clé usb, remplacez le fichier initrd.gz, à la racine de la partition FAT32, par le nouveau corrigé (par la communauté) :

  • Avec Ubuntu :
wget http://launchpadlibrarian.net/13998650/initrd.gz
mv initrd.gz /media/ubuntu/
  • Avec Xubuntu :
wget http://launchpadlibrarian.net/14407459/initrd.gz
mv initrd.gz /media/ubuntu/

Création d'un CD de boot pour démarrer sur une clef USB Live

La création d'un CD de boot qui démarre sur une clef USB bootable (contenant ubuntu, xubuntu ou kubuntu installé avec l'outil usb-creator de Intrepid, ou d'autres méthodes) est intéressante pour les bios qui ne sont pas capable de booter sur l'USB, mais aussi si vous n'avez pas accès au bios et que ce dernier boote en priorité sur le CD.

Dans une console, en étant dans votre répertoire /home/nom_utilisateur, faites :

mkdir -p bootcd/boot/grub
cp /usr/lib/grub/i386-pc/stage2_eltorito /home/nom_dutilisateur/bootcd/boot/grub/

Copiez les fichiers vmlinuz et initrd.gz depuis votre clef USB avec Linux dans le dossier home/nom_utilisateur/bootcd/boot puis renommez ces fichiers afin d'obtenir vmlinuz-usb et initrd-usb.img

Créer le fichier bootcd/boot/grub/menu.lst contenant :

default 0

timeout 5

#color cyan/blue white/blue

splashimage=(cd)/boot/grub/tux.xpm.gz

title Xubuntu persistent verbose splash
root (cd)
kernel /boot/vmlinuz-usb boot=casper file=preseed/$preseed persistent initrd=initrd.gz rw verbose splash
initrd /boot/initrd-usb.img

title Xubuntu Live verbose splash
root (cd)
kernel /boot/vmlinuz-usb boot=casper file=preseed/$preseed initrd=initrd.gz rw verbose splash
initrd /boot/initrd-usb.img

title Xubuntu fr persistent verbose splash
root (cd)
kernel /boot/vmlinuz-usb boot=casper locale=fr kbd-chooser/method=fr console- setup/layoutcode=fr console-setup/variantcode=fr console-setup/modelcode=fr file=preseed/$preseed persistent initrd=initrd.gz rw verbose splash
initrd /boot/initrd-usb.img

title Xubuntu Live verbose splash
root (cd)
kernel /boot/vmlinuz-usb boot=casper locale=fr kbd-chooser/method=fr console-setup/layoutcode=fr console-setup/variantcode=fr console-setup/modelcode=fr file=preseed/$preseed initrd=initrd.gz rw verbose splash
initrd /boot/initrd-usb.img

Télécharger l'image (ou une autre) Tux, et renommez-la en tux.xpm.gz et copiez-la dans bootcd/boot/grub/

Il ne reste plus qu'à créer l'iso, dans une console sous le répertoire home/nom_utilisateur/

mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso bootcd

Pour tester cette iso avant de la graver, installer apt://qemu puis dans une console:

qemu -cdrom grub.iso

qemu vous permet seulement de tester si votre CD boote correctement et renvoie bien sur le boot de votre clef, vous ne pourrez pas utiliser la virtualisation ensuite, pourquoi ? si quelqu'un sait…

Une fois gravé, il n'y aura pas de soucis.

voici une méthode plus simple pour les débutants.

1) Télécharger l'image iso "http://download.plop.at/files/ploplinux/ploplinux-v4.0.0.iso". NOTA 12/03/2013 : La dernière image iso publiée est téléchargeable ici : "http://download.plop.at/files/ploplinux/4.2.2/ploplinux-4.2.2/ploplinux-4.2.2.iso" Toutes les images sont là : "http://www.plop.at/en/ploplinux/download.html"

2) Graver l'image.

3) booter sur le cd.

4) de taper plp et de valider. Sélectionner Plop Boot Manager

5) Un écran apparait avec en haut à gauche un petit menu qui permet de sélectionner l'usb pour booter dessus.

Création d'une disquette de boot pour booter sur une clé USB

L'idée est identique à celle du CD de boot décrite plus haut.

Avantages:

  • les lecteurs de disquette (lorsqu'il existe encore) sont quasiment toujours les prioritaires au boot (donc pas de modification du "boot settings" nécessaires)
  • par rapport au CD(-RW), les données d'une disquette sont facilement et rapidement modifiables
  • généralement, les ordinosaures qui ne peuvent pas booter sur USB possèdent un lecteur de disquette (donc ça compense)

Inconvénients:

  • capacité des disquettes limitée …

FIXME Piste 1: voir Forum Customisation/Création de Live CD/USB

FIXME Piste 2: voir PLoP Boot Manager

Voir aussi


utilisateurs/ikthus/copie_live_usb_persistant_methode1.txt · Dernière modification: Le 12/03/2013, 15:44 par abaastien
Le contenu de ce wiki est sous licence : CC BY-SA v3.0