Szeretném bemutatni a boobstrap nevű keretrendszert, amely POSIX shell nyelven íródott, és lehetővé teszi GNU/Linux disztribúciókkal rendelkező bootolható képek létrehozását. A keretrendszer három egyszerű lépésben végigvezet az összes folyamaton: a rendszer telepítése chroot környezetbe, az initramfs kép létrehozása, amely tartalmazza a chrootban lévő rendszert, végül pedig a bootolható ISO kép elkészítése. A boobstrap három segédeszközt tartalmaz: mkbootstrap, mkinitramfs és mkbootisofs.
A mkbootstrap egy külön könyvtárba telepíti a rendszert, natív támogatással rendelkezik a CRUX számára, míg Arch Linux / Manjaro és a Debian alapú disztribúciók esetében külső eszközöket, mint a pacstrap, basestrap és debootstrap kell használni.
A mkinitramfs létrehozza az initramfs képet, és az így telepített rendszert használhatjuk "overlay"-ként, amelyet SquashFS-sel tömörítünk, vagy közvetlenül tmpfs-be bootolva dolgozhatunk. Például a mkinitramfs `mktemp -d` —overlay "arch-chroot\/" —overlay "\/home" —squashfs-xz —output initrd parancs létrehoz egy initrd fájlt, amely két overlay-t tartalmaz az "arch-chroot\/" rendszerről és az Ön "\/home"-járól, SquashFS-sel tömörítve, amelyet PXE-n keresztül tmpfs-be, vagy bootolható ISO kép létrehozásához használhatunk ezzel az initrd-vel.
A mkbootisofs egy BIOS / UEFI bootolható ISO képet hoz létre a megadott könyvtárból. Elég, ha a könyvtárba elhelyezzük a \/boot\/vmlinuz és \/boot\/initrd fájlokat.
A boobstrap nem használ busyboxot, és az initramfs munkakörnyezet létrehozásához a szükséges programok minimalista készletét másolja ldd használatával, amelyek a rendszer bootolásához és átkapcsolásához szükségesek. A másolandó programok listáját, akárcsak minden mást, a \/etc\/boobstrap\/boobstrap.conf konfigurációs fájllal lehet beállítani. Ezen kívül bármilyen minimalista disztribúciót telepíthetünk egy külön chrootba, ahonnan már teljes initramfs környezetet hozhatunk létre. Javasolt a "crux_gnulinux-embedded" mint minimalista, de mégis teljes környezet használata, amely xz-t követően kompromisszumos 37 MB-ot foglal. A busybox, a maga 3-5 MB-os méretével a 30-50 MB teljes GNU/Linux környezettel szemben, más előnyöket nem kínál, így a busybox használata a projektben nem tűnik ésszerűnek.
Hogyan ellenőrizhetem gyorsan a működőképességet és kezdhetem el a munkát? Telepítse és indítsa el.
# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
Ezen kívül szükséges a függőségek telepítése, nevezetesen: cpio, grub, grub-efi, dosfstools, xorriso. A squashfs-tools használata nem kötelező, dolgozhat tmpfs-en, ha elegendő a rendszermemória. Ha a rendszerből valami hiányzik, a boobstrap erről értesít a futtatáskor.
A konfigurációk egyszerűsített létrehozása érdekében a boobstrap javasolja a "sablonok" és "rendszerek" használatát, amelyek lényege, hogy a "sablonokat" (bootstrap-templates/) használjuk a rendszerek gyors telepítéséhez fájlból, míg a "rendszerek" (bootstrap-systems/) közvetlenül a végső konfigurációk beállítására szolgálnak.
Például a boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild skriptus futtatása telepíti a CRUX GNU/Linux minimális rendszerkonfigurációját, és elmenti azt a crux_gnulinux-embedded.rootfs fájlba. Ezután futtatja a boobstrap/bootstrap-systems/default/crux_gnulinux.bbuild-t, amely betölti az említett fájlból a kezdeti konfigurációt, elvégzi az összes szükséges beállítást, és előkészíti az induló ISO-t. Ez kényelmes, ha például sok rendszer használ azonos konfigurációt: hogy ne kelljen minden alkalommal ugyanazokat a csomagokat leírni, egy sablont használ, amely alapján már létrehozza a végső konfigurációval rendelkező rendszerindító képeket.
Hol használható mindez?
A konfigurációt egyszer állítja be egy fájlban, és annak futtatásával építi vagy frissíti azt. A rendszer tmpfs-en működik, ami lényegében egyszer használatos. Ha a rendszer meghibásodik, egy gombnyomással visszatér az alapállapotba. Nyugodtan végrehajthatja a rm -rf / parancsot.
Konfigurálhatja az összes rendszerét helyben, képeket készíthet, tesztelheti őket virtuális gépen vagy különálló "hardveren", majd feltöltheti őket egy távoli szerverre, és mindössze két parancs, kexec -l /vmlinuz —initrd=/initrd && kexec -e segítségével frissítheti az egész rendszert, újraindítva azt tmpfs-be.
Hasonlóképpen minden rendszert át tud állítani, például VDS-re, tmpfs-en való munkára, és a /dev/vda lemezt titkosíthatja, amelyet csak adatokhoz használ, anélkül, hogy az operációs rendszert rajta kellene tárolnia. Az egyetlen 'információszivárgási pont' ilyen esetben csupán a virtuális gépe memóriájának 'hideg dumpja' lesz, és a rendszer kompromittálása esetén (például SSH jelszó kitalálása vagy exim sebezhetősége miatt) új ISO-t tölthet le a szolgáltató 'vezérlőpanelén', hogy visszaállítsa a VDS-t, nem felejtve el módosítani a rendszer konfigurációját, hogy bezárja az összes sebezhetőséget. Ez gyorsabb, mint az újratelepítés, a későbbi konfigurálás és/vagy a biztonsági mentésből való visszaállítás, hiszen tulajdonképpen az újra betöltött ISO a rendszerével az a biztonsági mentés. 'Hét baj – egy Reset.'
Végül bármilyen disztribúciót létrehozhat a feladatainak megfelelően, felírhatja USB-meghajtóra és abban dolgozhat, frissítve szükség szerint, és ismét felírva azt USB-meghajtóra. Az összes adatot 'felhőkben' tárolja. Többé nem kell aggódnia a rendszer biztonságáért és biztonsági mentésért, amikor a rendszer, ismétlem, valójában 'egyszer használatos' lett.
Önnek örömmel fogadjuk javaslatait, megjegyzéseit és észrevételeit.
A következő linken található tárolóban részletes README-fájl (angol nyelven) található, amely bemutatja az egyes utilitásokat és használati példákat, valamint részletes dokumentáció oroszul és a fejlesztési történet is elérhető az alábbi linken: Boobstrap indító szkriptek komplexuma.
Forrás: linux.org.ru

