logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:install:live-build [05/10/2013 01:06]
MicP [Les trois commandes principales]
doc:install:live-build [21/05/2023 12:56]
arpinux [Principe de construction du Live] typo
Ligne 1: Ligne 1:
-===== Debian live =====+===== Debian live  avec live-build ​=====
  
-**Exemple vérifié et testé ​le** : 13-09-2011+  ​Objet : création de votre distribution personnelle basée sur Debian. 
 +  ​Niveau requis :​{{tag>​débutant avisé}} 
 +  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) 
 +  * Suivi :  
 +    * Création par [[user> deuchdeb]] ​le 30/​08/​2011 
 +    ​Mise à jour par [[user>​arpinux]] le 20/​05/​2023 
 +    ​Vérifié le ... 
 +    * Testé par ....  
 +  * Commentaires sur le forum [[https://​debian-facile.org/​viewtopic.php?​id=937 |C'est ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
  
-  * Objet : Ce tuto a pour but d'​être un point de départ à la création de votre **live-Cd** ou d'une **live-USB** personnel. +===== Introduction =====
-  * Niveau requis : DÉBUTANT AVISÉ +
-  * Commentaires : //À la fin de ce tuto vous aurez les connaissances de bases et saurez utiliser les commandes indispensables.//​ +
-  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)+
  
-=== Nota ===+Live-build est un programme qui permet de créer un Live à partir d'un système développé en chroot (le système dans le système chrootchange root).\\ 
 +Un Live installable est un système embarqué utilisable sur CDROM/​DVD/​USB et installable sur tout support de stockage (clé USB, carte SD, disque dur interne). Il se compose d'un **squashfs** (une grosse archive) qui contient l'​intégralité du système, un **bootloader** ([[doc:systeme:​grub2:​theorie|GRUB]]) pour pouvoir démarrer et accessoirement un **installeur** (ce sera la cas dans notre exemple).\\ 
 +Le bootloader démarre et lance la décompression du squashfs afin de le rendre utilisable. Dès lors, le Live inséré se comporte comme un système d'​exploitation classique.
  
-**Live-build** était initialement nommé **live-package**puis **live-helper**.+Dans ce wikinous présenterons les options de base ainsi qu'un exemple complet de construction d'​un ​live.
  
 ===== Installation ====== ===== Installation ======
  
-<code root>apt-get install live-build</​code>​+<code root>​apt ​update && apt install live-build</​code>​
  
-ou+Le programme live-build se compose de 3 commandes principales à lancer depuis le répertoire de construction du Live :
  
-<code root>​aptitude install ​live-build</​code>​ +  * ''​lb config''​ : configurer les options de votre système ​live
-===== Les trois commandes principales =====+  * ''​lb ​build''​ : fabriquer votre système live à l'aide des dossiers et fichiers construits avec ''​lb config''​. 
 +  * ''​lb clean''​ : nettoyer les dossiers et les fichiers créés avec ''​lb build''​ pour pouvoir repartir à neuf et construire un nouveau système live à partir de zéro.
  
-Les commandes ''​lb config'',​ ''​lb build''​ et ''​lb clean''​ sont conçues pour vous aider à gérer votre configuration.+===== Principe de construction du Live =====
  
-Créer une arborescence avec des dossiers et des fichiers qui serviront ​à la construction ​de votre système live : +Pour construire un Live, placez-vous dans votre répertoire de travail ($HOME/​ma_debian_perso par exemple). Vous pouvez alors lancer les commandes ''​lb config''​ les unes après les autres afin de configurer le Live ou utiliser un **script de configuration** (à créer dans $HOME/​ma_debian_perso/​auto/​config) qui rassemble toutes les options. Un exemple complet ​de script est fournit plus bas.\\ 
-<code user>lb config</code>+Une fois votre Live configuré, lancez la commande ''​lb build''​ en root. Cette commande va générer un fichier ISO ou IMG transférable sur CD/DVD/USB pour une utilisation en Live.
  
-Fabriquer votre système live à l'​aide ​des dossiers et fichiers construits avec ''​lb config''​ : +===== Présentation ​des principales options ​de configuration =====
-<code root>lb build</​code>​ +
-    +
-Nettoyer les dossiers et les fichiers créés avec ''​lb build''​ pour pouvoir repartir à neuf et construire un nouveau système live à partir ​de zéro : +
-<code root>lb clean</​code>​+
  
-===== Quelques ​options ​pour la commande ​lb config ​===== +La commande ''​lb config''​ permet de configurer les options ​principales du Live, l'​architecture,​ les paquets intégrés, ​la destination du Live (DVD, USB) etc. Pour une liste exhaustive des options disponibles,​ n'​hésitez pas à consulter le man ''​man ​lb config''​.\\ 
-  +Voici quelques options à utiliser :
-==== Définir le type de support de votre système live ====+
  
-__ Pour créer une image pour clé USB__+  * Construire un Live en amd64 (par défaut, live-build construira un Live sous l'​architecture du système hôte) : 
 +<code user>lb config --architecture amd64</​code>​ 
 +  * Construire un live basé sur Debian Bullseye : 
 +<code user>lb config --distribution "​bullseye"</​code>​ 
 +  * Intégrer les dépôts mentionnés (à partir de Debian 12 Bookworm, ajoutez "​non-free-firmware" ​pour utiliser les micrologiciels non libres) : 
 +<code user>lb config --archive-areas "main contrib non-free"</​code>​ 
 +  * Construire un Live au format polyvalent utilisable sur DVD ou USB (pour une liste des formats, ''​man lb config''​) : 
 +<code user>lb config --binary-images "​iso-hybrid"</​code>​ 
 +  * Prendre en compte les paquets recommandés lors de la construction. Mettre sur "​false"​ produira un Live plus léger mais il faudra bien vérifier les dépendances lors du choix des paquets à intégrer : 
 +<code user>lb config --apt-recommends "​true"</​code>​ 
 +  * Intégrer un installeur. L'​option ''​live''​ installera la distribution perso configurée présente sur le Live, ''​none''​ supprimera la possibilité d'​installer le système, ''​netinst''​ ajoutera [[https://​www.debian.org/​distrib/​netinst.fr.html|l'​installeur par le réseau]] classique : 
 +<code user>lb config --debian-installer "​live"</​code>​
  
-     $ lb config -b usb-hdd +Plus d'​options et d'​explications dans l'​exemple à suivre...
-OU +
-     $ lb config --binary-images usb-hdd+
  
-<​note>​Cette commande peut prendre les valeurs suivantes : +===== Exemple de construction d'un Live Debian personnalisé =====
-   * iso : pour une image iso ; +
-   * iso-hybrid : polyvalente,​ peut être utilisé sur une machine virtuelle, supports optiques ou un périphérique USB ; +
-   * net : pour un démarrage par le réseau (compliqué) ; +
-   * tar: ... +
-</​note>​+
  
-==== Définir ​les paquets à mettre ​sur votre support live ====+Pour illustrer ce wiki, nous allons construire un live Debian personnalisé utilisant XFCE comme environnement,​ accompagné d'une série d'​applications choisies pour une utilisation basique. Cet exemple se base sur la construction de [[https://​debian-facile.org/​projets:​iso-debian-facile|Dfiso]] dont les sources sont [[https://​debian-facile.org/​git/​ProjetsDF/​dfiso-bullseye|disponibles ​sur GIT]].
  
-=== Plusieurs solutions s'offrent à vous ===+==== Mise en place de l'environnement de travail ====
  
-\\+Pour commencer, nous allons mettre en place un répertoire de travail et y placer les dossiers et fichiers nécessaires à la construction d'un Live. Les commandes qui suivent sont à adapter à votre système et aux souhaits pour votre future distribution personnelle : pensez à vérifier les commandes avant de les exécuter.
  
-   * __Choisir les ensembles prédéfinis dans live-build.__+Création du répertoire de travail et mise en place des principaux dossiers : 
 +<code user>​mkdir -p $HOME/​ma_debian_perso/​auto $HOME/​ma_debian_perso/​config 
 +cd $HOME/​ma_debian_perso/​auto 
 +cp /​usr/​share/​doc/​live-build/​examples/​auto/​* ​./</​code>​
  
-   $ lb config ​-p "​lxde"​+Deux dossiers principaux sont créés dans votre répertoire de travail : 
 +  * Le dossier **auto** contient les 3 scripts appelés par live-build : 
 +    * auto/build : le script de construction qui lit le script de config 
 +    * auto/clean : le script de nettoyage du dossier de build 
 +    * auto/config : le script principal définissant les options de constructions 
 +  * Le dossier **config** accueillera la personnalisation de votre système.
  
-ou+==== Configuration générale du Live ====
  
-   lb config --packages-lists "​lxde"​+La configuration du Live se situe dans le script ​$HOME/​ma_debian_perso/​auto/​config. Pour l'​exemple,​ voici un script dérivé de celui utilisé pour construire [[https://​debian-facile.org/​projets:​iso-debian-facile|DFiso]],​ la Debian préconfigurée par Debian-Facile :
  
-<note>Ces ensembles prédéfinis sont rangés dans le dossier ''​/usr/share/​live/​build/​lists/'',​ en voici la liste:+<file sh config> 
 +#!/bin/sh
  
-   *-"​debian-forensics"​ - "​debian-live-devel"​ - "​debian-live-pxe-server"​ - "​debian-science"​ +set -
-   ​*-"​gnome"​ - "​gnome-core"​ - "​gnome-desktop"​ - "​gnome-full"​ +
-   ​*-"​kde"​ - "​kde-core"​ - "​kde-desktop"​ - "​kde-extra"​ - "​kde-full"​ +
-   ​*-"​lxde"​ - "​lxde-desktop"​ +
-   ​*-"​minimal"​ +
-   ​*-"​rescue"​ +
-   ​*-"​standard"​ - "​standard-x11"​ +
-   ​*-"​xfce"​ - "​xfce-desktop"​ +
-</​note>​+
  
-   *__Choisir d'​ajouter un petit nombre de paquets.__+lb config noauto \ 
 +    --mode "​debian"​ \ 
 +    --system "​live"​ \ 
 +    --distribution "​bullseye"​ \ 
 +    --architecture "​amd64"​ \ 
 +    --archive-areas "main contrib non-free"​ \ 
 +    --security "​true"​ \ 
 +    --updates "​true"​ \ 
 +    --backports "​false"​ \ 
 +    --binary-images "​iso-hybrid"​ \ 
 +    --bootloaders "​syslinux grub-efi"​ \ 
 +    --apt-indices "​true"​ \ 
 +    --apt-recommends "​true"​ \ 
 +    --apt-secure "​true"​ \ 
 +    --apt-source-archives "​false"​ \ 
 +    --linux-package "​linux-image linux-headers"​ \ 
 +    --debian-installer "​live"​ \ 
 +    --debian-installer-distribution "​bullseye"​ \ 
 +    --debian-installer-gui "​true"​ \ 
 +    --firmware-binary "​true"​ \ 
 +    --firmware-chroot "​true"​ \ 
 +    --iso-publisher "​Projet DFiso; https://​debian-facile.org/​dflinux;​ contact@debian-facile.org"​ \ 
 +    --memtest "​none"​ \ 
 +    --win32-loader "​false"​ \ 
 +    --clean \ 
 +    --debug \ 
 +    --verbose \ 
 +    --source "​false"​ \ 
 +    "​${@}"​ 
 +</​file>​
  
-   ​$ ​lb config ​--packages "​paquet1 paquet2 paquet3"​+Ce script rassemble les options pour ''​lb config'',​ il sera appelé lors du lancement de la commande ''​lb build''​.\\ 
 +Explications des options présentées :
  
 +  * ''​%%--%%system "​live"''​ : pour indiquer que le système généré sera utilisable en session "​live"​
 +  * ''​%%--%%distribution "​bullseye"''​ : pour indiquer la distribution sur laquelle se base le Live
 +  * ''​%%--%%architecture "​amd64"''​ : pour indiquer l'​architecture du futur Live
 +  * ''​%%--%%archive-areas "main contrib non-free"''​ : pour indiquer les dépôts actifs lors de la construction
 +  * ''​%%--%%security "​true"''​ : pour indiquer l'​utilisation des dépôts "​security"​
 +  * ''​%%--%%updates "​true"''​ : pour intégrer les dépôts "​updates"​ dans les sources du live
 +  * ''​%%--%%backports "​false"''​ : pour ne pas utiliser les dépôts "​backports"​
 +  * ''​%%--%%binary-images "​iso-hybrid"''​ : pour générer une ISO polyvalente utilisable sur CD/DVD/USB
 +  * ''​%%--%%bootloaders "​syslinux grub-efi"''​ : pour indiquer les 2 bootloaders en cas d'​utilisation sur un système BIOS (syslinux) ou UEFI (grub-efi)
 +  * ''​%%--%%apt-indices "​true"''​ : pour activer les informations apt
 +  * ''​%%--%%apt-recommends "​true"''​ : pour utiliser les paquets recommandés par apt
 +  * ''​%%--%%apt-secure "​true"''​ : pour vérifier les signatures des paquets utilisés
 +  * ''​%%--%%apt-source-archives "​false"''​ : pour ne pas intégrer les "​deb-src"​ dans les dépôts du système
 +  * ''​%%--%%linux-package "​linux-image linux-headers"''​ : pour identifier le noyau utilisé et si les "​headers"​ du noyau doivent être intégrés
 +  * ''​%%--%%debian-installer "​live"''​ : pour installer le système préconfiguré lors de l'​installation
 +  * ''​%%--%%debian-installer-distribution "​bullseye"''​ : pour indiquer la distribution de l'​installeur
 +  * ''​%%--%%debian-installer-gui "​true"''​ : pour indiquer l'​utilisation d'un installeur graphique
 +  * ''​%%--%%firmware-binary "​true"''​ : pour ajouter les micrologiciels dans le Live
 +  * ''​%%--%%firmware-chroot "​true"''​ : pour ajouter les micrologiciels dans le système installé
 +  * ''​%%--%%iso-publisher "​Projet DFiso; https://​debian-facile.org/​dflinux;​ contact@debian-facile.org"''​ : pour identifier le constructeur de l'ISO
 +  * ''​%%--%%memtest "​none"''​ : pour ne pas intégrer "​memtest"​
 +  * ''​%%--%%win32-loader "​false"''​ : pour ne pas intégrer le lanceur microsoft
 +  * ''​%%--%%clean''​ : pour nettoyer les dossiers vides lors de la construction
 +  * ''​%%--%%debug''​ : pour générer les plus d'​infos possible pour les '​log'​
 +  * ''​%%--%%verbose''​ : pour augmenter les retours sur le '​log'​
 +  * ''​%%--%%source "​false"''​ : pour ne pas générer les sources complètes du build (avec les sources de tous les paquets utilisés)
  
-\\ +Les deux autres scripts présents dans ''​auto/'',​ "​build"​ et "​clean"​ sont courts et basiques :
-   ​*__Choisir d'ajouter des tâches comme avec l'installateur Debian.__+
  
 +Le script de build indique le nom du fichier de '​log'​ à consulter après construction :
 +<file sh build>
 +#!/bin/sh
  
-   $ lb config ​--tasks "​desktop laptop"​+set -e
  
-<note>Il existe plusieurs de ces tâches, en voici la liste :+lb build noauto "​${@}"​ 2>&1 | tee build.log 
 +</file>
  
-  * -"​desktop" ​              ​Desktop environment +Le script de nettoyage indique les dossiers et fichiers à supprimer lors de la commande ''​lb clean''​ (à lancer en root) : 
-  * -"​web-server" ​         Web server +<file sh clean> 
-  * -"​print-server" ​        Print server +#!/bin/sh 
-  * -"​dns-server" ​         DNS server +         ​ 
-  * -"file-server" ​           File server +set -e
-  * -"​mail-server" ​         Mail server +
-  * -"​database-server" ​ SQL database +
-  ​* ​-"​ssh-server" ​          SSH server +
-  * -"​laptop" ​                 Laptop +
-</​note>​+
  
-   ​*__Ajouter sa liste de paquets.__+lb clean noauto "​${@}"​
  
-Pour cela il faut ajouter un fichier avec le suffixe ''​.list''​ dans le dossier ''​/home ~/config/chroot_local-packageslists/''​.+rm -f config/binary config/bootstrap ​config/chroot config/common config/​source 
 +rm -f build.log 
 +</​file>​
  
-Exemple:+==== Choix des paquets à installer ====
  
-   $ nano /home ~/​config/​chroot_local-packageslists/​MaListDePaquets.list+Comme vous pouvez le constater, le script principal du build ''​auto/build''​ ne mentionne aucun paquet hormis le noyau "linux-image" et les "​linux-headers"​. Les paquets sont installés directement depuis une liste, depuis un dossier dédié ou depuis un script additionnel placé dans les "​hooks"​. Nous allons détailler chaque méthode.
  
-Ensuite vous listez dans ce fichier tous les paquets dont vous avez besoin et que vous estimez nécessaires à la création ​de votre système live.+=== Ajout de paquets ​.deb depuis une liste ===
  
-<note important>​ Normalement ce fichier ​sera pris automatiquement en compte ​lors de la construction de votre système ​live. +C'est la méthode par défaut. Il suffit de placer une liste de paquets dans le fichier ​''​config/​packages-lists/​maliste.chroot''​ ("​maliste"​ ou ce que vous voulez tant que vous placez "​.chroot"​ en extension) pour qu'​elle soit automatiquement ​prise en compte ​par live-buildCette liste est lue par ''​apt''​ : vous n'avez pas à vous soucier des dépendances,​ elles seront automatiquement ajoutéesLes paquets doivent être séparés par un espace, les commentaires (#) sont autorisés.\\ 
-Pour des raisons inconnues cette méthode n'a pas fonctionné ​ et donc n'est pas validée.</​note>​+Voici la liste des paquets pour DFiso :
  
 +<file config maliste.chroot>​
 +## dfiso packages ##
 +#base
 +task-french-desktop task-french lsb-release acpi accountsservice user-setup bash bash-completion command-not-found
 +#login
 +lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings mugshot
 +#desktop & xfce4-apps
 +xfce4 xfce4-terminal xfce4-notifyd xfce4-settings xfce4-taskmanager xarchiver xfburn xfce4-goodies xfce4-power-manager tlp
 +#filer xtra
 +thunar-archive-plugin tumbler-plugins-extra
 +#network
 +hexchat firefox-esr firefox-esr-l10n-fr webext-https-everywhere webext-ublock-origin-firefox thunderbird thunderbird-l10n-fr
 +transmission-gtk network-manager-gnome curl wpasupplicant
 +#office
 +libreoffice libreoffice-gtk3 gnote gnome-calculator mousepad atril hplip-gui fbreader
 +cups-pdf system-config-printer simple-scan xournal pdfarranger
 +#media
 +vlc asunder lame alsa-utils alsa-tools rhythmbox gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly
 +pavucontrol sox mpg123 vorbis-tools flac wavpack
 +#graphics
 +ristretto shotwell gimp cheese
 +#games
 +aisleriot crack-attack four-in-a-row gnome-2048 gnome-chess gnome-mines gnome-nibbles gnome-sudoku quadrapassel gnome-mahjongg
 +#system
 +vrms synaptic gdebi gnome-system-tools dkms gnome-disk-utility gdisk dosfstools ntfs-3g mtools e2fsprogs gnome-software
 +#flatpak
 +flatpak gnome-software-plugin-flatpak
 +#tools
 +catfish zenity zip p7zip-full most baobab dvd+rw-tools xdotool eject deja-dup blueman hardinfo
 +#misc
 +gvfs gvfs-fuse gvfs-backends x11-utils x11-apps numlockx ntp
 +#theme
 +gnome-brave-icon-theme arc-theme numix-gtk-theme numix-icon-theme numix-icon-theme-circle
 +#qt
 +qt5-style-plugins
 +#nonfree
 +alsa-firmware-loaders amd64-microcode atmel-firmware bluez-firmware dahdi-firmware-nonfree firmware-linux firmware-linux-nonfree
 +firmware-misc-nonfree firmware-amd-graphics firmware-atheros firmware-ath9k-htc firmware-b43-installer firmware-b43legacy-installer
 +firmware-bnx2 firmware-bnx2x firmware-brcm80211 firmware-cavium firmware-ipw2x00 firmware-iwlwifi firmware-intel-sound
 +firmware-intelwimax firmware-ivtv firmware-libertas firmware-myricom firmware-netronome firmware-netxen firmware-qlogic firmware-realtek
 +firmware-samsung firmware-siano firmware-ti-connectivity firmware-zd1211 hdmi2usb-fx2-firmware intel-microcode iucode-tool
 +ttf-mscorefonts-installer ttf-xfree86-nonfree unrar
 +</​file>​
  
-Autre solution ajouter ​un fichier ''​MaListeDePaquet''​ dans le répertoire''/​usr/​share/​live/​build/lists/''​+Pour éviter les doublons, vous pouvez vérifier la liste des dépendances de vos paquets depuis le gestionnaire de paquets Synaptic en graphique ou depuis ​un terminal avec apt-rdepends: 
 +<code root>apt update && apt install apt-rdepends<​/code> 
 +<code user>​apt-rdepends mon_paquet<​/code>
  
-Pour cela vous entrez la commande suivante en mode administrateur.+=== Ajout de paquets ​.deb depuis le dossier dédié ===
  
-Voir : +Un autre moyen d'​ajouter des paquets à votre liveCD est de littéralement les "​coller"​ dedans. En effet, tous les paquets de type debian (.deb) placés dans le dossier ''​config/​packages/''​ seront installés dans le Live.\\ 
-  [[:doc:systeme:su | La commande SU]]+**__Attention__** ​cette procédure n'est pas effectuée par ''​apt''​ mais par ''​dpkg''​. Il n'y a donc pas de prise en charge des dépendances ​prenez soin de les ajouter dans le même dossier, ou de les ajouter dans la liste des paquets à installer (voir section précédente sur les package-lists).
  
-   # nano /​usr/​share/​live/​build/​lists/​MaListeDePaquet+=== Ajout de paquets .deb depuis les "​hooks"​ ===
  
-Ensuite vous listez ​dans ce fichier tous les paquets dont vous avez besoin et que vous estimez nécessaires à la création ​de votre système live. +Les scripts du type "​monscript.chroot"​ placés ​dans le dossier ''​config/​hooks/​normal/''​ seront exécutés dans le chroot avant la compression en squashfs. Vous pouvez donc faire quasiment ​ce que vous voulez via ces scripts, dont l'​ajout ​de paquetUn exemple avec l'​installation et la configuration ​de libdvd-pkg qui permettra ​la lecture des DVD commerciaux sur votre futur système ​:
-<note tip> Pour que votre liste de paquets soit prise en compte, il faudra entrer ​la commande suivante<code bash>$ lb config -p "​MaListeDePaquets"</​code></​note>​+
  
-==== Mettre votre système live en français ====+<file sh libdvdcss2.chroot>​ 
 +#!/bin/sh
  
-   $ lb config ​--language fr +set -e
-    +
-   $ lb config --bootappend-live "​locales=fr_FR.UTF-8 keyboard-layouts=fr"​+
  
-Et si vous voulez une variante ​de disposition clavier particulière:​(ici latin9)+# installation ​de libdvd-pkg 
 +apt install libdvd-pkg
  
-   $ lb config --bootappend-live "​locales=fr_FR.UTF-8 keyboard-layouts=fr ​ keyboard-variants=latin9"​+# compilation de libdvdcss2 à partir des sources debian 
 +export DEBIAN_FRONTEND=noninteractive 
 +dpkg-reconfigure libdvd-pkg 
 +</​file>​
  
-==== Choisir l'​architecture de votre système live ====+==== Personnalisation ​====
  
-   $ lb config ​-a i386+Nous avons vu que la construction d'un Live s'​effectuait dans un chroot, un sous-système dans votre système. Nous avons vu que vous pouviez agir sur ce chroot grâce aux options du live-build, mais également depuis les scripts hooks qui modifient le chroot de l'​intérieur avant sa compression dans le squashfs.\\ 
 +Nous allons voir comment remplacer ou ajouter des fichiers dans le chroot avant même le processus de construction.
  
-ou+=== Personnalisation du système ===
  
-   $ lb config ​--architecture i386+La modification directe du système se fait via le dossier ''​config/​includes.chroot''​. Tout ce qui sera dans ce dossier se retrouvera dans le chroot, donc dans le squashfs, donc dans le Live. L'​arborescence et les droits des ajouts seront conservés lors de la construction.\\ 
 +Vous voulez votre theme_perso disponible dans le Live ? Il suffit de créer un dossier ''​config/​includes.chroot/​usr/​share/​themes/''​ et d'y coller votre dossier theme_perso.\\ 
 +Vous voulez vos fonds d'​écran favoris dans le Live ? Il suffit de créer un dossier ''​config/​includes.chroot/​usr/​share/​backgrounds/''​ et d'y coller vos images.\\ 
 +etc.
  
 +=== Personnalisation de l'​utilisateur ===
  
-<​note>​Valeurs possibles ** amd64, i386, PowerPC ​et SPARC ** </note>+La modification de la configuration de l'​utilisateur se fait via le dossier ''​config/​includes.chroot/​etc/​skel/''​ aka "​skeleton"​ : tout ce que vous collez dans ce dossier se retrouvera dans le ''​$HOME/​user/''​ de votre Live et dans le ''​$HOME/​mon_login/''​ de votre système installé. Très pratique pour ajouter votre ''​~/​.bashrc''​ préparés aux petits oignons : collez-le dans ''​config/​includes.chroot/​etc/​skel/​.bashrc''​.\\ 
 +De la même façon, vous pouvez ajouter de la documentation pour le futur utilisateur dans ''​config/​includes.chroot/​etc/​skel/​Documents/ma_doc.pdf''​
  
 +=== Limites à la personnalisation ===
  
-==== Choisir sa distribution ====+Si vous ajoutez dans le dossier ''​config/​includes.chroot/'',​ un élément qui appartient déjà à un paquet, il sera écrasé par le paquet original lors du build. Par exemple, si vous voulez coller votre version de "​ffmpeg"​ dans ''​config/​includes.chroot/​usr/​bin/​ffmpeg'',​ il sera écrasé par le vrai "​ffmpeg"​ lors de la prochaine mise à jour. Vous pouvez coller le vôtre dans ''​config/​includes.chroot/​usr/​local/​bin/​ffmpeg''​ : il ne sera pas écrasé et vous pourrez vous en servir sans soucis depuis un alias approprié,
  
-   $ lb config -d squeeze +==== Construction du Live ====
-    +
-ou+
  
-   $ lb config --distribution squeeze +Vous avez désormais un dossier de build prêt à l'​emploi pour construire une Debian personnalisée.\\ 
-    +Une fois vos fichiers configurés et vos dossiers complétés,​ vous pouvez lancer la construction ​de votre Live depuis ​le répertoire ​de travail ​
-<​note>​ Il suffit ​de mettre ​le nom de la distribution voulue+<code user>cd $HOME/​ma_debian_perso</​code>​ 
-   * - squeeze +<code root>lb build</code>
-   * - wheezy +
-   * - sid +
-</note+
  
-==== Choisir l'origine ​des paquets ​====+Vous pouvez aller boire un thé ou retaper votre chaise de jardin... la construction d'un Live dépend de votre système et des paquets ​à installer et peut prendre entre 20 minutes et 2 heures...\\ 
 +Au final, un fichier ''​$HOME/​ma_debian_perso/​live-image-amd64.hybrid.iso''​ sera généré : Félicitations,​ c'est votre Live ! Il ne reste plus qu'à le renommer et à la transférer sur un DVD ou une clé USB.
  
-   $ lb config --archive-areas "​main"​ +=== Tests et corrections ===
-    +
-ou+
  
-   $ lb config --archive-areas "main contrib"​ +Pour la phase de test, je vous conseille d'​installer votre distro sur une machine virtuelle afin de pouvoir noter vos dernières commandes qui seront à répercuter dans le dossier de build.
-    +
-ou+
  
-   $ lb config --archive-areas "main contrib non-free"​ +**Conseils pour un bon debug :** 
-    +  * Testez chaque application ​en condition réelle ​ne faites pas qu'​ouvrir votre navigateur, naviguez avec. N'​ouvrez pas simplement gimp, éditez, enregistrez et imprimez une image. 
-<​note>​ les valeurs prises ​en compte sont+  Lancez les applications depuis un terminal afin d'observer les erreurs éventuelles ​et notez les modifications qui s'​imposent (ajout d'un gtk-engine pour le rendu graphique, d'une librairie manquante...
-   ​- main  (l'archive principale ​et officielle de Debian+  Lancez un update/​upgrade et vérifiez les paquets ​recommandés ​non-installés pour détecter d'​éventuels petits outils manquants 
-   ​- contrib (archive contenant des paquets libres mais faisant appel à des paquets non-libres) +  Côté préférences utilisateur : je vous conseille ​de peaufiner vos réglages personnels, puis d'​archiver tout ça pour la dernière étape et la construction finale.
-   ​- non-free (archive ​de paquets non libres comme certains pilotes wifi ou des pilotes de cartes graphiques) +
-</​note> ​  +
  
 +Modification du build > build > tests > répercussion des modifications > nettoyage > build ... ce processus devra être répété pour parvenir à la distro de vos rêves.
  
 +==== Finalisation de l'​image ISO ====
  
-===== Choisir ​le nom de votre système live =====+Vous avez un Live exploitable et personnalisé,​ il reste à peaufiner l'​environnement de démarrage et l'​installeur. Ça se passe dans le dossier ''​config/​includes.binary/''​. Dans notre exemple, le Live généré sera en français, utilise un clavier "​fr"​ et fixe le nom de l'​utilisateur (humain) et le nom d'​hôte (DFiso) : à adapter à votre configuration.
  
-   $ lb config --hostname debianlive+=== Configuration du menu de lancement BIOS ===
  
-<​note>​Vous pouvez remplacez ​''​debianlive'' ​par ce que vous souhaitez.</note>+Le fond d'écran et le texte qui s'affichent au lancement du Live en version BIOS se configurent dans le dossier ​''​config/​includes.binary/​isolinux''​. 
 +<code user>cd ~/ma_debian_perso/​config/​includes.binary/​isolinux 
 +ls 
 +install.cfg ​ live.cfg ​ menu.cfg ​ splash.png ​ stdmenu.cfg</​code> 
 +Le fond d'​écran se nomme ''​splash.png''​ et doit faire 640x480 px en PNG. Pour les fichiers texte, voici ceux de DFiso :
  
-===== Choisir le nom de votre session ​live =====+  * config/​includes.binary/​isolinux/​menu.cfg : titre du menu de démarrage et liste des fichiers appelés 
 +<file config menu.cfg>​ 
 +menu hshift 0 
 +menu width 82 
 +          
 +menu title Debian 11 par debian-facile : testez ou installez ... 
 +include stdmenu.cfg 
 +include ​live.cfg 
 +include install.cfg 
 +menu clear 
 +</​file>​
  
-    $ lb config --username nomade+  * config/​includes.binary/​isolinux/​stdmenu.cfg : configuration graphique du menu et label de fin 
 +<file config stdmenu.cfg>​ 
 +menu background splash.png 
 +menu color title    * #FFFFFFFF * 
 +menu color border ​  * #00000000 #00000000 none 
 +menu color sel      * #ffffffff #5258b88b8 * 
 +menu color hotsel ​  ​1;​7;​37;​40 #ffffffff #5258b88b8 * 
 +menu color tabmsg ​  * #c1ccdcc1c #00000000 * 
 +menu color help     37;40 #ffdddd00 #00000000 none 
 +menu vshift 12 
 +menu rows 10 
 +menu helpmsgrow 15 
 +# The command line must be at least one line from the bottom. 
 +menu cmdlinerow 16 
 +menu timeoutrow 16 
 +menu tabmsgrow 18 
 +menu tabmsg ENTER pour lancer ​-- TAB pour editer 
 +</​file>​
  
-<note>Vous pouvez remplacez ''​nomade''​ par ce que vous souhaitez.</note>+  * config/​includes.binary/​isolinux/​live.cfg : les entrées de lancement de la session live 
 +<file config live.cfg> 
 +label live 
 +    menu label Tester Debian 11 
 +    menu default 
 +    linux /​live/​vmlinuz 
 +    initrd /​live/​initrd.img 
 +    append boot=live components quiet splash acpi_osi=Linux username=humain hostname=DFiso locales=fr_FR.UTF-8 keyboard-layouts=fr timezone=Europe/Paris
  
 +label live-failsafe
 +    menu label Tester Debian 11 (mode sans echec)
 +    linux /​live/​vmlinuz
 +    initrd /​live/​initrd.img
 +    append boot=live components noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal username=humain hostname=DFiso locales=fr_FR.UTF-8 keyboard-layouts=fr timezone=Europe/​Paris
 +</​file>​
  
-===== Création de votre système live =====+  * config/​includes.binary/​isolinux/​install.cfg : les entrées d'​installation du Live 
 +<file config install.cfg>​ 
 +label classic 
 +    menu label Installation classique 
 +    linux /​install/​gtk/​vmlinuz 
 +    initrd /​install/​gtk/​initrd.gz 
 +    append video=vesa:​ywrap,​mtrr vga=788 locale=fr_FR.UTF-8 keyboard-configuration/​layoutcode=fr keyboard-configuration/​variantcode=latin9 keyboard-layout=fr file=/​cdrom/​install/​df-preseed.cfg -- quiet
  
-Un fois que vous avez fini de configurer et que vous pensez que vous n'avez rien oublié, vous pouvez lancer ​la construction ​de votre système.+label expert 
 +    menu label Installation en mode expert 
 +    linux /​install/​vmlinuz 
 +    initrd /​install/​initrd.gz 
 +    append vga=788 priority=low 
 +</​file>​ 
 +Notez que ce dernier fichier appelle le ''​df-preseed.cfg''​ décrit dans la section "​[[doc:​install:​live-build#​pre-configuration-de-l-installeur|Pré-configuration de l'​installeur]]"​.
  
-Il suffit pour cela d'​entrer la commande suivante avec les droits ​de l'​administrateur.+=== Configuration du menu de lancement UEFI ===
  
-Voir : +Le fond d'​écran et le texte qui s'​affichent au lancement du Live en version UEFI se configurent dans le dossier ''​config/​includes.binary/​boot/​grub/''​. 
-  ​* [[:​doc:​systeme:su | La commande SU]]+<code user>cd ~/​ma_debian_perso/​config/​includes.binary/​boot/​grub 
 +ls 
 +grub.cfg ​ live-theme ​ splash.png 
 +cd live-theme && ls 
 +theme.txt</​code>​ 
 +Le fond d'​écran se nomme ''​splash.png''​ et doit faire 1024x768 px en PNG. Pour les fichiers texte, voici ceux de DFiso :
  
-   # lb build+  * config/​includes.binary/​boot/​grub/​grub.cfg : configuration des entrées du menu de GRUB 
 +<file config grub.cfg>​ 
 +set default=0
  
-Et voilà ;-)+loadfont $prefix/​dejavu-bold-16.pf2 
 +loadfont $prefix/​dejavu-bold-14.pf2 
 +loadfont $prefix/​unicode.pf2 
 +set gfxmode=auto 
 +insmod all_video 
 +insmod gfxterm 
 +insmod png
  
-===== Exemple pour la construction d'​une ​live-usb =====+set theme=/boot/grub/live-theme/​theme.txt 
 +set menu_color_normal=cyan/blue 
 +set menu_color_highlight=white/blue
  
-__ Création d'un répertoire de travail__+terminal_output gfxterm
  
-  $ mkdir /​home/​utilisateur/​live+insmod play 
 +play 960 440 1 0 4 440 1
  
-__ Se placer dans ce répertoire__ +# Live boot 
-   +menuentry "​Tester Debian 11" { 
-  ​$ cd /home/utilisateur/live +    ​linux ​  /​live/​vmlinuz boot=live components quiet splash acpi_osi=Linux username=humain hostname=DFiso locales=fr_FR.UTF-8 keyboard-layouts=fr timezone=Europe/​Paris 
-     +    initrd ​ /live/initrd.img 
-__ Entrer les commandes suivantes, l'une après l'​autre__+
 +menuentry "​Tester Debian 11 (mode sans échec)"​ { 
 +    linux   /live/vmlinuz boot=live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal username=humain hostname=DFiso locales=fr_FR.UTF-8 keyboard-layouts=fr timezone=Europe/​Paris 
 +    ​initrd ​ /​live/​initrd.img 
 +}
  
-<​code>​ +menuentry "​Installation classique"​ { 
-$ lb config ​--packages "​iceweasel iceweasel-l10n-fr evince aspell-fr wireless-tools wpasupplicant netbase ifupdown firmware-linux firmware-b43-installer firmware-ralink chromium-browser chromium-browser-l10n"​+    ​linux ​  /​install/​gtk/​vmlinuz video=vesa:​ywrap,​mtrr vga=788 quiet locale=fr_FR.UTF-8 keyboard-configuration/​layoutcode=fr keyboard-configuration/​variantcode=latin9 keyboard-layouts=fr file=/​cdrom/​install/​df-preseed.cfg 
 +    initrd ​ /​install/​gtk/​initrd.gz 
 +}
  
-$ lb config ​--archive-areas "main contrib non-free"+menuentry "​Installation en mode expert"​ { 
 +    linux   /​install/​vmlinuz priority=low vga=normal 
 +    initrd ​ /​install/​initrd.gz 
 +
 +</​file>​ 
 +Notez que ce fichier appelle le ''​df-preseed.cfg''​ décrit dans la section "​[[doc:​install:​live-build#pre-configuration-de-l-installeur|Pré-configuration de l'​installeur]]".
  
-$ lb config -d squeeze+  * config/​includes.binary/​boot/​grub/​live-theme/​theme.txt : configuration graphique du menu GRUB 
 +<file config theme.txt>​ 
 +desktop-image:​ "/​boot/​grub/​splash.png"​ 
 +title-color:​ "#​ffffff"​ 
 +title-font: "​DejaVu Sans Bold 16" 
 +title-text: "​Debian 11 par Debian-Facile : testez ou installez ..." 
 +message-font:​ "​Unifont Regular 16" 
 +terminal-font:​ "​Unifont Regular 16"
  
-$ lb config ​-b usb-hdd+#help bar at the bottom 
 ++ label { 
 +    top = 100%-50 
 +    left = 0 
 +    width = 100% 
 +    height = 20 
 +    text = "​@KEYMAP_SHORT@"​ 
 +    align = "​center"​ 
 +    color = "#​ffffff"​ 
 +    font = "​DejaVu Sans Bold 14" 
 +}
  
-$ lb config ​--username nomade+#boot menu 
 ++ boot_menu { 
 +    left = 10% 
 +    width = 80% 
 +    top = 52% 
 +    height = 48%-80 
 +    item_color = "#​a8a8a8"​ 
 +    item_font = "​DejaVu Sans Bold 14" 
 +    selected_item_color= "#​ffffff"​ 
 +    selected_item_font = "​DejaVu Sans Bold 16" 
 +    item_height = 18 
 +    item_padding = 0 
 +    item_spacing = 4 
 +}
  
-$ lb config ​--hostname debianlive+#progress bar 
 ++ progress_bar { 
 +    id = "​__timeout__"​ 
 +    left = 15% 
 +    top = 100%-80 
 +    height = 16 
 +    width = 70% 
 +    font = "​DejaVu Sans Regular 14" 
 +    text_color = "#​000000"​ 
 +    fg_color = "#​ffffff"​ 
 +    bg_color = "#​a8a8a8"​ 
 +    border_color = "#​ffffff"​ 
 +    text = "​@TIMEOUT_NOTIFICATION_LONG@"​ 
 +
 +</​file>​
  
-$ lb config ​-a i386+=== Pré-configuration de l'​installeur ===
  
-$ lb config ​--bootappend-live "​locales=fr_FR.UTF-8 keyboard-layouts=fr"​+Le fichier ''​preseed.cfg''​ va vous permettre de supplanter les étapes de l'​installeur Debian et ainsi accélérer le processus ou définir vos préférences. Ce fichier de configuration se situe par défaut dans ''​config/​includes.binary/​install/​preseed.cfg''​.\\ 
 +Pour l'​exemple,​ voici celui de DFiso :
  
-$ lb config --language fr+<​file ​config ​preseed.cfg>​ 
 +# uniquement les questions importantes 
 +d-i debconf/​priority string critical
  
-$ lb config ​--packages-lists "​lxde-desktop"​+# Nom de la machin par défaut 
 +d-i netcfg/​hostname string debian
  
-</code>+# Ne pas créer de compte root (l'​utilisateur ordinaire utilisera sudo). 
 +d-i passwd/root-login boolean false
  
-<note tip>La liste de paquets de la première ligne est à adapter à votre convenance, les firmwares choisis correspondent à des machines particulières.+# Le compte sera ajouté ​à certains groupes. 
 +d-i passwd/​user-default-groups string audio cdrom video sudo netdev plugdev fuse users lp lpadmin scanner floppy dip bluetooth
  
-captnfab a fait avec d'autres paquets:​http://​wiki.debian-facile.org/manuel:​installation:​installusbsqueeze#​paquets_installes +# fixer le 'hostname'​ 
- </note>+d-i netcfg/get_hostname string debian 
 +d-i netcfg/get_hostname seen false
  
-__ Création de votre système live__+# tout dans une seule partition (atomic, home, multi) 
 +d-i partman-auto/​choose_recipe select atomic
  
-Se mettre en tant qu'administrateur système.+# installation automatique de GRUB s'il n'​ya ​qu'un seul OS installé sur la machine. 
 +d-i grub-installer/​only_debian boolean true
  
-Voir : +# Réseau désactivé 
-  * [[:​doc:​systeme:​su | La commande SU]]+d-i netcfg/​enable boolean false 
 +d-i apt-setup/​use_mirror boolean false 
 +</​file>​
  
-   # lb build +Vous trouverez aisément des exemples de fichiers preseed sur la toile.
-   +
  
-    +Et voilàon a fait le tour des modifications simples ​de votre Live. Il ne vous reste plus qu'à retourner ​dans votre dossier de build, revérifier vos dernières modifications puis lancer la formule magique ​:
-<​note>​Cela créeraentre autres, (après beaucoup ​de patience) ​dans votre répertoire live un fichier**binary.img**</​note>​+
  
-__ Copier le fichier binary.img sur votre clé USB__+<code root>lb clean && lb build</​code>​
  
 +et hop... vous avez votre dérivée Debian personnalisée prête à être distribuée. Quelques mots à ce sujet dans le chapitre qui suit...
  
-   $ dd if=/​home/​utilisateur/​live/​binary.img of=/dev/sd*+==== Distribuer votre Live : ligne de conduite pour les dérivées Debian ====
  
-// Remplacez * par la lettre qui correspond à la clé USB__exemple__: /dev/​sdb ​ et **non pas** : /dev/sdb1 ou sdb2 //+Vous venez de construire une dérivée Debian. Ce n'est pas n'​importe quoivous utilisez le travail de toute une communauté,​ alors une petite ligne sérieuse ​:\\ 
 +Debian est une distribution GNU/Linux, mais pas que... Debian, c'est aussi une ligne de conduite, une charte, et certaines recommandations quant à la distribution de dérivée. Cette ligne de conduite est précisée dans les Debian Derivatives Guidelines (https://wiki.debian.org/Derivatives/Guidelines). je vous conseille vivement de consulter ce document afin de respecter un maximum la distribution grâce à laquelle vous avez pu construire la votre. Merci beaucoup.
  
-<note warning>​Ceci écrasera toutes les données présentes sur la clé USB.\\ +=== Un mot sur les copyright ===
-Assurez-vous qu'il n'y ait aucune donnée stockée sur la clé. </​note>​ +
- +
-__ Redémarrer votre nouveau système__ +
- +
-Voilà vous avez un système Debian avec ''​lxde''​ et vos paquets perso qui démarre à partir de la clé USB +
- +
-<note tip>Pour ceux qui ont de vieux ordinateurs qui ne boutent pas sur les clés USB, il faudra créer un image ISO et la graver sur un CD/DVD. Voir ici:​http://​wiki.debian-facile.org/​manuel:​installation:​live_build#​%C2%A0definir_le_type_de_support_de_votre_systeme_live</​note>​+
  
 +Si vous voulez diffuser votre live, ce que vous y ajoutez est de votre responsabilité,​ donc respectez les licences, créditez les auteurs, placez des liens dans un README... bref soyez responsables de ce que vous diffusez : les débutants ou les curieux de Debian méritent de recevoir un truc propre ;)
  
 ===== Conclusion ===== ===== Conclusion =====
  
-Vous avez maintenant les bases pour créer votre propre système live, mais il existe de nombreuses autres options à la commande ** lb config**. +Log log log ... c'est le maître-mot de ce processus de constructionPourquoi ? Parce que vous aurez de la chance si tout se passe exactement comme vous le souhaitez du premier coup ! Lisez les logs ''​ma_debian_perso/build.log''​. 
- +  
-__Des exemples sont disponibles ici:__ +===== Liens =====
- +
-  * [[:​doc:​install:​deblive-usb-persistant|Créer une clé USB avec persistance des données]] +
- +
-__De plus la documentation officielle est disponible ici:__ +
- +
-  * [[http://​live.debian.net/​manual/​index.fr.html|La documentation officielle dans pleins ​de formats.]]  +
- +
-__ Et bien sûr la page de man de lb config__ +
- +
-  * [[http://manpages.ubuntu.com/​manpages/​natty/​man1/​lb_config.1.html| La page de man lb config avec toutes les options.]] ​+
  
 +  * [[https://​live-team.pages.debian.net/​live-manual/​html/​live-manual/​index.fr.html|le manuel officiel de la team debian-live]]
 +  * [[doc:​install:​deblive-usb-persistant|un exemple pour construire un live USB persistant]]
doc/install/live-build.txt · Dernière modification: 21/05/2023 16:42 par arpinux

Pied de page des forums

Propulsé par FluxBB