5. Documentation distributeur

5.1. Téléchargement de l’image système

La dernière image système validée et construite de liveUSB est disponible au format .img.

Vous pouvez consulter les autres constructions en visitant liveUSB.

5.2. Transfert de l’image système et configuration de la persistance

Choisir une méthode parmi les [Méthode A - rapide, simple et préférée] Sous GNU/Linux, méthode automatisée (automatisée) ou [Méthode B - pour comprendre] Sous GNU/Linux, méthode étape par étape (étape par étape).

Note

Ces méthodes utilisent exclusivement des outils libres GNU/Linux.

Avertissement

Pour les utilisateur n’ayant pas un accès direct à GNU/Linux, une solution est possible la [Méthode C] Sous Windows.

Le mécanisme général est le suivant :
  • copie de l’image sur le périphérique USB (utilisation de dd)
  • création de la partition sur l’espace vide restant sur le périphérique USB (gparted, sfdisk, etc.)
  • formatage de la partition en ext4 (mkfs.ext4)
  • configuration de la persistance dans le fichier persistence.conf

5.2.1. Nomenclature

Voir Nomenclature pour des explications sur la nomenclature concernant les lignes de commande.

5.2.2. [Méthode A - rapide, simple et préférée] Sous GNU/Linux, méthode automatisée

Cette méthode est conçue pour faciliter le travail. L’automate burn peut-être utilisé.

Dans notre cas, la configuration de base promet d’assurer la persistance à partir d’une partition utilisant l’espace restant libre sur le support cible.

Note

Vous pouvez analyser le fichier burn de la ligne 883 à la fin afin de comprendre la façon dont cette étape est assurée.

Considérons que votre clef USB est associé au descripteur /dev/sde et que le fichier image système est dans liveUSB-amd64.img :

# ./burn --image liveUSB-amd64.img --device /dev/sde

ou

$ sudo ./burn --image liveUSB-amd64.img --device /dev/sde

Note

Aide en ligne de burn

$ sudo ./burn --help
burn v0.1.3-jessie
Brûler l'image de la clef liveUSB sur un périphérique choisi et configurer l'espace restant disponible pour accueillir la persistance du système.

Usage : burn [-h | --help] [[-d | --device] chemin] [[-i | --image] fichier.img] [-C | --no-copy] [-P | --no-persistence] [-K | --no-crypt] [-E | --no-efi | --no-uefi] [-v | --verbose | --debug] [-V | --very-verbose] [-u | --usage]

Options :

  SYSTÈME :
  -i, --image=fichier.img
                  Image de la clef à brûler
  -d, --device=chemin
                  Bloc device (périphérique mode bloc) destinataire
  -c, --copy      Force l'étape de copie de l'image (défaut)
  -C, --no-copy   Désactive l'étape de copie de l'image

  -p, --persistence
                  Force l'étape de persistance (défaut)
  -P, --no-persistence
                  Désactive l'étape de persistance

  CHIFFREMENT DE LA PERSISTANCE :
  -k, --crypt     Force le chiffrement de la partition de persistance (défaut)
  -K, --no-crypt  Désactive le chiffrement de la partition de persistance

  EFI / APPLE MAC :
  -e, --efi, --uefi
                  Force le démarrage en UEFI (défaut)
  -E, --no-efi, --no-uefi
                  Désactive le démarrage en UEFI (ne démarrera pas sur un Apple Mac)

  GÉNÉRALES :
  -h, --help      Affiche ce message d'aide et quitte
  --color         Force l'usage des couleurs ANSI
  --no-color      Désactive l'usage des couleurs ANSI (défaut)
  -v, --verbose, --debug
                  Affiche des informations supplémentaires
  -V, --very-verbose
                  Affiche le DEBUGAGE du script (set -x)
  --silent, --quiet
                  Tente d'être le plus discret possible
                  (seule les erreurs seront affichées en plus des intéractions utilisateur)

  NOTE : Vous devez avoir les droits 'sudo' ou être le super utilisateur pour exécuter ce programme.

