Création d'images bootstrap v1.0


Création d'images bootstrap v1.0

Je voudrais présenter à votre attention un framework appelé boobstrap, écrit dans le shell POSIX, pour créer des images de démarrage avec les distributions GNU/Linux. Le framework vous permet de suivre l'ensemble du processus en seulement trois étapes simples : du déploiement du système dans un chroot, à la création d'une image initramfs qui inclut le système chrooté, et finalement une image ISO amorçable. boobstrap comprend respectivement trois utilitaires mkbootstrap, mkinitramfs et mkbootisofs.

mkbootstrap installe le système dans un répertoire séparé, il existe un support natif pour CRUX et dans le cas des distributions basées sur Arch Linux / Manjaro et Debian, les utilitaires tiers pacstrap, basestrap et debootstrap doivent être utilisés respectivement.

mkinitramfs crée une image initramfs, vous pouvez utiliser le système installé dans le répertoire comme "superposition", compressé à l'aide de SquashFS, ou après avoir démarré le système, travailler directement dans tmpfs. Ainsi par exemple, la commande mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd créera un fichier initrd, comprenant deux superpositions avec "arch- chroot/" et votre "/home", compressés à l'aide de SquashFS, que vous pouvez ensuite démarrer via PXE dans tmpfs, ou créer une image ISO bootable avec cet initrd.

mkbootisofs crée une image ISO amorçable BIOS/UEFI à partir du répertoire spécifié. Mettez simplement /boot/vmlinuz et /boot/initrd dans le répertoire.

boobstrap n'utilise pas busybox, et pour créer un environnement initramfs fonctionnel, un ensemble minimal de programmes est copié à l'aide de ldd, nécessaire pour démarrer et basculer vers le système. La liste des programmes à copier, comme tout le reste, peut être configurée via le fichier de configuration /etc/boobstrap/boobstrap.conf. En outre, vous pouvez installer n'importe quelle distribution minimaliste dans un chroot/ séparé, à partir duquel vous pouvez ensuite créer un environnement initramfs à part entière. En tant qu'environnement minimaliste, mais en même temps à part entière, il est proposé d'utiliser le modèle « crux_gnulinux-embedded », qui après xz occupe un compromis de 37 Mo. Busybox, outre sa taille, 3 à 5 Mo contre 30 à 50 Mo d'un environnement GNU/Linux à part entière, n'offre plus aucun avantage, donc utiliser Busybox dans un projet ne semble pas approprié.

Comment vérifier rapidement la fonctionnalité et commencer ? Installez et exécutez.

# clone git https://github.com/sp00f1ng/boobstrap.git
# cd seins
# make install# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Vous devez également installer des dépendances, à savoir : cpio, grub, grub-efi, dosfstools, xorriso. L'utilisation de squashfs-tools n'est pas nécessaire ; vous pouvez travailler dans tmpfs avec la quantité de RAM appropriée. S'il manque quelque chose dans le système, boobstrap le signalera au démarrage.

Pour simplifier la création de configurations, boobstrap propose d'utiliser des « modèles » et des « systèmes », dont l'essence est d'utiliser des « modèles » (bootstrap-templates/) pour installer rapidement des systèmes à partir d'un fichier, et directement des « systèmes » (bootstrap-templates/). Systems/) utilisé pour configurer les configurations finales.

Ainsi par exemple, exécuter le script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild installera la configuration minimale du système CRUX GNU/Linux et l'enregistrera dans le fichier crux_gnulinux-embedded.rootfs, puis vous exécuterez boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild qui chargera la configuration principale à partir du fichier mentionné, effectuera toute la configuration nécessaire et préparera un ISO bootable. Ceci est pratique lorsque, par exemple, de nombreux systèmes utilisent le même type de configuration : afin de ne pas décrire à chaque fois le même ensemble de packages, vous utilisez un modèle, sur la base duquel vous créez des images de démarrage des systèmes avec la configuration finale.

Où puis-je utiliser tout cela ?

Vous configurez le système dans un fichier une fois et en l'exécutant, vous le construisez et/ou le mettez à jour. Le système fonctionne en tmpfs, ce qui le rend essentiellement jetable. Si le système tombe en panne, vous pouvez revenir à son état d'origine en un seul clic sur le bouton Réinitialiser. Vous pouvez exécuter en toute sécurité rm -rf /.

Vous pouvez configurer les configurations de tous vos systèmes localement, créer des images, les tester sur une machine virtuelle ou un matériel séparé, puis les télécharger sur un serveur distant et exécuter seulement deux commandes kexec -l /vmlinuz —initrd=/initrd && kexec -e pour mettre à jour l'intégralité du système, en le redémarrant dans tmpfs.

De la même manière, vous pouvez transférer tous les systèmes, par exemple sur VDS, pour travailler dans tmpfs, crypter le disque /dev/vda et l'utiliser uniquement pour les données, sans avoir besoin de conserver le système d'exploitation dessus. Le seul « point de fuite d'informations » dans ce cas sera uniquement le « cold dump » de la mémoire de votre machine virtuelle, et en cas de compromission du système (par exemple, en devinant le mot de passe ssh ou une vulnérabilité dans Exim), vous pouvez télécharger un nouvel ISO via le « panneau de contrôle » de votre fournisseur, pour remettre le VDS en fonctionnement, sans oublier d'éditer la configuration du système pour fermer toutes les vulnérabilités. C'est plus rapide que la réinstallation, la configuration ultérieure et/ou la restauration à partir d'une sauvegarde, car en substance, l'ISO téléchargeable avec votre système constitue votre sauvegarde. "Sept problèmes - une réinitialisation."

En fin de compte, vous pouvez créer n'importe quelle distribution selon vos besoins, l'écrire sur une clé USB et travailler dessus, la mettre à jour si nécessaire et la réécrire sur la clé USB. Toutes les données sont stockées dans les nuages. Vous n'avez plus besoin de vous soucier de la sécurité du système et de faire une sauvegarde lorsque le système, je le répète, est devenu essentiellement « jetable ».

Vos souhaits, suggestions et commentaires sont les bienvenus.

Dans le référentiel au lien ci-dessous, vous trouverez un fichier README détaillé (en anglais) avec une description de chaque utilitaire et des exemples d'utilisation, il existe également une documentation détaillée en russe et un historique de développement disponible sur le lien : Complexe de script de démarrage Boobstrap.

Source: linux.org.ru

Ajouter un commentaire