« 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
(42 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 16 : Ligne 15 :
=Préparation de l’environnement=
=Préparation de l’environnement=


==Pour debian wheezy :==
==Pour debian jessie :==
<pre>
<pre>
lb config --distribution wheezy --binary-images iso-hybrid --architectures amd64 --linux-flavours amd64 \
lb config --distribution jessie --binary-images iso-hybrid --architectures amd64 --linux-flavours amd64 \
--archive-areas "main contrib non-free" --apt-indices false \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --updates true --backports true \
--memtest memtest86+ --security true --updates true --backports true \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://ftp.fr.debian.org/debian/ \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://deb.debian.org/debian/ \
--bootappend-live "boot=live config 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"
username=user noprompt noeject autologin"
</pre>
</pre>


Attention, si vous utilisez live-build 4.X pour générer l'image, il faut remplacer l'option <code>config</code> par <code>components</code>
==Pour debian stretch :==
<pre>
lb config --distribution stretch --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 \
username=user noprompt noeject autologin"
</pre>


==Pour debian jessie :==
==Pour debian buster :==
<pre>
<pre>
lb config --distribution jessie --binary-images iso-hybrid --architectures amd64 --linux-flavours amd64 \
lb config --distribution buster --binary-images iso-hybrid --architectures amd64 --linux-flavours amd64 \
--archive-areas "main contrib non-free" --apt-indices false \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --updates true --backports true \
--memtest memtest86+ --security true --updates true --backports true \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://ftp.fr.debian.org/debian/ \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://deb.debian.org/debian/ \
--bootappend-live "boot=live components 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"
</pre>
</pre>
Ligne 40 : Ligne 47 :
=Tunning=
=Tunning=


Pour debian jessie avec systemd, afin d'activer l'autologin, il faut créer un script personnalisé dans <code>config/hooks/autologin.chroot</code> :
==Autologin 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/live/autologin.hook.chroot</code> :
<pre>
<pre>
cat > config/hooks/autologin.chroot << EOF
cat > config/hooks/live/autologin.hook.chroot << EOF
#!/bin/sh
#!/bin/sh
set -e
set -e
Ligne 52 : Ligne 61 :
</pre>
</pre>


Un peu de tunning : <code>config/hooks/motd.chroot</code> :
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.
 
==hotfix debian stretch/buster 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>
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 :
<pre>
mkdir -p config/includes.chroot/lib/live/config/
chmod 755 config/includes.chroot/lib/ config/includes.chroot/lib/live/ config/includes.chroot/lib/live/config/
cat > config/includes.chroot/lib/live/config/9999-fix-keymap << EOF
#!/bin/sh
#/etc/init.d/console-setup restart
/bin/setupcon
EOF
chmod 755 config/includes.chroot/lib/live/config/9999-fix-keymap
</pre>
 
==MOTD au shell==
Un peu de tunning : <code>config/hooks/live/motd.hook.chroot</code> :
<pre>
<pre>
cat > config/hooks/motd.chroot << EOF
cat > config/hooks/live/motd.hook.chroot << EOF
#!/bin/sh
#!/bin/sh
set -e
set -e
Ligne 64 : Ligne 93 :
</pre>
</pre>


Pour avoir la console en keymap française, ajoutez les paquets <code>console-setup console-setup-linux</code> dans la liste des paquets a installer
==keymap du clavier et configuration de l'utilisateur==
<pre>echo console-setup console-setup-linux >> config/package-lists/keymap.list.chroot</pre>
Pour avoir la console en keymap française et assurer la création de l'utilisateur live, ajoutez les paquets <code>console-data console-setup console-setup-linux user-setup</code> dans la liste des paquets a installer
<pre>echo console-data console-setup console-setup-linux user-setup >> config/package-lists/keymap.list.chroot</pre>


==Liste personnalisée de packages==
==Liste personnalisée de packages==
Pour installer une liste personnalisée de package, après avoir lancé <code>lb config</code>, créez un fichier <code>mespackets.list.chroot</code> dans <code> config/package-lists</code> :
Pour installer une liste personnalisée de package, créez un fichier <code>mespackets.list.chroot</code> dans <code>config/package-lists</code> :
<pre>echo whois dnsutils htop jnettop tcpdump mtr telnet git iperf iperf3 wget curl rsync screen patch aptitude lm-sensors lshw \
<pre>echo whois dnsutils htop jnettop tcpdump mtr telnet git iperf iperf3 wget curl rsync screen patch aptitude lm-sensors lshw \
parted nmap binutils lsof dosfstools ntfs-3g debootstrap pciutils usbutils lsb-release debian-goodies fancontrol \
parted nmap binutils lsof dosfstools ntfs-3g debootstrap pciutils usbutils lsb-release debian-goodies fancontrol \
zerofree ethtool testdisk gddrescue smartmontools hdparm lvm2 psmisc freeipmi ipmitool openipmi > 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==
==installer un package depuis les dépots backports==
Ligne 78 : Ligne 108 :
cat >> config/archives/backports.pref.chroot << EOF
cat >> config/archives/backports.pref.chroot << EOF
Package: smartmontools
Package: smartmontools
Pin: release a=jessie-backports
Pin-Priority: 600
Package: e2fsprogs
Pin: release a=jessie-backports
Pin: release a=jessie-backports
Pin-Priority: 600
Pin-Priority: 600
Ligne 83 : Ligne 117 :
</pre>
</pre>


==Ajouter un dépot personnalisé==
==Ajouter un dépôt personnalisé==
Pour qu'il soit accessible (installable) à la création de l'image :
<pre>
echo "deb http://mirror/debian/ sid main" > config/archives/sid.list.chroot
</pre>


Pour qu'il soit accessible (installable) sur le système créé :
<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>
Si ce dépot requiert une clé gpg, déposez sa version texte (armored) dans <code>config/archives/sysbench.key.chroot</code> et/ou <code>config/archives/sysbench.key.binary</code>


==boot automatique==
==boot automatique==
Pour ajouter un boot automatique (par défaut lb config utilise isolinux comme bootloader) :
Pour ajouter un boot automatique au bout de 30secondes (par défaut lb config utilise isolinux comme bootloader) :
<pre>
<pre>
mkdir config/bootloaders/
mkdir config/bootloaders/
cp -R /usr/share/live/build/bootloaders/isolinux/ config/bootloaders/isolinux/
cp -R /usr/share/live/build/bootloaders/isolinux/ config/bootloaders/isolinux/
sed -i "s/timeout 0/timeout 300/g" config/bootloaders/isolinux/isolinux.cfg
</pre>
</pre>


Puis éditez config/bootloaders/isolinux/isolinux.cfg (un timer 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.


==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.chroot << EOF
cat > config/hooks/live/addsshkey.hook.chroot << EOF
#!/bin/sh
#!/bin/sh
set -e
set -e
Ligne 110 : Ligne 152 :
</pre>
</pre>


Ce qui n'a d'intérêt que si on installe aussi openssh :
Notez qu'on modifie en même temps la configuration du serveur openssh afin d'autoriser la connexion root avec des clés.<br>
Tout celà n'a d'intérêt que si on installe aussi openssh :
<pre>echo openssh-server >> config/package-lists/ssh.list.chroot</pre>
<pre>echo openssh-server >> config/package-lists/ssh.list.chroot</pre>


Ligne 118 : Ligne 161 :


==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.
<pre>
<pre>
mkdir config/includes.chroot/root/
mkdir config/includes.chroot/root/
chmod 750 config/includes.chroot/root/
cat > config/includes.chroot/root/README << EOF
cat > config/includes.chroot/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
Ligne 126 : Ligne 173 :


==Un petit README a la root de l'iso ?==
==Un petit README a la root de l'iso ?==
Le dossier <code>config/includes.binary/README</code> permet de créer des fichiers ou dossier à la racine de l'iso (ils seront donc accessible même si vous branchez votre future clé usb / cdrom sous windows par exemple)
<pre>
<pre>
cat > config/includes.binary/README << EOF
cat > config/includes.binary/README << EOF
Ligne 131 : Ligne 181 :
EOF
EOF
</pre>
</pre>
==Executer des hooks personnalisée lors du boot==
Il faut les créer dans <code>config/includes.chroot/lib/live/config/</code>
=Création de l'image=


Enfin, pour lancer la création de l'image :
Enfin, pour lancer la création de l'image :
Ligne 137 : Ligne 193 :
</pre>
</pre>


==ajouter memtest : méthode manuelle==
=ajouter memtest : méthode manuelle=
Notez que si vous avez suivi ce wiki, vous devriez déjà avoir memtest installé (<code>--memtest memtest86+</code>), vous n'avez donc rien à faire. Memtest se situ dans le menu advanced au boot.
Notez que si vous avez suivi ce wiki, vous devriez déjà avoir memtest installé (<code>--memtest memtest86+</code>), vous n'avez donc rien à faire. Memtest se situ dans le menu advanced au boot.


Ligne 147 : Ligne 203 :
lb binary_iso --force
lb binary_iso --force
</pre>
</pre>
==Executer des hooks personnalisée lors du boot==
Il faut les créer dans <code>config/includes.chroot/lib/live/config/</code>


=image usb uniquement=
=image usb uniquement=
Ligne 163 : Ligne 215 :
--archive-areas "main contrib non-free" --apt-indices false \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --updates true --backports true \
--memtest memtest86+ --updates true --backports true \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://ftp.fr.debian.org/debian/ \
--mirror-bootstrap http://deb.debian.org/debian/ --mirror-binary http://deb.debian.org/debian/ \
--bootappend-live "persistence boot=live components locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
--bootappend-live "boot=live persistence components locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
username=user noprompt noeject autologin"
username=user noprompt noeject autologin"
</pre>
</pre>
4 203

modifications

Menu de navigation