« Création d'une image debian bootable (système de rescue, live system) » : différence entre les versions

Aller à la navigation Aller à la recherche
Aucun résumé des modifications
(28 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
[[category:desktop]]
[[category:desktop]]
[[category:debian]]
[[category:debian]]
[[category:bureautique]]


Manuel complet : http://debian-live.alioth.debian.org/live-manual/stable/manual/html/live-manual.en.html
Manuel complet : https://live-team.pages.debian.net/live-manual/html/live-manual/index.en.html


=Paquets nécessaires=
=Paquets nécessaires=
Ligne 21 : Ligne 20 :
--archive-areas "main contrib non-free" --apt-indices false \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --security true --updates true --backports true \
--memtest memtest86+ --security true --updates true --backports true \
--mirror-bootstrap http://deb.debian.org/debian/ --mirror-binary http://deb.debian.org/debian/ \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://deb.debian.org/debian/ \
--bootappend-live "boot=live components timezone=Europe/Paris locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
--bootappend-live "boot=live components timezone=Europe/Paris locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
username=user noprompt noeject autologin"
username=user noprompt noeject autologin"
Ligne 31 : Ligne 30 :
--archive-areas "main contrib non-free" --apt-indices false \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --security true --updates true --backports true \
--memtest memtest86+ --security true --updates true --backports true \
--mirror-bootstrap http://deb.debian.org/debian/ --mirror-binary http://deb.debian.org/debian/ \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://deb.debian.org/debian/ \
--bootappend-live "boot=live components timezone=Europe/Paris locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
username=user noprompt noeject autologin"
</pre>
 
==Pour debian buster :==
<pre>
lb config --distribution buster --binary-images iso-hybrid --architectures amd64 --linux-flavours amd64 \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --security true --updates true --backports true \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://deb.debian.org/debian/ \
--bootappend-live "boot=live components timezone=Europe/Paris locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
--bootappend-live "boot=live components timezone=Europe/Paris locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
username=user noprompt noeject autologin"
username=user noprompt noeject autologin"
Ligne 38 : Ligne 47 :
=Tunning=
=Tunning=


==Autologin pour debian jessie uniquement==
==Notes générales==
 
==Bugfix==
 
===Autologin fix pour debian jessie uniquement===


Pour debian jessie avec systemd, afin d'activer l'autologin, il faut créer un script personnalisé dans <code>config/hooks/autologin.hook.chroot</code> :
Pour debian jessie avec systemd, afin d'activer l'autologin, il faut créer un script personnalisé dans <code>config/hooks/live/autologin.hook.chroot</code> :
<pre>
<pre>
cat > config/hooks/autologin.hook.chroot << EOF
cat > config/hooks/live/autologin.hook.chroot << EOF
#!/bin/sh
#!/bin/sh
set -e
set -e
Ligne 54 : Ligne 67 :
Ce fichier sera exécuté au moment de la création de notre image.
Ce fichier sera exécuté au moment de la création de notre image.


Cette manœuvre n'est pas nécessaire pour debian stretch.
===keymap fix debian stretch/buster===
 
==hotfix debian stretch afin d'avoir la bonne keymap==


A l'heure ou j'écris ces lignes, un [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=818065 bug] empêche debian stretch de démarrer avec la keymap que vous avez défini lors de l'étape précédente.<br>
Un [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=818065 bug] empêche debian stretch/buster de démarrer avec la keymap que vous avez défini lors de l'étape de configuration.<br>
Pour le régler temporairement, nous allons créer le fichier hook qui sera lancé par live-config lors du démarrage de l'iso et qui va charger la bonne keymap :
Pour le régler ce problème, nous allons créer un fichier exécutable qui sera lancé par live-config lors du démarrage de l'iso et qui va charger la bonne keymap :
<pre>
<pre>
mkdir -p config/includes.chroot/lib/live/config/
mkdir -p config/includes.chroot/lib/live/config/
Ligne 72 : Ligne 83 :


==MOTD au shell==
==MOTD au shell==
Un peu de tunning : <code>config/hooks/motd.hook.chroot</code> :
Un peu de tunning : <code>config/hooks/live/motd.hook.chroot</code> :
<pre>
<pre>
cat > config/hooks/motd.hook.chroot << EOF
cat > config/hooks/live/motd.hook.chroot << EOF
#!/bin/sh
#!/bin/sh
set -e
set -e
Ligne 83 : Ligne 94 :
EOF
EOF
</pre>
</pre>
Notez qu'on utilise un hook lancé durant la construction de notre image, technique qui a l'avantage de préserver le contenu d'origine du fichier <code>/etc/issue</code> installé par debian (généralement, la version de la distribution, qui change donc selon votre configuration à <code>lb config</code>).<br>
Une alternative, quoi que parfois moins fiable, et ne permettant pas de conserver le contenu du fichier d'origine, aurait été de créer un fichier <code>config/includes.chroot_after_packages/etc/issue</code> contenant directement le motd.


==keymap du clavier et configuration de l'utilisateur==
==keymap du clavier et configuration de l'utilisateur==
Ligne 94 : Ligne 108 :
zerofree ethtool net-tools testdisk gddrescue smartmontools hdparm lvm2 psmisc freeipmi ipmitool openipmi gdisk bzip2 zsync > config/package-lists/mypackage.list.chroot</pre>
zerofree ethtool net-tools testdisk gddrescue smartmontools hdparm lvm2 psmisc freeipmi ipmitool openipmi gdisk bzip2 zsync > config/package-lists/mypackage.list.chroot</pre>


==installer un package depuis les dépots backports==
Pour installer un package depuis les dépots backports (sous réserve que vous ayez activez ces dépots à l'opération <code>lb config</code> :
<pre>echo "smartmontools/bullseye-backports" > config/package-lists/mypackage-bpo.list.chroot</pre>
 
==Pinner un package depuis les dépots backports==


Pendant le chroot uniquement :
<pre>
<pre>
cat >> config/archives/backports.pref.chroot << EOF
cat >> config/archives/backports.pref.chroot << EOF
Package: smartmontools
Package: smartmontools
Pin: release a=jessie-backports
Pin: release a=bullseye-backports
Pin-Priority: 600
Pin-Priority: 600
EOF
</pre>


Package: e2fsprogs
Dans l'image définitive :
Pin: release a=jessie-backports
<pre>
cat >> config/archives/backports.pref.binary << EOF
Package: smartmontools
Pin: release a=bullseye-backports
Pin-Priority: 600
Pin-Priority: 600
EOF
EOF
</pre>
</pre>


==Ajouter un dépot personnalisé==
==Ajouter un dépôt personnalisé==
Pour que le dépôt soit accessible durant la création de l'image (permettant donc d'installer un paquet sur l'image) :
<pre>
echo "deb http://mirror/debian/ sid main" > config/archives/sid.list.chroot
</pre>


Pour que le dépôt soit accessible sur le système définitif créé (après avoir booté l'iso) :
<pre>
<pre>
echo "deb http://mirror/debian/ sid main" > config/archives/sid.list.chroot
echo "deb http://mirror/debian/ sid main" > config/archives/sid.list.binary
</pre>
</pre>


==boot automatique==
Si ce dépôt requiert une clé gpg, déposez sa version texte (armored) dans <code>config/archives/sid.key.chroot</code> et/ou <code>config/archives/sid.key.binary</code>
Pour ajouter un boot automatique au bout de 30secondes (par défaut lb config utilise isolinux comme bootloader) :
 
==Modification du boot==
 
Les différents bootloaders utilisés sont situés dans <code>/usr/share/live/build/bootloaders/</code><br>
Vous pouvez les copier intégralement ou partiellement dans <code>config/bootloaders/</code><br>
 
Par défaut, pour les images iso et iso-hybrid, c'est isolinux qui est utilisé, agrémenté en supplément des fichiers situés dans le dossier <code>syslinux_common</code>
 
===boot automatique isolinux===
Pour ajouter un boot automatique au bout de 30secondes :
<pre>
<pre>
mkdir config/bootloaders/
mkdir config/bootloaders/
Ligne 123 : Ligne 160 :


Un timeout de 0 signifie infini, les unités sont des dixièmes de secondes.
Un timeout de 0 signifie infini, les unités sont des dixièmes de secondes.
===Modifier les entrées du boot isolinux===
<pre>
mkdir config/bootloaders/
cp -R /usr/share/live/build/bootloaders/syslinux_common/ config/bootloaders/syslinux_common/
</pre>
Puis éditez le fichier <code>config/bootloaders/syslinux_common/live.cfg.in</code>


==openssh==
==openssh==
On peut ajouter des clés ssh de la même manière :
On peut ajouter des clés ssh de la même manière :
<pre>
<pre>
cat > config/hooks/addsshkey.hook.chroot << EOF
cat > config/hooks/live/addsshkey.hook.chroot << EOF
#!/bin/sh
#!/bin/sh
set -e
set -e
Ligne 142 : Ligne 187 :
Les clés serveurs openssh seront automatiquement supprimés après l'installation par le fichier <code>config/hooks/0160-remove-openssh-server-host-keys.hook.chroot</code>, puis régénéré lors du boot par live-config.
Les clés serveurs openssh seront automatiquement supprimés après l'installation par le fichier <code>config/hooks/0160-remove-openssh-server-host-keys.hook.chroot</code>, puis régénéré lors du boot par live-config.


Dans le cas ou vous installez un serveur ssh, il sera bon de changer le mot-de-passe utilisateur. Vous pouvez vous inspirer du fichier <code>/usr/share/doc/live-config/examples/hooks/passwd</code> pour créer une hook réalisant celà.
Dans le cas ou vous installez un serveur ssh, il peut être préférable de changer le mot-de-passe utilisateur. Vous pouvez vous inspirer du fichier <code>/usr/share/doc/live-config/examples/hooks/passwd</code> pour créer une hook réalisant cela.<br>
Notez tout de même que par défaut, au démarrage de l'iso, le login password ssh est désactivé (fichier <code>/lib/live/config/1160-openssh-server</code>)
 
<br>Note :
* Pour l'ajout de la clé ssh, nous aurions aussi pu créer un fichier <code>config/includes.chroot_after_packages/root/.ssh/authorized_keys</code>
* Néanmoins, pour exécuter la commande sed qui modifie la configuration openssh, nous sommes obligé de passer par une hook/live afin d'éditer la configuration après que le système du chroot ait été installé (et donc après que openssh soit installé et configuré).
* Alternativement, il serait également possible d'utiliser le dossier <code>config/includes.chroot_after_packages/</code> afin de remplacer totalement la configuration de openssh (ce qui implique également que vous assumiez totalement les mises à jour de la configuration de openssh de version en version de debian)


==Un petit README pour terminer ?==
==Un petit README pour terminer ?==


Le dossier <code>config/includes.chroot/</code> permet d'ajouter des dossiers et fichiers au système de fichier debian qui sera créé pour cette image.
Les dossiers <code>config/includes.chroot_after_packages/</code> et <code>config/includes.chroot_before_packages/</code> permettent d'ajouter des dossiers et fichiers qui sont incorporés au système de fichier créé. Ces fichiers sont transférés soit avant l'installation des paquets, soit après.


<pre>
<pre>
mkdir config/includes.chroot/root/
mkdir config/includes.chroot_after_packages/root/
chmod 750 config/includes.chroot/root/
chmod 750 config/includes.chroot_after_packages/root/
cat > config/includes.chroot/root/README << EOF
cat > config/includes.chroot_after_packages/root/README << EOF
Vous pouvez créer les fichiers que vous voulez de cette manière afin de les inclures dans le système de fichier de linux
Vous pouvez créer les fichiers que vous voulez de cette manière afin de les inclures dans le système de fichier de linux
EOF
EOF
</pre>
</pre>
Attention, ces fichiers écrasent les fichiers pré-existant installés automatiquement par debian !


==Un petit README a la root de l'iso ?==
==Un petit README a la root de l'iso ?==
Ligne 168 : Ligne 221 :
==Executer des hooks personnalisée lors du boot==
==Executer des hooks personnalisée lors du boot==


Il faut les créer dans <code>config/includes.chroot/lib/live/config/</code>
Il faut créer des fichiers exécutables dans <code>config/includes.chroot/lib/live/config/</code><br>
Ces fichiers seront exécutés lors du démarrage de l'iso, juste avant que vous obteniez un prompt.


=Création de l'image=
=Création de l'image=
4 242

modifications

Menu de navigation