booty — nástroj pro vytváření zaváděcích obrazů a úložných zařízení

Byla představena aplikace Booty, která umožňuje jedním příkazem vytvářet zaváděcí obrazy initrd, ISO soubory nebo zařízení, která obsahují jakoukoli distribuci GNU/Linux. Kód je napsán v POSIX shell a distribuováno distribuován pod licencí GPLv3.

Všechny distribuce zaváděné pomocí Booty fungují buď v SHMFS (tmpfs), nebo v SquashFS + Overlay FS, podle volby uživatele. Distribuce se vytváří jednou a při zavádění se vybírají parametry, které umožňují používat čistý tmpfs jako kořen, nebo kombinaci Overlay FS + SquashFS s zapisováním změn do tmpfs. Existuje možnost předběžně zkopírovat zaváděnou distribuci do RAM, což umožňuje odpojit USB zařízení po zavedení a zkopírování distribuce do paměti.

V první řadě Booty generuje vlastní initrd obraz, ve kterém mohou být použity vestavěné nástroje z aktuálního systému nebo busybox. Existuje možnost zahrnout (zabalit) celou distribuci nainstalovanou ve adresáři do initramfs (chroot). To může být užitečné, pokud je třeba aktualizovat systém pomocí kexec: jednoduše restartovat initrd s novým jádrem a novým systémem uvnitř initrd.

Vytváření Booty-specifického initrd obrazu:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Vytváření initrd obrazu se zahrnutím distribuce z adresáře „gentoo/“:

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

Poté je tento initrd obraz zcela připraven k zavedení, například prostřednictvím PXE nebo pomocí kexec.

Dále Booty generuje obrazy se systémem, který je uveden jako „overlay“. Například lze nainstalovat (rozbalit archiv) hypotetický Gentoo do samostatného adresáře, po čemž bude pomocí Booty vygenerován cpio archiv nebo SquashFS obraz s tímto systémem. Také lze v samostatném adresáři provést konfiguraci distribuce a do dalšího adresáře zkopírovat osobní nastavení. Všechny tyto „vrstvy“ budou postupně načteny na sebe a vytvoří jednotný pracovní systém.

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

Nakonec Booty umožňuje vytvářet zaváděcí ISO obrazy a USB, HDD, SSD a další úložiště, instalující výše popsaný systém z obrazů. Booty podporuje vytváření zaváděcích systémů BIOS a UEFI. Podporují se zaváděče GRUB2 a SYSLINUX. Zaváděče lze kombinovat, například pro zavádění v BIOSu použít SYSLINUX a pro UEFI — GRUB2. K vytvoření ISO obrazů bude navíc vyžadován balíček cdrkit (genisoimage) nebo xorriso (xorrisofs), podle výběru.

Jedna dodatečná akce, která bude vyžadována, je předem připravit jádro (vmlinuz) pro zavádění. Autor (Spoofing) doporučuje použít „make defconfig“. Před vytvořením obrazu je nutné připravit adresář a vložit do něj jádro vmlinuz a předem připravený „prázdný“ initrd, vytvořený v prvním příkladu.

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

Tímto je příprava dokončena, nyní můžeme vytvářet ISO obrazy z tohoto adresáře.

Následující příkaz vytvoří ISO obraz, který není zaváděcí, pouze ISO:

mkdir iso/
mkbootisofs iso/ —output archive.iso

Pro vytvoření zaváděcího obrazu je třeba uvést volbu „—legacy-boot“ pro BIOS a „—efi“ pro UEFI, příslušné parametry mohou být buď grub2, nebo syslinux, lze také uvést pouze jednu volbu (například není nutná podpora UEFI zavádění, tu lze opomenout).

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

A také, jak byly dříve zahrnuty obrazy se systémem v initrd, lze je zahrnout do ISO.

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

Po tomto příkazu bude vytvořen zaváděcí BIOS/UEFI ISO obraz, který zavádí Gentoo z obrázku SquashFS s použitím Overlay FS, využívající tmpfs pro ukládání dat. Jádro musí být sestaveno s podporou Overlay FS se SquashFS. Nicméně, pokud to z jakýchkoli důvodů není potřeba, lze místo —squashfs použít volbu „—cpio“, pro zabalení gentoo/ jako cpio archivu, v takovém případě bude archiv rozbalen přímo do tmpfs při zavádění, hlavní je, aby pro rozbalení systému do tmpfs byla dostatečná operační paměť.

Zajímavý fakt: pokud je ISO obraz vytvořený s použitím volby „—efi“ rozbalen na FAT32 flashdisk jednoduchým zkopírováním souborů (cp -r), pak se Flash paměť bude spouštět v UEFI režimu bez jakékoliv předchozí přípravy, díky specifikům UEFI zaváděčů.

Kromě zaváděcích ISO se stejnými parametry je možné vytvořit jakýkoli zaváděcí médiá: USB, HDD, SSD atd., přičemž toto médium může nadále sloužit svému primárnímu účelu. K tomu je třeba připojit například USB zařízení a spustit mkbootisofs na něm. Stačí přidat jednu volbu „—bootable“, aby médium, na kterém se nachází uvedený adresář, bylo zaváděcí.

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

Poté se USB zařízení stane zaváděcím s overlayem gentoo/ (je třeba nezapomenout zkopírovat soubory /boot/vmlinuz a /boot/initrd na zařízení).

Pokud z nějakého důvodu nebylo médium připojeno v /mnt, a ukáže se, že /mnt je na hlavním zařízení /dev/sda, tak loader bude přepsán na /dev/sda. Je třeba být opatrný při zadávání volby —bootable.

Během zavádění Booty podporuje řadu voleb, které lze uvést v bootloaderu, grub.cfg nebo syslinux.cfg. Ve výchozím nastavení se bez jakýchkoli voleb provede zavádění a rozbalení všech overlayů do tmpfs (výchozí volba ooty.use-shmfs). Pro použití Overlay FS musí být použita volba booty.use-overlayfs. Volba booty.copy-to-ram předem zkopíruje overlaye do tmpfs, po čemž je pouze připojí a spustí. Po zkopírování lze USB zařízení (nebo jiné médium) vyjmout.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster