Création d'images de démarrage boobstrap v1.2


Création d'images de démarrage boobstrap v1.2

Après un mois à peine un développement tranquille, le lancement de boobstrap v1.2 a eu lieu — un ensemble d'outils sur POSIX shell pour créer des images et des supports amorçables.

Boobstrap permet avec une seule commande :

  • De créer une image initramfs, incluant n'importe quelle distribution GNU/Linux.
  • De créer des images ISO amorçables avec n'importe quelle distribution GNU/Linux.
  • De créer des clés USB, des disques durs HDD, des SSD amorçables avec n'importe quelle distribution GNU/Linux.

La particularité est qu'après le démarrage, GNU/Linux fonctionnera soit entièrement en tmpfs, soit en utilisant Overlay FS et des images SquashFS, selon votre choix. Vous installez n'importe quelle distribution GNU/Linux dans un répertoire, effectuez toutes les configurations nécessaires (possibilité dans un répertoire séparé), puis avec une seule commande, vous créez un dispositif amorçable, qu'il s'agisse d'une image ISO, d'une clé USB, d'un disque dur HDD ou SSD, ou même de créer une image initrd avec le système. Le système sera toujours dans un état constant et en cas de panne, vous pouvez revenir à l'état initial en appuyant sur une seule touche Reset. Vous souhaitez transférer le système sur un autre hôte ou créer un système à partir d'un conteneur existant ? Boobstrap le fera.

Parmi les changements clés :

  • Ajout de la prise en charge du chargeur de démarrage syslinux, en plus de grub2 déjà existant. Vous pouvez maintenant choisir d'utiliser soit grub2, soit syslinux, ou les deux ensemble lors de la création d'un dispositif amorçable ou d'une image ISO, grâce aux options —legacy-boot syslinux et —efi grub2 respectivement, et il est également possible de choisir quels modes de démarrage seront pris en charge par l'image ISO.
  • Ajout de l'option —bootable, qui rend tout dispositif de bloc amorçable. Pour la création d'images ISO, l'option —iso-9660 doit être utilisée.
  • Ajout d'options de démarrage du noyau boobs.use-shmfs pour copier le contenu de tous les overlays dans tmpfs, boobs.use-overlayfs pour démarrer en utilisant Overlay FS, boobs.search-rootfs pour sélectionner la source avec le système, boobs.copy-to-ram pour copier le système en mémoire avec déconnexion ultérieure du dispositif.
  • La seule dépendance obligatoire pour faire fonctionner boobstrap est cpio. Les autres dépendances sont optionnelles : grub2 et syslinux sont nécessaires pour créer des supports de démarrage, cdrkit ou xorriso au choix pour créer des ISO, squashfs-tools pour créer SquashFS, cependant rien n'empêche d'utiliser l'option —cpio au lieu de —squashfs pour emballer votre distribution dans une archive. busybox ne sera utilisé que s'il est installé, sinon toutes les utilitaires nécessaires de votre système seront copiés. Ainsi, le fonctionnement de boobstrap est garanti pratiquement partout.

Par exemple, la commande suivante créera une image initrd en incluant dans celle-ci le système gentoo-chroot/ empaqueté sous forme d'image SquashFS, qui sera chargée avec succès après le chargement de l'initrd lui-même. Rappelons que pour utiliser Overlay FS avec SquashFS, il est nécessaire de transmettre l'option au noyau boobs.use-overlayfs, sinon le système sera décompressé dans tmpfs. Tous les réglages supplémentaires peuvent être effectués dans un répertoire séparé, par exemple gentoo-settings/

# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd

L'image initrd avec le système à l'intérieur est pratique lorsque vous devez déployer rapidement un système, par exemple via PXE, ou passer à initrd sur un système déjà démarré en utilisant la commande kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, ou encore depuis l'interface d'une machine virtuelle QEMU (peut-être même Proxmox), démarrer à partir d'une source distante en utilisant trois commandes IPXE : kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Comme vous pouvez le voir, même un simple initrd avec votre système à l'intérieur a de nombreuses options d'utilisation.