5.2.3. [Méthode B - pour comprendre] Sous GNU/Linux, méthode étape par étape

Il s’agit de la même démarche que la [Méthode A - rapide, simple et préférée] Sous GNU/Linux, méthode automatisée, mais il s’agit ici d’une version non automatisée.

Cette [Méthode B - pour comprendre] Sous GNU/Linux, méthode étape par étape a été testée dans l’issue #36 (on y trouvera quelques erreurs, et les explications concernant leurs résolutions).

5.2.3.1. Identification du périphérique cible

Avant de brancher la clef USB, lancer la commande lsblk :

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465,8G  0 disk
+-sda1   8:1    0 465,8G  0 part /
sdb      8:16   0   1,8T  0 disk
+-sdb1   8:17   0   1,8T  0 part /home

Brancher maintenant la clef USB, puis relancer lsblk :

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465,8G  0 disk
+-sda1   8:1    0 465,8G  0 part /
sdb      8:16   0   1,8T  0 disk
+-sdb1   8:17   0   1,8T  0 part /home
sdc      8:64   1  14,5G  0 disk

Nous pouvons alors identifier que notre clef USB est accessible par le descripteur en mode bloc /dev/sdc.

Nous pouvons vérifier que c’est un périphérique en mode bloc par le b en début de ligne de sortie de la commande suivante :

$ ls -l /dev/sdc
brw-rw---- 1 root disk 8, 32 févr. 15 19:03 /dev/sdc

5.2.3.2. Recopie de l’image système sur le périphérique cible (= la clef USB)

Vous devez vous munir du nom du descripteur en mode bloc du périphérique USB cible. Dans cet exemple, nous considérerons le périphérique USB accessible sur /dev/sdc.

Vous devez par ailleurs vous munir du nom de l’image système précédemment créée. Si vous avez laissé la configuration initiale, le fichier image se nomme liveUSB-amd64.img. Placez-vous dans le dossier contenant ce fichier image, puis exécutez la commande ci-desssous. Il faut attendre quelques minutes avant que l’écran affiche que la commande s’est bien exécutée.

# dd if=liveUSB-amd64.img of=/dev/sdc bs=1M
1634+0 enregistrements lus
1634+0 enregistrements écrits
1713373184 bytes (1,7 GB, 1,6 GiB) copied, 167,139 s, 10,3 MB/s

5.2.3.3. Mise en œuvre de la persistance (voir le live-manual)

Il s’agit ici de comprendre les concepts. Il n’y a pas de démarche technique à réaliser. Si vous le souhaitez, passez directement à l’étape Création et paramétrage de la partition d’accueil pour la persistance.

Le paradigme d’un système Live CD est d’être pré-installé en s’amorçant (boot) sur un support en lecture seule, comme un cdrom, où les données et les modifications ne survivent pas aux redémarrages du matériel hôte qui l’exécute.

Un système live est une généralisation de ce paradigme et gère ainsi d’autres supports en plus des CDs. Malgré tout, dans son comportement par défaut, il doit être considéré en lecture seule et toutes les évolutions pendant l’exécution du système sont perdues à l’arrêt.

La persistance est un nom commun pour les différents types de solutions pour sauver, après un redémarrage, certaines ou toutes les données, de cette évolution pendant l’exécution du système. Pour comprendre comment cela fonctionne, il peut être utile de savoir que même si le système est démarré et exécuté à partir d’un support en lecture seule, les modifications des fichiers et répertoires sont écrites sur des supports inscriptibles, typiquement un disque RAM (tmpfs) et les données des disques RAM ne survivent pas à un redémarrage.

Les données stockées sur ce disque virtuel doivent être enregistrées sur un support inscriptible persistant comme un support de stockage local, un partage réseau. Tous ces supports sont pris en charge dans les systèmes live de différentes manières, et tous nécessitent un paramètre d’amorçage spécial à préciser au moment du démarrage : persistence.

