Bemutatjuk a rendszersegédprogramok készletének kiadását

Bemutatásra került a program Booty, amely lehetővé teszi, hogy egy parancs segítségével létrehozzunk indítóképeket initrd, ISO fájlokat vagy tárolókat, amelyek bármely GNU/Linux disztribúciót tartalmaznak. A kód POSIX shell-ben íródott, és terjesztésre kerül GPLv3 licenc alatt áll.

Minden korábban a Booty-val betöltött disztribúció SHMFS (tmpfs) vagy SquashFS + Overlay FS módban fut, a felhasználó választása szerint. A disztribúciót egyszer kell létrehozni, majd a betöltés során olyan paraméterek választhatók, amelyek lehetővé teszik a tiszta tmpfs használatát gyökérként, vagy az Overlay FS + SquashFS kombinációt, amelyben a változásokat tmpfs-be írják. Van lehetőség arra, hogy a betöltött disztribúciót a RAM-ba másoljuk, ami lehetővé teszi az USB tároló leválasztását a betöltés és a disztribúció memóriába másolása után.

Először is, a Booty önálló initrd képet generál, amelyben használhatóak az aktuális rendszerből származó natív segédprogramok vagy a busybox. Lehetőség van arra is, hogy teljes egészében becsomagoljuk az initramfs-be a könyvtárban található disztribúciót (chroot). Ez hasznos lehet, ha a rendszert frissíteni kell a kexec használatával: egyszerűen újra kell indítani az initrd-t az új kernellel és az új rendszerrel az initrd-n belül.

A Booty-specifikus initrd kép létrehozása:

mkdir initramfs/
mkinitramfs initramfs/ —output initrd

Initrd kép létrehozása a "gentoo/" könyvtárban található disztribúcióval:

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

Ezt követően a létrehozott initrd kép teljesen készen áll a betöltésre, például PXE-n vagy kexec segítségével.

Ezután a Booty generálja azokat a képeket, amelyek a „felületek”-ként megadott rendszert tartalmazzák. Például telepíthetünk (kicsomagolhatunk egy archívumot) egy feltételezett Gentoo-t külön könyvtárba, majd a Booty segítségével generálunk egy cpio archívumot vagy SquashFS képet ezzel a rendszerrel. Ezenkívül külön könyvtárban elvégezhetjük a disztribúció beállítását, és egy másik könyvtárba másolhatjuk a személyes beállításokat. Mindezen „rétegek” egymásra lesznek rakva, hogy egyetlen működő rendszert hozzanak létre.

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

Végső soron a Booty lehetővé teszi indító ISO-képek és USB, HDD, SSD és egyéb tárolók létrehozását, az előbb említett rendszer telepítésével a képek alapján. Booty Támogatja a BIOS és UEFI boot rendszerek létrehozását. Támogatottak a GRUB2 és SYSLINUX bootloaderek. A bootloaderek kombinálhatók, például BIOS indításhoz használhatjuk a SYSLINUX-t, míg UEFI esetén a GRUB2-t. ISO képek készítéséhez további csomag szükséges, mint a cdrkit (genisoimage) vagy az xorriso (xorrisofs), választhatóan.

Az egyetlen további lépés, ami szükséges, hogy előre elkészítsük a kernel-t (vmlinuz) a bootoláshoz. Az író (Spoofing) javasolja a 'make defconfig' használatát. Az image létrehozása előtt el kell készíteni a könyvtárat, melyben elhelyezzük a vmlinuz kernelt és a korábban elkészített 'üres' initrd-t, ami az első példában lett létrehozva.

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

Ezzel a felkészülés befejeződött, most létrehozhatjuk az ISO képeket az adott könyvtárból.

A következő parancs egy nem bootolható ISO képet hoz létre, egyszerű ISO-t:

mkdir iso/
mkbootisofs iso/ —output archive.iso

Bootolható image létrehozásához '—legacy-boot' opciót kell megadni a BIOS-hoz és '—efi' opciót az UEFI-hez, a paraméterek lehetnek grub2 vagy syslinux, illetve csak egy opciót is megadhatunk (például, ha UEFI boot támogatásra nincs szükség, azt nem kell megadni).

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 ahogyan korábban a rendszert tartalmazó képek az initrd-be lettek ágyazva, azokat be lehet vonni az ISO-ba is.

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

A fenti parancs létrehoz egy bootolható BIOS/UEFI ISO képet, amely a Gentoo-t indítja el a SquashFS képből Overlay FS használatával, tmpfs-t használva az adatok tárolására. A kernelt az Overlay FS és SquashFS támogatásával kell összegyűjteni. Azonban, ha valamilyen okból ez nem szükséges, használható a '—cpio' opció a —squashfs helyett, a gentoo/ cpio archívumként való csomagolásához, így az archívum közvetlenül a tmpfs-be lesz kicsomagolva bootoláskor, fontos, hogy elegendő RAM álljon rendelkezésre a rendszer tmpfs-be való kicsomagolásához.

Érdekes tény: ha az '—efi' opcióval létrehozott ISO képet egyszerű fájlmásolással (cp -r) kicsomagolják egy FAT32 pendrive-ra, a Flash meghajtó UEFI rendszerben bootolhatóvá válik előkészítés nélkül is, köszönhetően az UEFI bootloaderek sajátosságainak.

Az azonos paraméterekkel rendelkező ISO-k mellett bármilyen bootolható tároló létrehozható: USB, HDD, SSD stb. E tároló továbbra is használható a maga közvetlen céljára. Ehhez csatlakoztatni kell például egy USB-eszközt, majd végrehajtani a mkbootisofs indítást rajta. Csak egy „—bootable” opciót kell hozzáadni, hogy a megadott könyvtárat tartalmazó tároló bootolhatóvá váljon.

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

Ezt követően az USB-eszköz bootolható lesz az gentoo/ overlay-jel (ne felejtsük el átmásolni a fájlokat /boot/vmlinuz és /boot/initrd az eszközre).

Ha valamilyen okból a tároló nem volt csatlakoztatva a /mnt-hez, és úgy alakul, hogy a /mnt az alapértelmezett eszközön, azaz a /dev/sda-n található, akkor a bootloader ennek megfelelően a /dev/sda-ra lesz felülírva. Óvatosan kell eljárni a —bootable opció megadásakor.

A Booty indításakor számos opciót támogathat, amelyeket a bootloaderben, grub.cfg-ben vagy syslinux.cfg-ben megadhatunk. Alapértelmezetten, bármilyen opció nélkül, az összes overlay betöltése és kicsomagolása a tmpfs-be történik (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 előkészíti az overlay-ket a tmpfs-be való másoláshoz, majd csak csatlakoztatja és betölti azokat. Az USB-eszköz (vagy más tároló) ezután eltávolítható a másolás után.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster