Po pouhém měsíci nenáhlého vývoje byl vydán boobstrap v1.2 – nástrojový soubor na POSIX shell pro vytváření zaváděcích obrazů a zařízení.
Boobstrap umožňuje jediným příkazem:
- Vytvářet initramfs obraz, který zahrnuje jakoukoli distribuci GNU/Linux.
- Vytvářet zaváděcí ISO obrazy s jakoukoli distribucí GNU/Linux.
- Vytvářet zaváděcí USB, HDD, SSD zařízení s jakoukoli distribucí GNU/Linux.
Specifičnost spočívá v tom, že po zavedení bude GNU/Linux fungovat buď úplně v čistém tmpfs, nebo s využitím Overlay FS a SquashFS obrazů, podle vašeho výběru. Nainstalujete jakoukoli distribuci GNU/Linux do adresáře, provedete všechna potřebná nastavení (můžete v samostatném adresáři), po čemž jediným příkazem vytvoříte zaváděcí zařízení, ať už je to ISO obraz, USB, HDD, SSD, nebo můžete vytvořit i initrd obraz se systémem. Systém bude vždy v jednom stavu a v případě poruchy se můžete vrátit do výchozího stavu stisknutím jednoho tlačítka Reset. Chcete přenést systém na jiný hostitel, nebo vytvořit systém z existujícího kontejneru? Boobstrap to udělá.
Mezi klíčové změny patří:
- Byla přidána podpora zaváděče syslinux, kromě již existujícího grub2. Nyní můžete zvolit buď grub2, nebo syslinux, nebo obojí společně, když vytváříte zaváděcí zařízení nebo ISO obraz, za což odpovídají volby —legacy-boot syslinux a —efi grub2, a také můžete vybírat, jaké režimy zavádění bude ISO obraz podporovat.
- Byla přidána volba —bootable, která dělá jakékoli blokové zařízení zaváděcí. Pro vytváření ISO obrazů by měla být použita volba —iso-9660.
- Byly přidány možnosti zavádění jádra boobs.use-shmfs pro kopírování obsahu všech overlay do tmpfs, boobs.use-overlayfs pro zavádění s využitím Overlay FS, boobs.search-rootfs pro výběr zdroje se systémem, boobs.copy-to-ram pro kopírování systému do paměti s následným odpojením zařízení.
- Jednou povinnou závislostí pro práci s boobstrap je pouze cpio. Ostatní závislosti jsou volitelné: grub2, syslinux - jsou nezbytné pro vytváření bootovacích médií, cdrkit nebo xorriso na výběr - pro vytváření ISO, squashfs-tools pro vytváření SquashFS, nicméně nic nebrání použití možnosti --cpio místo --squashfs pro balení vaší distribuce do archivu. busybox bude použit pouze pokud je nainstalován, ale pokud ne, budou zkopírovány všechny potřebné utility z vašeho systému. Takže práce s boobstrap je zaručena prakticky všude.
Například následující příkaz vytvoří initrd obraz, který zahrnuje gentoo-chroot/ systém, zabalený jako obraz SquashFS, který bude úspěšně načten po načtení samotného initrd. Připomínám, abyste použili Overlay FS spolu se SquashFS, je nutné předat jádru možnost boobs.use-overlayfs, jinak bude systém rozbalen do tmpfs. Všechny další nastavení lze provést v samostatném adresáři, například gentoo-settings/
# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd
initrd-obraz se systémem uvnitř je užitečný, když je potřeba rychle nasadit systém, například prostřednictvím PXE, nebo na načteném systému přepnout do initrd pomocí příkazu kexec -l /boot/vmlinuz-* --initrd=./initrd && kexec -e, nebo být v rozhraní virtuálního stroje QEMU (možná i Proxmox) a bootovat z vzdáleného zdroje pomocí tří příkazů IPXE: kernel http://[…]vmlinuz, initrd http://[…]initrd, boot. Jak vidíte, i obyčejný initrd se systémem uvnitř má mnoho variant použití.
Pro vytváření bootovacích médií a obrazů se používá příkaz mkbootisofs, například takto vypadá vytvoření ISO obrazu s možností --iso-9660 za použití syslinux pro načtení v Legacy-mode (BIOS) a grub2 pro načtení v EFI-mode (UEFI).
# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir isoimage/
# mkdir isoimage/boot
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ —iso-9660 —legacy-boot syslinux —efi grub2 —output boot.iso
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs
Můžete uvést jeden z režimů bootování, nebo je vůbec neuvádět, odpovídající ISO obraz bude úspěšně vytvořen.
Instalace na jakékoli médium s následným bootováním z něj se provádí pomocí možnosti --bootable. Musíte si sami vytvořit oddíly na médiu (fdisk) a naformátovat je (mkdosfs, mke2fs a tak dále), po čemž připojíte zařízení do adresáře.
# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ —bootable —legacy-boot grub2 —efi grub2
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs
Pozor! Možnost —bootable určuje, z jakého blokového zařízení je připojena adresář a nastavuje zaváděcí program do tohoto zařízení. Pokud zapomenete připojit zařízení nebo omylem zadáte adresář, který se nachází například na /dev/sda, bude zaváděcí program na /dev/sda přepsán. Používejte —bootable s opatrností.
Instalace jakéhokoliv systému GNU/Linux spočívá v jediném příkazu. Instalaci lze provést na jakýkoli HDD, SSD atd. Je třeba připomenout, že se stále jedná o systém pracující z Overlay FS / SquashFS, nebo plně zavádějící se do tmpfs, podle výběru.
Kromě všeho ostatního má boobstrap řadu zajímavých vlastností a dodatečných možností!
Například můžete vytvořit vlastní boobstrap initrd příkazem mkinitramfs `mktemp -d` > /boot/initrd a zavést se do svého systému s tímto initrd, přičemž uvedete možnosti jádra boobs.use-overlayfs boobs.search-rootfs=/dev/sda1. V takovém případě bude /dev/sda1, kde je nainstalován váš domácí systém, připojen jako read-only vrstva Overlay FS, a všechny změny, které provedete, budou zapsány pouze dočasně do tmpfs. Můžete přidat možnost boobs.copy-to-ram a celá vaše systém bude zkopírována do RAM, a pevný disk můžete odpojit od počítače. Je to užitečné, když chcete něco rozbít, a vrátit změny lze prostě restartováním. 🙂
Ale co když bude třeba všechny změny v systému přece jen uchovat? Například jste nainstalovali software nebo něco jiného. Při práci v čistém tmpfs to bohužel není možné, ale pokud jste se spustili za použití Overlay FS, všechny změny, které probíhají v systému, se uchovávají v samostatném tmpfs adresáři: /mnt/overlayfs/rootfs-changes! Scénář použití je velmi jednoduchý. Spustili jste se do svého systému z USB zařízení, pracovali jste, chtěli uchovat všechno, co bylo změněno, pak vytvořte cpio archiv a uložte ho sem, na toto USB zařízení.
# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD
Můžete umístit archív vedle ostatních SquashFS a cpio „vrstev“, takže při další startování bude archív připojen jako další read-only vrstva. Pro práci se změnami použijte možnost zavádění boobs.rootfs-changes=\/rootfs-changes.cpio. Možnost boobs.rootfs-changes připojuje zadanou vrstvu s přístupem pro změny. Vrstva může být blokové zařízení, například můžete zadat \/dev\/sdb1, pak všechny změny provedené v Overlay FS budou jednoduše ukládány na \/dev\/sdb1.
Boobstrap, ačkoliv má široké možnosti, se stále nachází ve fázi vývoje, všechny vaše poznámky a návrhy jsou zváženy!
Zdroj: linux.org.ru

