booty - segédprogram rendszerindító képek és meghajtók létrehozásához

Bemutatott program Zsákmány, amely lehetővé teszi bármely GNU/Linux disztribúciót tartalmazó rendszerindító képfájlok, ISO-fájlok vagy meghajtók létrehozását egyetlen paranccsal. A kód POSIX shellben és forgalmazza GPLv3 licenccel.

A Booty használatával elindított összes disztribúció SHMFS (tmpfs) vagy SquashFS + Overlay FS, a felhasználó választása szerint fut. A disztribúció egyszer jön létre, és a rendszerindítási folyamat során olyan paraméterek kerülnek kiválasztásra, amelyek lehetővé teszik a tiszta tmpfs használatát a gyökér számára, vagy az Overlay FS + SquashFS kombinációját a tmpfs módosításainak rögzítésével. Lehetőség van a letölthető disztribúciós készlet előzetes RAM-ba másolására, amely lehetővé teszi az USB-meghajtó leválasztását a terjesztési készlet letöltése és memóriába másolása után.

Mindenekelőtt a Booty létrehoz egy saját indítóképet, amely használhatja a jelenlegi rendszer vagy busybox natív segédprogramjait. Lehetőség van a könyvtárba (chroot) telepített teljes disztribúciós készlet beépítésére (csomagolására) az initramfs-be. Ez akkor lehet hasznos, ha egy rendszert kexec használatával kell frissíteni: egyszerűen töltse be újra az initrd-t egy új kernellel és egy új rendszerrel az initrd-ben.

Booty-specifikus indítókép létrehozása:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Initrd kép létrehozása, beleértve a disztribúciót a „gentoo/” könyvtárból:

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd

Ezután ez az initrd kép teljesen készen áll a betöltésre, például PXE-n vagy kexecen keresztül.

Ezután a Booty képeket generál a „fedvényként” megadott rendszerrel. Például telepíthet (kicsomagolhatja az archívumot) egy feltételes Gentoo-t egy külön könyvtárba, ami után a rendszer a Booty segítségével cpio archívumot vagy SquashFS képfájlt generál ezzel a rendszerrel. A disztribúciót külön könyvtárban is konfigurálhatja, és személyes beállításait átmásolhatja egy másik könyvtárba. Mindezek a „rétegek” sorban egymásra töltődnek, és egyetlen működő rendszert hoznak létre.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay documents/ --squashfs --output initrd

Végső soron a Booty lehetővé teszi rendszerindító ISO-képek és USB-, HDD-, SSD- és egyéb meghajtók létrehozását a fenti rendszer képekből történő telepítésével. Zsákmány támogatja a BIOS és UEFI rendszerindító rendszerek létrehozását. A GRUB2 és a SYSLINUX rendszerbetöltők támogatottak. A rendszerbetöltők kombinálhatók, például a SYSLINUX segítségével a BIOS-ba való rendszerindításhoz, a GRUB2-vel pedig az UEFI-hez. Az ISO-képek létrehozásához szükség lesz a cdrkit (genisoimage) vagy a xorriso (xorrisofs) csomagra, amelyek közül választhat.

Az egyetlen további teendő az, hogy a rendszermagot (vmlinuz) előre fel kell készíteni a rendszerindításra. A szerző (Spoofing) a "make defconfig" használatát javasolja. A kép létrehozása előtt el kell készíteni egy könyvtárat a vmlinuz kernel és az első példában létrehozott „üres” initrd elhelyezésével.

mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd

Ezzel az előkészítés befejeződött, ebből a könyvtárból immár ISO-képeket is készíthetünk.

A következő parancs ISO képfájlt hoz létre, nem rendszerindítót, csak ISO-képet:

mkdir iso/
mkbootisofs iso/ --output archívum.iso

A rendszerindító lemezkép létrehozásához meg kell adni a „--legacy-boot” opciót a BIOS-hoz, illetve a „--efi”-t az UEFI-hez; az opciók a grub2 vagy a syslinux paramétereit veszik igénybe; szintén csak egy opciót adhat meg ( például nincs szükség UEFI rendszerindítási támogatásra, előfordulhat, hogy nincs megadva).

mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso

És ugyanúgy, mint korábban, a rendszerrel rendelkező képek bekerültek az initrd-be, az ISO-ba is beleteheti őket.

mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso

Ezt a parancsot követően egy rendszerindító BIOS/UEFI ISO lemezkép generálódik, amely betölti a Gentoo-t a SquashFS lemezképbe Overlay FS segítségével, tmpfs használatával adattárolásra. A kernelt Overlay FS támogatással kell felépíteni SquashFS-sel. Ha azonban valamilyen oknál fogva ez nem szükséges, használhatja a „—cpio” opciót a —squashfs to package gentoo/ helyett cpio archívumként, ebben az esetben az archívum rendszerindításkor közvetlenül tmpfs-be lesz csomagolva, ami a legfontosabb az, hogy a rendszer kicsomagolásához a tmpfs-nek volt elég RAM-ja.

Érdekes tény: ha egy „—efi” opcióval készített ISO-képet egyszerűen fájlok másolásával (cp -r) kicsomagolunk egy FAT32 flash meghajtóra, akkor a Flash meghajtó a specifikációknak köszönhetően minden előzetes előkészítés nélkül UEFI módban indul. az UEFI letöltők közül.

A rendszerindító ISO-k mellett bármilyen indítható meghajtó létrehozható ugyanazokkal a paraméterekkel: USB, HDD, SSD stb., és ez a meghajtó továbbra is rendeltetésszerűen használható. Ehhez csatlakoztatnia kell például egy USB-eszközt, és futtatnia kell rajta az mkbootisofs-t. Csak adjon hozzá egy „—bootable” opciót, így a meghajtó, amelyen a megadott könyvtár található, indíthatóvá válik.

mount /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

Ezt követően az USB-eszköz indíthatóvá válik a gentoo/ overlay-vel (ne felejtse el átmásolni a /boot/vmlinuz és /boot/initrd fájlokat az eszközre).

Ha valamilyen oknál fogva a meghajtó nem lett beillesztve az /mnt mappába, és kiderül, hogy az /mnt a /dev/sda fő eszközön található, akkor a rendszerbetöltő átíródik a /dev/sda könyvtárba. Legyen óvatos a --bootable paraméter megadásakor.

A rendszerindítási folyamat során a Booty számos olyan beállítást támogat, amelyek átadhatók a rendszertöltőnek, a grub.cfg-nek vagy a syslinux.cfg-nek. Alapértelmezés szerint, opciók nélkül, minden átfedés betöltődik és kicsomagolásra kerül a tmpfs-be (alapértelmezett opció ooty.use-shmfs). Az Overlay FS használatához a booty.use-overlayfs opciót kell használni. A booty.copy-to-ram opció először a fedvényeket másolja a tmpfs-be, majd csak összekapcsolja és betölti. A másolás után az USB-eszköz (vagy más tárolóeszköz) eltávolítható.

Forrás: opennet.ru

Hozzászólás