Creatie van opstartbare beelden met boobstrap v1.0


Creatie van opstartbare beelden met boobstrap v1.0

Ik wil u een framework presenteren genaamd boobstrap, geschreven in POSIX shell, voor het maken van opstartbare afbeeldingen met GNU/Linux-distributies. Het framework maakt het mogelijk om het hele proces in drie eenvoudige stappen te doorlopen: van het implementeren van het systeem in chroot, het creƫren van een initramfs-afbeelding die het systeem uit chroot omvat, en uiteindelijk de opstartbare ISO-afbeelding. Boobstrap omvat drie hulpprogramma's: mkbootstrap, mkinitramfs en mkbootisofs.

mkbootstrap installeert het systeem in een aparte directory, er is native ondersteuning voor CRUX, en in het geval van Arch Linux / Manjaro en Debian-gebaseerde distributies moeten externe hulpprogramma's zoals pacstrap, basestrap en debootstrap worden gebruikt.

mkinitramfs creĆ«ert een initramfs-afbeelding, u kunt het geĆÆnstalleerde systeem in de directory gebruiken als een "overlay", gecomprimeerd met SquashFS, of door in het systeem op te starten rechtstreeks in tmpfs. Bijvoorbeeld, de mkinitramfs-opdracht `mktemp -d` —overlay "arch-chroot/" —overlay "/home" —squashfs-xz —output initrd zal een initrd-bestand creĆ«ren dat twee overlays met het "arch-chroot/"-systeem en uw "/home" omvat, gecomprimeerd met SquashFS, dat u vervolgens via PXE in tmpfs kunt opstarten, of een opstartbare ISO-afbeelding met deze initrd kunt maken.

mkbootisofs creƫert een opstartbare ISO-afbeelding voor BIOS / UEFI uit de opgegeven directory. U hoeft alleen maar /boot/vmlinuz en /boot/initrd in de directory te plaatsen.

Boobstrap gebruikt geen busybox, en voor het creƫren van een werkomgeving initramfs wordt een minimale set programma's gekopieerd met behulp van ldd, die nodig zijn voor het opstarten en overschakelen naar het systeem. De lijst van te kopiƫren programma's, evenals alles andere, kan worden ingesteld via het configuratiebestand /etc/boobstrap/boobstrap.conf. U kunt ook elke minimalistische distributie in een aparte chroot/ installeren, waarvan u vervolgens een volwaardig initramfs-omgeving kunt creƫren. Als zo'n minimalistische, maar toch volwaardige omgeving wordt voorgesteld, kan de sjabloon "crux_gnulinux-embedded" worden gebruikt, die na xz een compromis van 37 MB vereist. Busybox biedt, behalve zijn grootte, die 3-5 MB is tegen 30-50 MB voor een volwaardige GNU/Linux-omgeving, verder geen voordelen, waardoor het gebruik van busybox in het project niet zinvol lijkt.

Hoe kunt u snel de functionaliteit controleren en aan de slag gaan? Installeer en start het.

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

U moet ook afhankelijkheden installeren, namelijk: cpio, grub, grub-efi, dosfstools, xorriso. Het gebruik van squashfs-tools is niet verplicht; u kunt werken in tmpfs mits u voldoende RAM heeft. Als er iets ontbreekt in het systeem, zal boobstrap dit melden bij het opstarten.

Voor het vereenvoudigen van configuratiecreatie biedt boobstrap de mogelijkheid om "sjablonen" en "systemen" te gebruiken. Dit houdt in dat u "sjablonen" (bootstrap-templates/) kunt gebruiken voor een snelle installatie van systemen vanuit een bestand, en "systemen" (bootstrap-systems/) kunt gebruiken voor het instellen van de uiteindelijke configuraties.

Bijvoorbeeld, het starten van het script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild installeert een minimale configuratie van het CRUX GNU/Linux systeem en slaat deze op in het bestand crux_gnulinux-embedded.rootfs. Vervolgens voert u boobstrap/bootstrap-systems/default/crux_gnulinux.bbuild uit, dat de primaire configuratie uit het genoemde bestand laadt, alle noodzakelijke instellingen uitvoert en een opstartbare ISO voorbereidt. Dit is handig wanneer meerdere systemen een vergelijkbare configuratie gebruiken: in plaats van elke keer een set pakketten te beschrijven, gebruikt u ƩƩn sjabloon waarmee u opstartbare afbeeldingen van systemen met een uiteindelijke configuratie creƫert.

Waar gebruik je dit voor?

U stelt het systeem ƩƩn keer in in een bestand en voert het uit om het te bouwen en/of te updaten. Het systeem draait in tmpfs, wat het in wezen wegwerpbaar maakt. Als het systeem crasht, kunt u met ƩƩn druk op de knop Reset terugkeren naar de oorspronkelijke staat. U kunt rustig rm -rf / uitvoeren.

U kunt de configuraties van al uw systemen lokaal instellen, afbeeldingen maken, deze testen in een virtuele machine of op afzonderlijke hardware. Vervolgens kunt u ze naar een externe server uploaden en met slechts twee commando's kexec -l /vmlinuz —initrd=/initrd && kexec -e de gehele systeem updaten en herstarten in tmpfs.

Op een vergelijkbare manier kunt u alle systemen vertalen, bijvoorbeeld naar VDS, om in tmpfs te werken, en de schijf /dev/vda te versleutelen en alleen voor gegevens te gebruiken, zonder de noodzaak om het besturingssysteem erop te houden. Het enige ā€˜lekkagepunt’ in dit geval zal alleen de ā€˜koude dump’ van het geheugen van uw virtuele machine zijn, en in geval van systeemcompromittering (bijvoorbeeld door het raden van het ssh-wachtwoord of een kwetsbaarheid in exim), kunt u een nieuwe ISO uploaden via het ā€˜bedieningspaneel’ van uw provider, om de VDS weer operationeel te maken, niet vergeten om de systeemconfiguratie aan te passen en alle kwetsbaarheden te sluiten. Dit is sneller dan herinstallatie, daaropvolgende configuratie en/of herstel van een backup, want in feite is de ISO die u laadt met uw systeem uw backup. ā€˜Zeven plagen - ƩƩn reset.’

U kunt uiteindelijk elke distributie maken die aan uw behoeften voldoet, deze op een USB-station opnemen en er in werken, deze bijwerken wanneer nodig en opnieuw op het USB-station opnemen. Bewaar alle gegevens in ā€˜de cloud’. U hoeft zich geen zorgen meer te maken over de veiligheid van het systeem en het maken van een backup, wanneer het systeem, nogmaals, in wezen ā€˜wegwerp’ is geworden.

Uw wensen, suggesties en opmerkingen zijn welkom.

In de repository via de onderstaande link is er een gedetailleerd README-bestand (in het Engels) met een beschrijving van elk hulpmiddel en voorbeelden van gebruik, er is ook uitgebreide documentatie in het Russisch en een ontwikkelingsgeschiedenis beschikbaar via de link: Complex van opstart-scripts boobstrap.

Bron: linux.org.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster