Rád bych vám představil framework s názvem boobstrap, který je napsán v POSIX shellu, pro vytváření bootovacích obrazů s distribucemi GNU/Linux. Framework umožňuje projít celým procesem ve třech jednoduchých krocích: od nasazení systému v chrootu, přes vytvoření initramfs obrazu zahrnujícího systém z chrootu, až po konečný bootovací ISO obraz. boobstrap obsahuje tři utility mkbootstrap, mkinitramfs a mkbootisofs.
mkbootstrap instaluje systém do samostatného adresáře, má nativní podporu pro CRUX, a v případě Arch Linuxu/Manjaro a distribucí založených na Debiánu je třeba použít externí utility pacstrap, basestrap a debootstrap.
mkinitramfs vytváří initramfs obraz, můžete použít nainstalovaný systém v adresáři jako 'overlay', komprimovaný pomocí SquashFS, nebo se spustit v systému přímo v tmpfs. Například příkaz mkinitramfs `mktemp -d` —overlay "arch-chroot\/" —overlay "\/home" —squashfs-xz —output initrd vytvoří initrd soubor, do kterého zahrne dva overlaye se systémem 'arch-chroot/' a vaším 'home', komprimované pomocí SquashFS, který pak můžete spustit přes PXE v tmpfs, nebo vytvořit bootovací ISO obraz s tímto initrd.
mkbootisofs vytváří BIOS/UEFI bootovací ISO obraz z určeného adresáře. Stačí umístit soubory /boot/vmlinuz a /boot/initrd do adresáře.
boobstrap nepoužívá busybox, a pro vytvoření pracovního prostředí initramfs se kopíruje minimální sada programů pomocí ldd, které jsou potřebné pro spuštění a přepnutí do systému. Seznam programů k kopírování, jakož i vše ostatní, lze nakonfigurovat pomocí konfiguračního souboru /etc/boobstrap/boobstrap.conf. Také můžete nainstalovat jakoukoli minimalistickou distribuci do samostatného chrootu, z nějž následně vytvořit plnohodnotné initramfs prostředí. Jako takové minimalistické, ale plnohodnotné prostředí se doporučuje použít šablonu 'crux_gnulinux-embedded', která po xz zabírá kompromisních 37 MB. busybox však, kromě své velikosti (3-5 MB oproti 30-50 MB plného GNU/Linux prostředí), nenabízí žádné další výhody, a tak se použití busybox v projektu nejeví jako smysluplné.
Jak rychle zkontrolovat funkčnost a začít pracovat? Nainstalujte a spusťte.
# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
Také je třeba doinstalovat závislosti, konkrétně: cpio, grub, grub-efi, dosfstools, xorriso. Použití squashfs-tools není nezbytné, můžete pracovat v tmpfs při odpovídajícím objemu operační paměti. Pokud něco v systému chybí, boobstrap to oznámí při spuštění.
Pro usnadnění vytváření konfigurací boobstrap nabízí používat "šablony" a "systémy", jejichž podstata spočívá v tom, že se používají "šablony" (bootstrap-templates/) pro rychlou instalaci systémů z souboru, a přímo "systémy" (bootstrap-systems/) se používají pro nastavení konečných konfigurací.
Například spuštění skriptu boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild nainstaluje minimální konfiguraci systému CRUX GNU/Linux a uloží ji do souboru crux_gnulinux-embedded.rootfs, poté spustíte boobstrap/bootstrap-systems/default/crux_gnulinux.bbuild, který načte primární konfiguraci z uvedeného souboru, provede všechna potřebná nastavení a připraví spouštěcí ISO. Je to pohodlné, když například mnoho systémů používá podobnou konfiguraci: abyste znovu nemuseli popisovat stejnou sadu balíčků, použijete jednu šablonu, na jejímž základě pak vytváříte spouštěcí obrazy systémů s konečnou konfigurací.
Kde to všechno využít?
Nastavíte systém v souboru jednou a jeho spuštěním provedete jeho sestavení a/nebo aktualizaci. Systém funguje v tmpfs, což ho činí jednorázovým v podstatě. V případě selhání systému se jedním stiskem tlačítka Reset vrátíte do výchozího stavu. Můžete v klidu provést rm -rf /.
Můžete nastavovat konfigurace všech vašich systémů lokálně, vytvářet obrazy, testovat je ve virtuálním stroji nebo na samostatném "hardwaru", poté je nahrávat na vzdálený server a spuštěním pouhých dvou příkazů kexec -l /vmlinuz —initrd=/initrd && kexec -e aktualizovat celý systém, přičemž ho restartujete v tmpfs.
Podobně můžete převést všechny systémy, například na VDS, do režimu tmpfs a šifrovat disk /dev/vda a používat ho pouze pro data, aniž byste museli uchovávat operační systém na něm. Jedinou „únikovou cestou informací“ v takovém případě bude pouze „studená dump“ paměti vašeho virtuálního stroje, a v případě kompromitace systému (například pomocí cracknutí ssh hesla nebo zranitelnosti v exim) můžete nahrát nový ISO přes „ovládací panel“ vašeho poskytovatele a znovu uvést VDS do provozu, aniž byste zapomněli upravit konfiguraci systému a eliminovat všechny zranitelnosti. To je rychlejší než reinstalace, následné nastavení a/nebo obnovení z zálohy, protože vlastně nahrávaný ISO s vaším systémem je vaše záloha. „Sedm ran – jedna obnova.“
Nakonec můžete vytvořit jakýkoli distribuc, který odpovídá vašim potřebám, zapsat ho na USB flash disk a pracovat na něm, přičemž ho podle potřeby aktualizujete a znovu přepisujete na USB flash disk. Všechna data ukládejte do „cloudů“. Již se nemusíte obávat o bezpečnost systému a vytvářet jeho zálohu, když systém, opakuji, se vlastně stal „jednorázovým“.
Vaše přání, návrhy a připomínky jsou vítány.
V repozitáři na odkazu níže je podrobný README soubor (v angličtině) s popisem každé utility a příklady použití, také existuje podrobná dokumentace v ruštině a historie vývoje, dostupné na odkazu: Sada spouštěcích skriptů boobstrap.
Zdroj: linux.org.ru

