diff --git a/HowtoCustomLiveCD.md b/HowtoCustomLiveCD.md new file mode 100644 index 00000000..4f2dc967 --- /dev/null +++ b/HowtoCustomLiveCD.md @@ -0,0 +1,177 @@ +--- +title: Howto Custom Live CD +... + + +* Documentation : + +Ce Howto permet de créer un live CD personalisé de Debian. Cela peut être utile dans le cas où vous devez utiliser une version plus récente d’un paquet lors de l’installation (à cause de périphérique non détectés par exemple). +Voir même pour les plus aguerri de créer votre propre distribution. + +## Préparation + + +Nous aurons besoin des outils suivants pour la suite. + +~~~ +apt install live-build live-manual live-tools +~~~ + +On créé le répertoire dans lequel on va travailler. + +~~~ +mkdir ~/licecd && ~/licecd +~~~ + +## Personalisation du live CD + +La commande `lb config` permet de créer notamment le répertoire _config/_ qui contiendra toute la configuration du live CD : + +~~~ +lb config +~~~ + +Nous proposons par exemple quelques options dont la définition des dépôts, de la version du système que nous voulons utiliser et de l'architecture des processeurs supporté. Le tout renseigné dans le fichier _auto/config_. + +~~~{.bash} +#!/bin/sh + +set -e + +lb config noauto \ +--mode "debian" \ +--system "live" \ +--architectures "amd64" \ +--distribution "jessie" \ +--archive-areas "main contrib non-free" \ +--security "true" \ +--updates "true" \ +--backports "true" \ +--binary-images "iso-hybrid" \ +--apt-indices "true" \ +--apt-recommends "false" \ +--apt-secure "true" \ +--apt-source-archives "true" \ +--linux-package "linux-image" \ +--bootloader "syslinux" \ +--debian-installer "live" \ +--debian-installer-gui "false" \ +--iso-application "handylinux" \ +--bootappend-live "locale=en_US.UTF-8 keyb=fr" \ +--parent-mirror-bootstrap "http://mirror.evolix.org/debian/" \ +--parent-mirror-chroot "http://mirror.evolix.org/debian/" \ +--parent-mirror-binary "http://mirror.evolix.org/debian/" \ +--memtest "none" \ +--clean \ +--debug \ +--verbose \ +--source "false" \ +"${@}" +~~~ + +## Ajout de paquets personnalisés + +Si les paquets à intégrer au live CD ne sont pas présents dans le système de base, il suffit de les déposer dans le fichier _config/package-lists/live.list.chroot_. + +~~~ +live-boot +live-config +live-config-systemd +debootstrap +vim +tmux +mutt +postfix +mailutils +~~~ + +## Ajout de fichiers et dossiers personnalisés + +Le dossier _config/includes.chroot_ reprend l'architecture d'un système Linux sans pour la peine qu'il soit présent. C'est à dire que l'on à pas besoin d'utiliser deboostrap ou chroot. Tout celà sera fait automatiquement car les modifications apporté à ce dossier seront importé dans un dossier séparé lors de sa construction. + +Par exemple si l'on veut importer des clé publique, on devra exécuter ces deux commandes : + +~~~ +mkdir config/includes.chroot/root/.ssh +echo "ssh-rsa AAAAEAAAAD[...]ZDEF utilisateur@domaine.com" > config/includes.chroot/root/.ssh/authorized_keys +~~~ + +## Personnalisation approfondis + +Dans le cas d'un besoin spécifique, il est possible d'utiliser un script personnalisé. Par exemple, nous avons besoin de préconfigurer un agent mail pour une futur envoit de mail au démarrage du système. Voici à quoi cela peut ressembler : + + +~~~{.bash} +#!/bin/sh + +set -e + +sed -i 's/^relayhost.*/relayhost = pele.evolix.net/' /etc/postfix/main.cf +sed -i 's/^mydestination.*/mydestination = evolix.net, localhost, localhost.localdomain, localhost/' /etc/postfix/main.cf + +systemctl restart postfix +~~~ + + +## Modifier le menu du boot + + +Pour celà, il faut créer le dossier suivant si ce n'est pas déjà fait : + +~~~ +mkdir config/includes.binary/isolinux/ +cd config/includes.binary/isolinux/ +~~~ + +Au minimum, nous modifions le menu présent dans le fichier _config/includes.binary/isolinux/live.cfg_ pour faire booter directement notre Debian live. + +~~~ +default live + +label live + menu label ^Debian Live CD (Jessie x86) + linux /live/vmlinuz + initrd /live/initrd.img + append boot=live config quiet splash +~~~ + +Pour modifier l'image d'arrère plan, il suffit de remplacer le fichier splash.png. + +Pour réduire le temps de boot, on peut définir un faible timeout en modifiant le fichier _config/includes.binary/isolinux/isolinux.cfg_ + +~~~ +include menu.cfg +default vesamenu.c32 +prompt 0 +timeout 10 +~~~ + + +## Création du live CD + +Il suffit simplement d’exécuter `ln build` : + +~~~ +lb build +~~~ + +Une image ISO du live CD est créée et se nomme live-image-amd64.hybrid.iso. + + +Si l'on souhaite y apporter des modifications alors on devra exécuter ces deux commandes : + +~~~ +lb clean +lb build +~~~ + +## Gravure + +Une fois l’image prête, pour la graver : + +~~~ +wodim -dev /dev/cdrom binary.iso +~~~ + + +