Bootstrap v1.0-images maken


Bootstrap v1.0-images maken

Ik zou graag een raamwerk onder uw aandacht willen brengen met de naam Boostrap, geschreven in de POSIX-shell, voor het maken van opstartimages met GNU/Linux-distributies. Met het raamwerk kun je het hele proces in slechts drie eenvoudige stappen doorlopen: van het implementeren van het systeem in een chroot, het maken van een initramfs-image dat het chrooted systeem bevat, en uiteindelijk een opstartbare ISO-image. Boobstrap bevat respectievelijk drie hulpprogramma's mkbootstrap, mkinitramfs en mkbootisofs.

mkbootstrap installeert het systeem in een aparte map, er is native ondersteuning voor CRUX, en in het geval van Arch Linux / Manjaro en op Debian gebaseerde distributies moeten respectievelijk de hulpprogramma's pacstrap, basestrap en debootstrap van derden worden gebruikt.

mkinitramfs maakt een initramfs-image aan, u kunt het geïnstalleerde systeem in de map gebruiken als een “overlay”, gecomprimeerd met SquashFS, of na het opstarten van het systeem direct in tmpfs werken. Dus bijvoorbeeld het commando mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd zal een initrd-bestand aanmaken, inclusief twee overlays met "arch- chroot/" systeem en uw "/home", gecomprimeerd met SquashFS, dat u vervolgens via PXE kunt opstarten in tmpfs, of een opstartbare ISO-image kunt maken met deze initrd.

mkbootisofs maakt een BIOS/UEFI opstartbare ISO-image vanuit de opgegeven map. Plaats gewoon /boot/vmlinuz en /boot/initrd in de directory.

Boobstrap maakt geen gebruik van busybox, en om een ​​werkende initramfs-omgeving te creëren, wordt een minimale set programma's gekopieerd met behulp van ldd, nodig om op te starten en naar het systeem over te schakelen. De lijst met te kopiëren programma's kan, net als al het andere, worden geconfigureerd via het configuratiebestand /etc/boobstrap/boobstrap.conf. Ook kunt u elke minimalistische distributie in een aparte chroot/ installeren, van waaruit u vervolgens een volwaardige initramfs-omgeving kunt creëren. Als zo'n minimalistische, maar tegelijkertijd volwaardige omgeving wordt voorgesteld om de sjabloon "crux_gnulinux-embedded" te gebruiken, die na xz een compromis van 37 MB in beslag neemt. busybox biedt, afgezien van zijn grootte, 3-5 MB versus 30-50 MB van een volwaardige GNU/Linux-omgeving, geen voordelen meer, dus het gebruik van busybox in een project lijkt niet gepast.

Hoe snel de functionaliteit controleren en aan de slag gaan? Installeren en uitvoeren.

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

Je moet ook afhankelijkheden installeren, namelijk: cpio, grub, grub-efi, dosfstools, xorriso. Het gebruik van squashfs-tools is niet nodig; je kunt in tmpfs werken met de juiste hoeveelheid RAM. Als er iets ontbreekt in het systeem, meldt Boobstrap dit bij het opstarten.

Om het maken van configuraties te vereenvoudigen, stelt Boostrap voor om “templates” en “systems” te gebruiken, waarvan de essentie is om “templates” (bootstrap-templates/) te gebruiken om snel systemen vanuit een bestand te installeren, en direct “systems” (bootstrap-templates/). systems/) gebruikt om de definitieve configuraties in te stellen.

Als u bijvoorbeeld het script 'boostrap/bootstrap-templates/crux_gnulinux-embedded.bbuild' uitvoert, wordt de minimale configuratie van het CRUX GNU/Linux-systeem geïnstalleerd en opgeslagen in het bestand crux_gnulinux-embedded.rootfs, waarna u 'boobstrap/bootstrap-systems' uitvoert. /default/crux_gnulinux.bbuild die de primaire configuratie uit het genoemde bestand zal laden, alle noodzakelijke configuraties zal uitvoeren en een opstartbare ISO zal voorbereiden. Dit is handig wanneer bijvoorbeeld veel systemen hetzelfde type configuratie gebruiken: om niet elke keer dezelfde set pakketten te beschrijven, gebruikt u één sjabloon, op basis waarvan u opstartimages van systemen maakt met de uiteindelijke configuratie.

Waar kan ik dit allemaal gebruiken?

U configureert het systeem eenmalig in een bestand en door het uit te voeren bouwt en/of updatet u het. Het systeem draait in tmpfs, waardoor het in wezen wegwerpbaar is. Mocht het systeem uitvallen, dan kunt u met één klik op de Reset-knop terugkeren naar de oorspronkelijke staat. U kunt veilig rm -rf / uitvoeren.

U kunt de configuraties van al uw systemen lokaal configureren, images maken, ze testen in een virtuele machine of aparte hardware, ze vervolgens uploaden naar een externe server en slechts twee opdrachten uitvoeren kexec -l /vmlinuz —initrd=/initrd && kexec -e om het hele systeem bij te werken, door het opnieuw op te starten in tmpfs.

Op dezelfde manier kunt u alle systemen, bijvoorbeeld op VDS, overzetten om in tmpfs te werken, en de /dev/vda-schijf coderen en deze alleen voor gegevens gebruiken, zonder dat u het besturingssysteem erop hoeft te laten staan. Het enige “punt van informatielekken” zal in dit geval slechts de “cold dump” van het geheugen van uw virtuele machine zijn, en in het geval van een compromittering van het systeem (bijvoorbeeld door het ssh-wachtwoord te raden of een kwetsbaarheid in Exim), kunt u via het “controlepaneel” van uw provider een nieuwe ISO downloaden om de VDS weer in werking te stellen, zonder te vergeten de systeemconfiguratie aan te passen om alle kwetsbaarheden te dichten. Dit is sneller dan opnieuw installeren, vervolgens configureren en/of herstellen vanaf een back-up, omdat in wezen de downloadbare ISO bij uw systeem uw back-up is. "Zeven problemen - één reset."

Uiteindelijk kunt u elke gewenste distributie maken, deze naar een USB-station schrijven en erin werken, indien nodig bijwerken en opnieuw naar het USB-station schrijven. Alle gegevens worden opgeslagen in de clouds. U hoeft zich niet langer zorgen te maken over de veiligheid van het systeem en een back-up te maken wanneer het systeem, ik herhaal, in wezen “wegwerpbaar” is geworden.

Uw wensen, suggesties en opmerkingen zijn welkom.

In de repository op de onderstaande link vindt u een gedetailleerd README-bestand (in het Engels) met een beschrijving van elk hulpprogramma en gebruiksvoorbeelden. Er is ook gedetailleerde documentatie in het Russisch en een ontwikkelingsgeschiedenis beschikbaar via de link: Boobstrap-opstartscriptcomplex.

Bron: linux.org.ru

Voeg een reactie