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

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Ligne 114 : Ligne 114 :
=Créer un stockage persistant sur une clé usb=
=Créer un stockage persistant sur une clé usb=


Le début de la procédure est le même que pour le reste : créez votre image, puis écrivez la sur une clé usb de taille suffisante avec dd:
Le début de la procédure est le même que pour le reste : créez votre image, en ajoutant l'option persistence a la directive --bootappend-live :
 
<pre>lb config --distribution jessie --binary-images hdd --architectures amd64 --linux-flavours amd64 \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --updates true --backports true \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://ftp.fr.debian.org/debian/ \
--bootappend-live "persistence boot=live components locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
username=user noprompt noeject autologin"
</pre>
 
Continuez la création de l'image comme avant, puis écrivez la sur une clé usb de taille suffisante :
<pre>dd if=votre_image.iso of=/dev/your_usb_device</pre>
<pre>dd if=votre_image.iso of=/dev/your_usb_device</pre>



Version du 18 février 2016 à 19:11


Via le web

Génération : http://cgi.build.live-systems.org/cgi-bin/live-build (le mieux est d'utiliser standard en package list)

Vous pouvez ajouter des packages à installer à la ligne cgipackages.list.chroot

Password user : live

Password root : aucun (se su avec sudo -i)

Pour générer une image en français passez le paramètre suivant dans la section Advanced binary options: :

--bootappend-live: 	locales=fr_FR.UTF-8 keyboard-layouts=fr noprompt

install-keymap /usr/share/keymaps/i386/querty/fr-latin9*

ou

loadkeys usr/share/keymaps/i386/querty/fr-latin9*

Vous même

aptitude install live-build
mkdir live-default && cd live-default

Pour debian wheezy :

lb config --distribution wheezy --binary-images iso-hybrid --architectures amd64 --linux-flavours amd64 \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --updates true --backports true \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://ftp.fr.debian.org/debian/ \
--bootappend-live "boot=live config locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
username=user noprompt noeject"

Attention, si vous utilisez live-build 4.X pour générer l'image, il faut remplacer l'option config par components

Pour debian jessie :

lb config --distribution jessie --binary-images iso-hybrid --architectures amd64 --linux-flavours amd64 \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --updates true --backports true \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://ftp.fr.debian.org/debian/ \
--bootappend-live "boot=live components locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
username=user noprompt noeject autologin"

Pour debian jessie avec systemd, afin d'activer l'autologin, il faut créer un script personnalisé dans config/hooks/autologin.chroot :

cat > config/hooks/autologin.chroot << EOF
#!/bin/sh
set -e
mkdir /etc/systemd/system/getty@tty1.service.d
echo "[Service]" > /etc/systemd/system/getty@tty1.service.d/autologin.conf
echo "ExecStart=" >> /etc/systemd/system/getty@tty1.service.d/autologin.conf
echo "ExecStart=-/sbin/agetty --autologin "root" %I" >> /etc/systemd/system/getty@tty1.service.d/autologin.conf
EOF

Un peu de tunning : config/hooks/motd.chroot :

cat > config/hooks/motd.chroot << EOF
#!/bin/sh
set -e
echo "Default user: user" >> /etc/issue
echo "Default pass: live" >> /etc/issue
echo "You can get root by using sudo su" >> /etc/issue
echo "" >> /etc/issue
EOF

Pour avoir la console en keymap française, ajoutez les paquets console-setup console-setup-linux dans la liste des paquets a installer

echo console-setup console-setup-linux >> config/package-lists/keymap.list.chroot

Pour installer une liste personnalisée de package, après avoir lancé lb config, créez un fichier mespackets.list.chroot dans config/package-lists :

echo whois dnsutils htop jnettop tcpdump mtr telnet git iperf wget curl rsync screen patch \
parted nmap binutils lsof dosfstools ntfs-3g debootstrap pciutils usbutils lsb-release debian-goodies \
zerofree ethtool testdisk gddrescue smartmontools hdparm lvm2 psmisc freeipmi ipmitool openipmi > config/package-lists/mypackage.list.chroot

