Live Helper

De Athena.


Sommaire

Notes

  • À adapter selon dernière version livehelper (lh_config == lh config)

Principe

Live-helper est un ensemble de scripts qui permettent la création d'un live CD (ou USB) Debian, c'est à dire d'un système Debian présent sur un support amovible (typiquement un CD) capable d'être démarré sans qu'aucune modification ne soit apportée sur le disque dur de la machine. Live-helper permet l'intégration de paquets ainsi que la personnalisation d'un système live en construisant une image qu'il ne reste plus qu'à copier sur le support choisi.

Pré-requis

  • Un système Debian
  • Les droits administrateur (root)
  • Les paquets live-helper et debootstrap
  • Suffisamment d'espace disque disponible (tout dépend de la taille du système créé, au moins 5 Go) car live-helper va installer une version complète du système avant de le compresser dans une image.

Procédure

Préparation

Créer un répertoire de travail :

$mkdir ~/debian_live
$cd debian_live

Configuration

L'outil lh_config permet de configurer le système à construire. Un appel à lh_config sans paramètre produit les répertoires config et script qui correspondent à un système minimaliste. Si vous avez déjà utilisé lh_config n'oubliez pas la commande lh_clean qui permet de vider les fichiers chroot, binary, stage et source tout en conservant les paquets téléchargés (dans le répertoire cache). Une utilisation typique de lh_config serait plutôt :

 $lh_config 
 --bootappend-live "locale=fr_FR keyb=fr" 
 -b usb-hdd 
 -p maListeDePaquet 
 --mirror-bootstrap "http://ftp.de.debian.org/debian/" 
 --mirror-chroot "http://ftp.de.debian.org/debian/" 
 --mirror-binary "http://ftp.de.debian.org/debian/"  
 --syslinux-timeout 10 -l fr


--bootappend-live "locale=fr_FR keyb=fr" 
configure le clavier et la langue par défaut en français (codage UTF8, "locale=fr_FR@euro" pour le codage ISO-8859-15)
-b usb-hdd 
permet la création d'un système pour clef USB (ne rien mettre pour un système live CD)
-p maListeDePaquet 
permet d'intégrer les paquets listés dans le fichier /usr/share/live-helper/lists/maListeDePaquet (voir Syntaxe d'une liste de paquets)
-packages nom_paquet 
permet d'intégrer le paquet nom_paquet (preferez une liste pour plusieurs paquets)
--mirror-* 
Spécifie l'adresse du dépôt de paquets à utiliser dans le bootstrap|chroot|binary
--syslinux-timeout 
Syslinux est le bootloader par défaut, permet de spécifier un délai avant le boot automatique
-l (= --language) 
Spécifie le langage par défaut pour le bootloader (paquets l10n correspondant)

lh_config se charge, grâce à ces paramètres, de remplir les variables dispersées dans les fichiers de configuration (config/) : binary bootstrap chroot common source Pour plus d'informations : man lh_config

Construction

$lh_build

Cette étape peut-être longue en fonction des paquets demandés, de la bande passante disponible et de la vitesse du processeur. lh_build va en effet construire un système Debian minimal, télécharger les paquets manquant (en résolvant les dépendances), puis les installer et les configurer. A l'issue de cette phase, le fichier ~/debian_live/binary.img correspond au système créé, et le fichier ~/debian_live/binary.packages contient la liste des paquets intégrés.

Live_Helper:lh_build

Copie sur une clef USB

Attention :
  • Toutes les données présentes sur la clef seront effacées
  • L'adresse /dev/sdX correspond à l'adresse du périphérique et non d'une partition
$dd if=~/debian_live/binary.img of=/dev/sdX

Où X est la lettre correspondant à votre périphérique.

Configuration avancée

Syntaxe d'une liste de paquets

Ce fichier placé dans /usr/share/live-helper/lists/ ou dans config/chroot_local-packageslist/ correspond à une liste de paquets à intégrer dans le système. Plusieurs fichiers existent déjà comme gnome, rescue, xfce, ou encore lxde. Il est possible d'intégrer une liste déjà existante dans un nouveau fichier comme dans l'exemple ci-dessous qui correspond au fichier maListeDePaquet :

## LH: maListeDePaquet
#include <lxde>
openoffice screen sudo  

Tout les paquets listés dans le fichier lxde seront intégrés auxquels se rajoutent les paquets openoffice, screen et sudo à condition que la variable LH_PACKAGES_LISTS du fichier config/chroot soit renseignée (ex: LH_PACKAGES_LISTS="maListeDePaquet").

Ajout d'une liste de paquets

Une méthode alternative à la création d'un fichier dans /usr/share/live-helper/lists/ est de lister les paquets désirés dans un fichier placé dans config/chroot_local-packageslists/. Par exemple :

