Bootstrap v1.0 képek létrehozása


Bootstrap v1.0 képek létrehozása

Szeretném figyelmükbe ajánlani a boobstrap nevű, POSIX shellben írt keretrendszert, amely GNU/Linux disztribúciókkal való rendszerindító lemezképek létrehozására szolgál. A keretrendszer lehetővé teszi, hogy a teljes folyamaton három egyszerű lépésben menjen végig: a rendszer chroot-ban történő telepítésétől a chrootolt rendszert tartalmazó initramfs-kép létrehozásáig, végül egy rendszerindító ISO-kép létrehozásáig. A boobstrap három segédprogramot tartalmaz: mkbootstrap, mkinitramfs és mkbootisofs.

Az mkbootstrap külön könyvtárba telepíti a rendszert, natív támogatása van a CRUX-nak, az Arch Linux / Manjaro és Debian alapú disztribúciók esetében pedig harmadik féltől származó pacstrap, basestrap és debootstrap segédprogramokat kell használni.

Az mkinitramfs létrehoz egy initramfs képfájlt, a könyvtárban lévő telepített rendszert használhatja „overlay”-ként, SquashFS-sel tömörítve, vagy a rendszerbe való indítás után közvetlenül a tmpfs-ben dolgozhat. Így például az mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd parancs létrehoz egy initrd fájlt, melyben két átfedés található az "arch- chroot/" rendszert és a SquashFS segítségével tömörített "/home" fájlt, amelyet aztán PXE-n keresztül tmpfs fájlba indíthat, vagy ezzel az initrd-vel létrehozhat egy rendszerindító ISO-képet.

Az mkbootisofs létrehoz egy BIOS/UEFI rendszerindító ISO-képet a megadott könyvtárból. Csak tegye a /boot/vmlinuz és a /boot/initrd könyvtárba.

A boobstrap nem használja a busyboxot, és egy működő initramfs környezet létrehozásához a program egy minimális készletet másol át az ldd segítségével, amely szükséges a rendszerindításhoz és a rendszerre való váltáshoz. A másolandó programok listája, mint minden más, az /etc/boobstrap/boobstrap.conf konfigurációs fájlban konfigurálható. Ezenkívül bármilyen minimalista disztribúciót telepíthet egy külön chroot/-ba, amelyből aztán létrehozhat egy teljes értékű initramfs környezetet. Ilyen minimalista, de egyben teljes értékű környezetként javasolt a „crux_gnulinux-embedded” sablon használata, amely xz után 37 MB-os kompromisszumot foglal el. A busybox mérete mellett, 3-5 MB, szemben egy teljes értékű GNU/Linux környezet 30-50 MB-jával, már nem kínál semmilyen előnyt, így a busybox használata egy projektben nem tűnik megfelelőnek.

Hogyan lehet gyorsan ellenőrizni a funkcionalitást és elkezdeni? Telepítse és futtassa.

# git klón 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

Függőségeket is telepítenie kell, nevezetesen: cpio, grub, grub-efi, dosfstools, xorriso. A squashfs-tools használata nem szükséges, tmpfs-ben dolgozhat megfelelő mennyiségű RAM-mal. Ha valami hiányzik a rendszerből, a boobstrap ezt jelzi az indításkor.

A konfigurációk létrehozásának egyszerűsítése érdekében a boobstrap a „sablonok” és a „rendszerek” használatát javasolja, amelyek lényege a „sablonok” (bootstrap-templates/) használata a rendszerek fájlból történő gyors telepítéséhez, illetve közvetlenül „rendszerek” (bootstrap- rendszerek/) a végső konfigurációk beállításához.

Így például a boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild szkript futtatása telepíti a CRUX GNU/Linux rendszer minimális konfigurációját, és elmenti a crux_gnulinux-embedded.rootfs fájlba, majd futtatja a boobstrap/bootstrap-systems fájlt. /default/crux_gnulinux.bbuild, amely betölti az elsődleges konfigurációt az említett fájlból, elvégzi az összes szükséges beállítást, és elkészít egy rendszerindító ISO-t. Ez akkor kényelmes, ha például sok rendszer ugyanazt a konfigurációt használja: annak érdekében, hogy ne írja le minden alkalommal ugyanazt a csomagkészletet, egyetlen sablont használ, amely alapján létrehozza a rendszerindító képfájlokat a végső konfigurációval.

Hol tudom mindezt felhasználni?

Egyszer konfigurálja a rendszert egy fájlban, majd futtatásával összeállítja és/vagy frissíti. A rendszer tmpfs-ben fut, ami lényegében eldobhatóvá teszi. Ha a rendszer meghibásodik, a Reset gomb egy kattintásával visszatérhet eredeti állapotába. Biztonságosan futtathatja az rm -rf / parancsot.

Az összes rendszer konfigurációját helyileg konfigurálhatja, képfájlokat hozhat létre, tesztelheti őket virtuális gépen vagy külön hardveren, majd feltöltheti őket egy távoli szerverre, és csak két parancsot futtathat: kexec -l /vmlinuz —initrd=/initrd && kexec -e a teljes rendszer frissítéséhez, újraindítva a tmpfs fájlba.

Ugyanígy az összes rendszert átviheti, például VDS-en, hogy tmpfs-ben működjön, és titkosíthatja a /dev/vda lemezt, és csak adatokra használhatja, anélkül, hogy az operációs rendszert rajta kellene tartani. Az egyetlen „információkiszivárgási pont” ebben az esetben csak a virtuális gép memóriájának „hideg dumpja”, illetve a rendszer kompromittálódása (például az ssh-jelszó kitalálása vagy a biztonsági rés) Exim), letölthet egy új ISO-t a szolgáltató „vezérlőpultján” keresztül, hogy a VDS újra működjön, anélkül, hogy elfelejtené módosítani a rendszerkonfigurációt az összes sérülékenység bezárása érdekében. Ez gyorsabb, mint az újratelepítés, az utólagos konfiguráció és/vagy a biztonsági másolatból történő visszaállítás, mivel lényegében a rendszeredhez letölthető ISO a biztonsági másolatod. "Hét probléma - egy visszaállítás."

A végén bármilyen disztribúciót létrehozhat az Ön igényei szerint, USB-meghajtóra írhatja és dolgozhat rajta, szükség szerint frissítve és újra átírva az USB-meghajtóra. Minden adat a felhőkben van tárolva. Többé nem kell aggódnia a rendszer biztonsága miatt, és nem kell biztonsági másolatot készítenie, ha a rendszer – ismétlem – lényegében „eldobható” lett.

Kívánságait, javaslatait és észrevételeit szívesen fogadjuk.

Az alábbi linken található tárolóban található egy részletes README fájl (angol nyelven) az egyes segédprogramok leírásával és felhasználási példákkal, valamint részletes orosz nyelvű dokumentáció és a linken elérhető fejlesztési előzmények: Boobstrap rendszerindító szkript komplexum.

Forrás: linux.org.ru

Hozzászólás