Pour permettre a votre iso de booter automatiquement :


Enfin, pour lancer la création de l'image :

lb build

ajouter memtest : méthode manuelle

Notez que si vous avez suivi ce wiki, vous devriez déjà avoir memtest installé (--memtest memtest86+), vous n'avez donc rien à faire. Memtest se situ dans le menu advanced au boot.

cd binary/live/
wget http://www.memtest.org/download/5.01/memtest86+-5.01.bin.gz
gunzip memtest86+-5.01.bin.gz
mv memtest86+-5.01.bin memtest
cd ../../
lb binary_iso --force

Boot automatique

Modifiez le fichie binary/isolinux/isolinux.cfg (la ligne timeout est en dixième de secondes) Puis régénérez l'iso

lb binary_iso --force

image usb uniquement

Par défaut, la configuration utilisée dans ce wiki créé une image hybrid, capable de booter sur un cd ou une clé usb. Si vous souhaitez ne permettre que le boot usb de vos images il faut modifier la directive binary-images :

--binary-images hdd

Créer un stockage persistant sur une clé usb

Le début de la procédure est le même que pour le reste : créez votre image, en ajoutant l'option persistence a la directive --bootappend-live :

lb config --distribution jessie --binary-images hdd --architectures amd64 --linux-flavours amd64 \
--archive-areas "main contrib non-free" --apt-indices false \
--memtest memtest86+ --updates true --backports true \
--mirror-bootstrap http://ftp.fr.debian.org/debian/ --mirror-binary http://ftp.fr.debian.org/debian/ \
--bootappend-live "persistence boot=live components locales=en_US.UTF-8 keyboard-layouts=fr hostname=rescue \
username=user noprompt noeject autologin"

Continuez la création de l'image comme avant, puis écrivez la sur une clé usb de taille suffisante :

dd if=votre_image.iso of=/dev/your_usb_device

Il faut ensuite créer une nouvelle partition avec parted, fdisk, cfdisk, comme vous voulez, sur la clé usb
Une fois la partition créée, il faut y écrire un système de fichier ext4 qui aura comme label "persistence" (obligatoire, sinon ça ne marchera pas). Si votre partition est sdb2, on arrive a ça :

mkfs.ext4 -L persistence /dev/sdb2
mount -t ext4 /dev/sdb2 /mnt
echo "/home" >> /mnt/persistence.conf
umount /mnt

Vous ainsi un dossier /home persistant qui survivra aux reboots sur la clé usb. Si vous souhaitez conserver plus de fichiers, comme par exemple des programmes installés par la suite, le fichier persistence.conf ressemblera à ça :

/usr union
/home
/var/cache/apt

Modifier une iso déjà préparée

aptitude install genisoimage squashfs-tools
mount /var/lib/vz/templates/iso/rescue_amd64.iso /mnt/01 -o loop
cp -a 01/* 02/
mount /mnt/01/live/filesystem.squashfs /mnt/03/ -o loop
cp -a 03/* 04/

04 : a modifier pour debian 02 : a modifier pour le cd

Pour modifier les fichiers debian, le mieux est de

chroot /mnt/04

Vous pouvez par exemple rajouter des paquets que vous auriez oublié (dnsutils, ntfsprogs, dosfstools ...), en reconfigurer certains (locales, console-data)

Une fois 04 modifié :

cd /mnt
rm 04/root/.*_history
mksquashfs 04/ blah.squashfs
mv blah.squashfs 02/live/filesystem.squashfs 
chmod 444 02/live/filesystem.squashfs 
sha256sum

Vous pouvez ensuite modifier 02 : par exemple, ajouter dans 02/isolinux/isolinux.cfg : timeout 1

genisoimage -J -r -v -o test.iso -V rescue \
-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table 02/