Si le paramètre de démarrage persistence est réglé (et nopersistence n’est pas utilisé), les supports de stockage locaux (par exemple les disques durs, clés USB) seront examinés pour trouver des volumes persistants pendant le démarrage. Il est possible de limiter les types de volumes persistants à utiliser en indiquant certains paramètres de démarrage décrits dans la page de manuel live-boot(7). Un volume persistant est un des éléments suivants :

  • une partition, identifiée par son nom GPT ou msdos,
  • un système de fichiers, identifié par son étiquette (son nom) de système de fichiers,
  • un fichier image situé sur la racine d’un système de fichiers en lecture (même une partition NTFS d’un système d’exploitation étranger), identifié par son nom de fichier.

5.2.3.4. Création et paramétrage de la partition d’accueil pour la persistance

Vous devez vous munir du nom du descripteur en mode bloc du périphérique USB cible. Dans cet exemple, nous considérerons le périphérique USB accessible sur /dev/sdc, tel que celui utilisé pour réalisé le transfert de l’image système.

# echo ",+,L" | sfdisk --append /dev/sdc

Concrètement, on peut avoir besoin d’écrire sudo avant et après |, sinon cela ne fonctionne pas car il nous manque des droits. De plus, le paramètre --force peut être indispensable. Ainsi, l’instruction s’écrit ainsi $ sudo echo ",+,L" | sudo sfdisk --append --force /dev/sdc

Il y a ensuite deux instructions à saisir :

# partprobe /dev/sdc
# mkfs.ext4 -F -L persistence /dev/sdc

Ensuite, il faut aller dans la partition de persistance persistence, créer le fichier persistence.conf, dont le contenu est :

/ union

Voir issue #89#note_14328 et issue #36#note_11929 pour des essais réussis concernant cette étape de création de la partition d’accueil pour la persistance.

5.2.4. [Méthode C] Sous Windows

5.2.4.1. Nature du problème

Les recherches réalisés dans l’issue #89 montrent que Windows ne comporte pas d’outil intégré pour faire la distribution de notre clé liveUSB. Et la recherche d’un logiciel (libre) pour répondre à ce besoin n’a rien donné.

Il y a deux raisons à cela :
  • Lorsqu’une clef USB comporte plusieurs partitions, l’explorateur Windows n’est capable d’afficher que la première partition. Nous voulons justement utiliser une première partition pour le système, et une deuxième partition pour les données de persistance.
  • Windows ne gère pas le format de fichier ext4. Or c’est justement ce format qui est adapté pour la persistance. En effet, le format de fichiers souvent utilisé pour les clefs USB est le FAT32. Mais ce format présente une limitation de taille de fichier de presque 4 Gio (232 octets pour être exact).
Nous pouvons adopter deux positions :
  • Soit on abandonne l’idée d’avoir deux partitions séparées et on abandonne l’idée d’utiliser ext4. Cela signifie rester en FAT32, et mettre la persistance dans un fichier dédié (mais sa taille sera limitée à presque 4 Gio). C’est une solution possible, qui est d’ailleurs utilisée par beaucoup de clefs démarrables.
  • Soit on abandonne l’idée de construire la clé liveUSB en restant sous Windows uniquement. C’est la démarche que nous proposons.

5.2.4.2. Solution proposée : création d’une clef démarrable GNU/Linux (qui servira de boîte à outils intermédiaire)

Nous proposons une solution avec Lubuntu, mais d’autres distributions basées sur Debian pourraient convenir (mais nous n’avons pas eu le temps d’en tester). On pourra consulter l’issue #89 pour comprendre les étapes qui nous amènent à cette solution.

  • On télécharge directement l’iso lubuntu-15.10-desktop-i386.iso sur http://lubuntu.fr/down.htm (sans passer par LinuxLive USB Creator).

Attention

Les versions plus anciennes de lubuntu ne conviennent pas !

Interface de Linux Live USB Creator

Interface de Linux Live USB Creator

5.3. Et si on dispose déjà d’une clef liveUSB ?

On peut l’utiliser pour en fabriquer une autre, il suffit de démarrer sur la première clef et de suivre la documentation depuis Transfert de l’image système et configuration de la persistance.