Pour créer des supports de démarrage et des images, la commande mkbootisofs est utilisée, par exemple, voici comment créer une image ISO avec l'option —iso-9660 en utilisant syslinux pour le démarrage en mode Legacy (BIOS) et grub2 pour le démarrage en mode EFI (UEFI).

# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir isoimage/
# mkdir isoimage/boot
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ —iso-9660 —legacy-boot syslinux —efi grub2 —output boot.iso
—overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs

Vous pouvez spécifier l'un des modes de démarrage, ou ne pas les indiquer tous, l'image ISO correspondante sera créée avec succès.

L'installation sur n'importe quel support avec un démarrage à partir de celui-ci est effectuée avec l'option —bootable. Vous devez créer vous-même les partitions sur le support (fdisk) et les formater (mkdosfs, mke2fs, etc.), puis monter le dispositif dans un répertoire.

# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ —bootable —legacy-boot grub2 —efi grub2
—overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs

Attention ! L'option —bootable détermine à partir de quel périphérique de bloc le répertoire est monté et configure le chargeur de démarrage sur ce périphérique. Si vous oubliez de monter le périphérique ou si vous indiquez par erreur un répertoire qui se trouve, par exemple, sur /dev/sda, le chargeur de démarrage sur /dev/sda sera alors écrasé. Utilisez —bootable avec prudence.

L'installation de n'importe quel système GNU/Linux ne nécessite qu'une seule commande. L'installation peut être effectuée sur n'importe quel HDD, SSD, et ainsi de suite. Il convient de rappeler que c'est toujours un système qui fonctionne à partir d'Overlay FS / SquashFS, ou qui se charge entièrement dans tmpfs, au choix.

En plus de tout cela, boobstrap possède de nombreuses caractéristiques intéressantes et fonctionnalités supplémentaires !

Par exemple, vous pouvez créer un initrd de marque boobstrap avec la commande mkinitramfs `mktemp -d` > /boot/initrd et démarrer votre système avec cet initrd, en indiquant les options du noyau boobs.use-overlayfs boobs.search-rootfs=/dev/sda1. Dans ce cas, /dev/sda1, où votre système domestique est installé, sera monté en tant que couche en lecture seule d'Overlay FS, et tous les changements que vous effectuerez seront uniquement enregistrés temporairement dans tmpfs. Vous pouvez ajouter l'option boobs.copy-to-ram et alors votre système entier sera copié dans la RAM, et le disque dur pourra être déconnecté de l'ordinateur. C'est pratique lorsque vous aurez besoin de casser quelque chose, et que vous pourrez simplement redémarrer pour annuler les modifications. 🙂

Mais que faire si vous devez tout de même conserver toutes les modifications dans le système ? Par exemple, vous avez installé un logiciel ou quelque chose d'autre. Lorsque vous travaillez dans un tmpfs pur, cela est malheureusement impossible, mais si vous avez démarré en utilisant Overlay FS, toutes les modifications apportées au système sont enregistrées dans un répertoire tmpfs distinct : /mnt/overlayfs/rootfs-changes ! Le scénario d'utilisation est très simple. Vous vous êtes connecté à votre système depuis un périphérique USB, avez travaillé, et souhaitez sauvegarder tout ce qui a été modifié. Créez alors une archive cpio et placez-la ici, sur ce même périphérique USB.

# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Vous pouvez placer l'archive à côté d'autres couches SquashFS et cpio, puis, lors du démarrage suivant, l'archive sera montée comme une autre couche en lecture seule. Pour continuer à travailler avec les modifications, utilisez l'option de démarrage boobs.rootfs-changes=\/rootfs-changes.cpio. L'option boobs.rootfs-changes monte la couche spécifiée avec un accès en écriture. La couche peut être un périphérique de bloc, par exemple, vous pouvez spécifier \/dev\/sdb1, ainsi toutes les modifications apportées dans Overlay FS seront simplement enregistrées sur \/dev\/sdb1.

Boobstrap, malgré ses larges fonctionnalités, est encore en développement. Tous vos commentaires et suggestions sont pris en compte !

Source : linux.org.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster