Nous allons ici personnaliser un live Debian avec la possibilité de s'y connecter via SSH sans que le système soit installé. Il est bien sûr possible d'y apporter d'autres modifications. La plus part des distributions comme Lubuntu, Mate, Ubuntu proposent une distribution Live. C'est ce que nous allons voir ici dans ce tutoriel.
Au cas où si je n'ai pas été assez explicite dans ma démarche ou que vous souhaitez en savoir plus, voici l'article qui m'a inspiré. Si besoin, il reste toujours, le manuel du système live.
Tout d'abord, nous récupérons les outils dont nous avons besoins :
apt install live-build live-manual live-tools
Nous créons ensuite notre environnement de travail :
mkdir /mnt/custom-live-cd && cd /mnt/custom-live-cd
Nous lançons la commande suivante pour importer les configurations concernant les méthodes de constructions :
lb config
Nous définissons les options définissant le live CD :
nano auto/config
#!/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" \ --bootappend-live "locale=en_US.UTF-8 keyb=fr" \ --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 "true" \ --iso-application "handylinux" \ --iso-volume "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/" \ --parent-mirror-chroot-backports "http://mirror.evolix.org/debian/" \ --parent-mirror-binary-backports "http://mirror.evolix.org/debian/" \ --memtest "none" \ --clean \ --debug \ --verbose \ --source "false" \ "${@}"
Nous pouvons sélectionner les paquets a installer :
nano config/package-lists/live.list.chroot
live-boot live-config live-config-systemd debootstrap vim tmux mutt postfix mailutils
Il est possible d'utiliser ses propres scripts qui seront lancé suite à l'installation des paquets cité plus haut :
nano config/hooks/copy-keys-ssh.hook.chroot
#!/bin/sh set -e mkdir -p /root/.ssh chown root.root /root/.ssh echo "ssh-rsa AAAAB3Nz[...]RdjcgFQH$ utilisateur@domaine.com" > /root/.ssh/authorized_keys
Il est également possible d'y inclure directement des fichiers et dossiers dans le futur système. Reprenons l'exemple utilisé pour importer une clé publique SSH.
Il suffira alors de procéder à ces étapes :
mkdir config/includes.chroot/root/.sshlive-image-amd64.hybrid.iso echo "ssh-rsa AAAAB3NzaC1yc2EAAAAD[...]ZDEF utilisateur@domaine.com" > config/includes.chroot/root/.ssh/authorized_keys
Toutes les modifications seront à faire dans le dossier config/includes.chroot/ qui reprend l'arborescence d'un système. Ainsi chaque fichiers et dossiers crées seront importé dans un vrai chroot lors de la construction du live CD.
Par défaut, l'interface n'est pas très jolie et heureusement qu'il est possible de la modifier dans le dossier suivant :
mkdir config/includes.binary/isolinux/
Au minimum, il serait bien de modifier le menu :
nano config/includes.binary/isolinux/live.cfg
default live label live menu label ^Debian Live CD (Jessie x86) linux /live/vmlinuz initrd /live/initrd.img append boot=live config quiet splash
Ensuite, on peut modifier l'image d'arrière plan situé nommé splash.png.
Le temps de chargement peut être réduit si l'on veut le faire booter plus rapidement :
nano config/includes.binary/isolinux/isolinux.cfg
include menu.cfg default vesamenu.c32 prompt 0 timeout 10
La dernière étape est la plus simple car la construction de l'ISO demande une seule commande :
lb build
Ainsi l'image se nommera par exemple : 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