Creazione di immagini di avvio bootstrap v1.0


Creazione di immagini di avvio bootstrap v1.0

Desidero presentarvi un framework chiamato boobstrap, scritto in POSIX shell, per la creazione di immagini di avvio con distribuzioni GNU/Linux. Il framework consente di seguire l'intero processo in tre semplici passaggi: dalla distribuzione del sistema in chroot, alla creazione di un'immagine initramfs che include il sistema da chroot, e infine all'immagine ISO di avvio. boobstrap include tre utility: mkbootstrap, mkinitramfs e mkbootisofs, rispettivamente.

mkbootstrap installa il sistema in una directory separata, con supporto nativo per CRUX, mentre per Arch Linux / Manjaro e distribuzioni basate su Debian devono essere utilizzate utility di terze parti come pacstrap, basestrap e debootstrap, rispettivamente.

mkinitramfs crea un'immagine initramfs; è possibile utilizzare il sistema installato nella directory come "overlay", compresso utilizzando SquashFS, oppure avviarlo direttamente in tmpfs. Ad esempio, il comando mkinitramfs `mktemp -d` —overlay "arch-chroot/" —overlay "/home" —squashfs-xz —output initrd creerà un file initrd, includendo due overlay con il sistema "arch-chroot/" e il tuo "/home", compressi con SquashFS, che puoi quindi avviare tramite PXE in tmpfs, oppure creare un'immagine ISO di avvio con questo initrd.

mkbootisofs crea un'immagine ISO avviabile BIOS/UEFI dalla directory specificata. È sufficiente posizionare /boot/vmlinuz e /boot/initrd nella directory.

boobstrap non utilizza busybox; per creare un ambiente di lavoro initramfs viene copiato un set minimo di programmi utilizzando ldd, necessari per l'avvio e il passaggio al sistema. L'elenco dei programmi da copiare, così come tutto il resto, può essere configurato tramite il file di configurazione /etc/boobstrap/boobstrap.conf. È possibile anche installare qualsiasi distribuzione minimalista in un chroot separato, da cui successivamente creare un ambiente initramfs completo. Si suggerisce di utilizzare il modello "crux_gnulinux-embedded", che dopo la compressione xz pesa un compromesso di 37 MB. Busybox, oltre alle sue dimensioni, 3-5 MB contro i 30-50 MB di un ambiente GNU/Linux completo, non offre ulteriori vantaggi, pertanto l'uso di busybox nel progetto non appare giustificato.

Come verificare rapidamente la funzionalità e iniziare a lavorare? Installa e avvia.

# 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

È inoltre necessario installare le dipendenze, ovvero: cpio, grub, grub-efi, dosfstools, xorriso. L'uso di squashfs-tools non è obbligatorio, puoi lavorare in tmpfs se hai una quantità adeguata di memoria RAM. Se manca qualcosa nel sistema, boobstrap lo segnalerà all'avvio.

Per semplificare la creazione delle configurazioni, boobstrap offre l'uso di "modelli" e "sistemi", che consentono di utilizzare i "modelli" (bootstrap-templates/) per un'installazione rapida dei sistemi da file e i "sistemi" (bootstrap-systems/) per configurare le impostazioni finali.

Ad esempio, l'esecuzione dello script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild installerà la configurazione minima del sistema CRUX GNU/Linux e la salverà nel file crux_gnulinux-embedded.rootfs. Successivamente, esegui bocstrap/bootstrap-systems/default/crux_gnulinux.bbuild, che caricherà la configurazione iniziale dal file menzionato, eseguirà tutte le impostazioni necessarie e preparerà l'ISO di avvio. Questo è utile quando, ad esempio, molti sistemi utilizzano una configurazione simile: per non dover descrivere ogni volta lo stesso insieme di pacchetti, si utilizza un modello da cui poi si creano le immagini di avvio dei sistemi con la configurazione finale.

Dove utilizzare tutto questo?

Configuri il sistema in un file una sola volta e con la sua esecuzione ne esegui la costruzione e/o l'aggiornamento. Il sistema funziona in tmpfs, rendendolo, di fatto, monouso. In caso di malfunzionamento del sistema, con un semplice tasto Reset torni allo stato iniziale. Puoi tranquillamente eseguire rm -rf /.

Puoi configurare tutte le tue sistemi localmente, creare immagini, testarle in una macchina virtuale o su hardware separato, quindi caricarle su un server remoto e, con solo due comandi kexec -l /vmlinuz --initrd=/initrd && kexec -e, aggiornare l'intero sistema riavviandolo in tmpfs.

Allo stesso modo, puoi migrare tutti i sistemi, ad esempio su VDS, per funzionare in tmpfs, crittografando il disco /dev/vda e utilizzandolo solo per i dati, senza la necessità di mantenere il sistema operativo su di esso. L'unico "punto di fuga delle informazioni" in tal caso sarà il "cold dump" della memoria della tua macchina virtuale, e in caso di compromissione del sistema (ad esempio, tramite password ssh o vulnerabilità in exim), puoi caricare un nuovo ISO tramite il "pannello di controllo" del tuo provider per riportare il VDS in funzione, ricordando di modificare la configurazione del sistema per chiudere tutte le vulnerabilità. Questo è più veloce rispetto a una reinstallazione, successiva configurazione e/o ripristino da backup, poiché sostanzialmente, l'ISO caricato con il tuo sistema è il tuo backup. "Sette guai - un Reset."

In fin dei conti, puoi creare qualsiasi distribuzione per le tue esigenze, copiarla su una chiavetta USB e lavorarci sopra, aggiornandola quando necessario e riscrivendola nuovamente sulla chiavetta. Tutti i dati possono essere archiviati nel cloud. Non devi più preoccuparti della sicurezza del sistema e fare backup, dato che il sistema, ripeto, è diventato in sostanza 'usa e getta'.

Le tue richieste, suggerimenti e osservazioni sono ben accetti.

Nel repository al link seguente troverai un README dettagliato (in inglese) con la descrizione di ogni utilità e esempi di utilizzo, oltre a una documentazione dettagliata in russo e alla storia dello sviluppo disponibile al link: Complesso di script di avvio boobstrap.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster