Tech Blog.

Thoughts, stories, ideas.

Disque de sauvetage et système Multiboot

2. April 2017

Quiconque travaille beaucoup avec différents systèmes Linux et les installe encore manuellement sait que le problème est que le support d’installation correspondant manque toujours. De plus, il serait toujours utile d’avoir un système de sauvetage, beaucoup utilisent des systèmes en direct comme grml, Kali ou Damn Small Linux. Cependant, chacun de ces systèmes a ses limites, par exemple, la sortie sur la console série est parfois obligatoire, mais pas supportée par le système correspondant.

Cet article présente brièvement une image du système qui a été créé dans la frustration de trop de clés USB pour l’installation et les systèmes en direct. Les exigences étaient les suivantes :

  • Système “Live” pour le sauvetage
  • Support d’installation pour plusieurs distributions courantes
  • Téléchargez simplement les dernières images
  • Pas d’adaptation propre aux différents systèmes

Approche

Un Arch Linux est installé sur une clé USB, qui démarre en utilisant Grub. Grub offre en plus de l’Arch Linux la possibilité de démarrer ou d’installer d’autres systèmes.

Grub et l’Arch Linux “Live” sont affichés sur la console série et graphique. Dans la mesure du possible, cela s’applique également aux autres systèmes (ce qui n’est pas toujours possible, puisque par exemple, un Kali Linux ne démarre que graphiquement). L’Arch Linux “Live” n’est pas construit comme un vrai système en direct, mais il est toujours en lecture-écriture, car il permet d’installer des paquets et des mises à jour supplémentaires.

Une liste actuelle des systèmes qui peuvent être démarrés avec cette image est la suivante :

  • “Live” Arch Linux (Rescue System; Read-Write)
  • Arch Linux Installer
  • Debian Jessie Netinstall
  • Debian Jessie Preseed Install (avec fichier de preseed local et installation en réseau pour les paquets)
  • CentOS 7 Installer
  • Kali Linux
  • Tails

Problèmes

Les différents systèmes s’attendent à des paramètres de noyau différents, ce qui causait souvent des problèmes, parce que les systèmes n’ont pas démarré correctement ou pas du tout. Une grande aide a été le Arch Linux Wiki, qui a un article sur ce sujet.

Les différents systèmes “live” sont enregistrés dans le fichier /etc/grub.d/40_custom. Cela se fait manuellement, selon le système, le noyau et l’initramFS sont démarrés directement ou une boucle d’image ISO est montée en premier. Deux exemples qui illustrent exactement ces deux cas sont présentés ici :

  • CentOS 7 Installer Menuentry
menuentry 'CentOS 7 Installer' {
    set kernel='/centos-7-vmlinuz'
    set initrdfile='/centos-7-initrd.gz'
    set append='console=ttyS0,115200n8 devfs=nomount'
    set ip='ip=192.168.1.10::192.168.1.1:255.255.255.0:host.example.com:enp1s0:off nameserver=8.8.8.8'
    set repo='repo=http://pkg.adfinis.com/centos/7/os/x86_64'
    set vnc='vnc vncpassword=password'
    linux $kernel $append $ip $repo $vnc --
    initrd $initrdfile
}
  • Kali Linux Installer Menuentry
menuentry 'Kali Linux 2016.2 amd64' {
    set isofile='/kali-linux-2016.2-amd64.iso'
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali
    initrd (loop)/live/initrd.img
}

Les options de configuration correspondantes sont décrites dans la Documentation Grub. Les paramètres qui peuvent être donnés à un noyau dépendent de la version du noyau et de la distribution. Une liste des paramètres génériques possibles est disponible sur kernel.org.

Image

L’image est mise à la disposition du public. Aucune responsabilité n’est assumée en cas d’actuallité ou de problèmes éventuels :
https://files.adfinis.com/rescue-multiboot/rescue-multiboot-latest.img.gz

Après le téléchargement, l’image peut être transférée sur une clé USB. La clé USB doit avoir au moins 8 Go d’espace de stockage. Toutes les données de la clé USB seront effacées. Une fois l’image transférée sur la clé USB, la partition est agrandie au maximum. La chaîne /dev/sd<X>X> doit être remplacée par le disque de la clé USB.

$ DISK="/dev/sd<X>"
$ gzip -cd rescue-multiboot-latest.img.gz | dd of="$DISK" bs=8M
$ printf "d\nn\np\n1\n2048\n\nw\n" | fdisk "$DISK"
$ e2fsck -f "${DISK}1"
$ resize2fs "${DISK}1"

Updates

La clé USB doit être mise à jour de temps en temps. La préparation doit être lancée pour cela l’Arch Linux “Live”.

Après le démarrage, une connexion réseau est établie. Les interfaces existantes peuvent être affichées avec ip addr show. L’interface doit être démarrée en partie avec lien IP set $INTERFACE up. La façon la plus simple d’obtenir une adresse IP est via Ethernet via DHCP, mais lancez simplement dhcpcd $INTERFACE. Le système devrait alors avoir une adresse IP et peut être mis à jour avec “pacman -Syu”.

Des connexions réseau plus complexes peuvent être établies en utilisant netctl. Les exemples de configuration se trouvent dans le répertoire /etc/netctl/examples et doivent être copiés dans /etc/netctl et modifiés ensuite. Vous pouvez le démarrer avec netctl start $CONFIGNAME. Les différentes images pour l’installation ou le démarrage en direct se trouvent dans le répertoire racine. Ils peuvent être facilement mis à jour en téléchargeant les dernières versions des ISO, des noyaux et des images initrd. Il n’y a aucun ajustement aux images ou aux images initrd.