Byla představena aplikace , 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á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ů. 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