#Navigateur et Internet
iceweasel iceweasel-l10n-fr 

#openoffice et bureautique
openoffice.org  openoffice.org-l10n-fr openoffice.org-help-fr kpdf 

L'utilisation est ensuite identique à celle d'un fichier présent dans /usr/share/live-helper/lists.

Ajout de paquets spécifiques

Cette méthode permet d'ajouter des paquets spécifiques, par exemple des paquets que vous avez compilés (voir Créer un paquet Debian). Il suffit de placer ces derniers (format *.deb) dans le répertoire config/chroot_local-packages/ et il seront automatiquement intégrés au nouveau système (les dépendances seront également résolues).

Enlever un paquet spécifique

...

Ajout manuel de fichiers

Il existe un répertoire qui correspondra à la racine du nouveau système dans lequel nous pouvons placer des fichiers qui seront automatiquement copiés dans le nouveau système. Ce répertoire est config/chroot_local-includes. Par exemple le fichier config/chroot_local-includes/etc/bash.bashrc sera présent dans le système comme /etc/bash.bashrc. L'utilisateur créé par défaut est user, le répertoire config/chroot_local-includes/home/user/ correspond donc à son répertoire personnel.

Modes persistant

Par défaut le système est figé et toutes modifications de ce dernier est perdue lors de l'arrêt de la machine. Les différents modes de persistance permettent de pallier à ce problème.

Avec une seconde clef USB

Ce mode va stocker les différences entre la version du système construit et le système démarré dans un système de fichier qui doit porter le label live-rw (par exemple une clef USB). Il suffit de créer une partition comme suit :

$mkfs.ext2 -L live-rw /dev/clef

Attention : Toutes les données présentes sur la clef seront perdues.
Il suffit ensuite de démarrer en précisant live persistent à l'invite boot.
NB : Une partition ayant pour label home-rw peut fonctionner de la même manière pour la seule sauvegarde du home.

Avec une image disque

Le principe est le même que le mode précédent mais permet de se passer d'une seconde clef USB. Les données seront stockées dans une image disque nommée live-rw qui doit être présente à la racine d'un système de fichier supporté (même NTFS) comme par exemple la clef usb elle-même. La création de cette image se fait de cette façon :

$dd if=/dev/null of=live-rw bs=512M seek=1
$mkfs.ext2 -F live-rw

Il faudra ensuite indiquer l'option persistent à l'invite boot et l'image sera automatiquement montée en loop.
NB : Une image disque nommée home-rw peut fonctionner de la même manière pour la seule sauvegarde du home.

SnapShot

Ce mode consiste à réaliser un "instantané" du système qui sera restauré au prochain démarrage. Le système live étant stocké dans tmpfs, si une partition avec le label live-sn (ou un fichier du même nom) est trouvé, son contenu sera copié dans tmpfs au démarrage du système. Lors de l'arrêt (ou du redémarrage) du système, l'opération inverse est effectuée. Cette dernière peut également être réalisée grâce à la commande snapshot -refresh. L'intérêt principal est que le support est moins sollicité, mais cette méthode ne permet pas la sauvegarde des modifications en cas d'arrêt inopiné. De plus, la suppression d'un fichier n'est pas pris en charge.

Utiliser le mode persistent par défaut

Il suffit de rajouter l'option live persistent à la suite des paramètres déjà précisés à l'aide du paramètre --bootappend-live "persistent"<b> de <b>lh_config.
NB : Ce paramètre modifie la ligne LH_BOOTAPPEND_LIVE= du fichier config/binary

Ajout de nouveaux dépôts de paquets

Il faut d'abord ajouter les dépôts dans le fichier /etc/apt/sources.list du système hôte et vérifier que les clefs sont valides. Il faut ensuite configurer le système à l'aide de lh_config puis ajouter le dépôt dans l'environement chrooté comme suit :

$echo 'adresse complète dépôt' > config/chroot_sources/'nom simple du dépôt'.chroot
$echo 'adresse complète dépôt' > config/chroot_sources/'nom simple du dépôt'.binary

En cas de problème d'authentification des paquets, il faut copier manuellement les fichiers *.gpg installés par le nouveau dépôt depuis le système hôte :

$cp -f /usr/share/keyrings/'nom simple du dépôt'.gpg config/chroot_sources/'nom simple du dépôt'.chroot.gpg
$cp -f /usr/share/keyrings/'nom simple du dépôt'.gpg config/chroot_sources/'nom simple du dépôt'.binary.gpg

Et le noyau ?

Live Helper:Noyau

Réalisation

Live Helper:E-mairie

Live Helper:FormalBox


Questions fréquentes

Live Helper:FAQ

Liens externes

Site officiel Debian live (en)
Wiki Debian (en)
Tutoriel de création d'une live USB (fr)
Manuel de Debian live (en)