Przedstawiony program
Wszystkie dystrybucje uruchamiane przy użyciu Booty uruchamiają SHMFS (tmpfs) lub SquashFS + Overlay FS, według wyboru użytkownika. Dystrybucja jest tworzona raz, a podczas procesu uruchamiania wybierane są parametry, które pozwalają na użycie czystego tmpfs dla katalogu głównego lub kombinacji Overlay FS + SquashFS z rejestrowaniem zmian w tmpfs. Istnieje możliwość wstępnego skopiowania pakietu dystrybucyjnego do pobrania do pamięci RAM, co umożliwia odłączenie napędu USB po pobraniu i skopiowaniu pakietu dystrybucyjnego do pamięci.
Przede wszystkim Booty generuje własny obraz initrd, który może korzystać z natywnych narzędzi z bieżącego systemu lub busyboxa. Możliwe jest włączenie (spakowanie) całego pakietu dystrybucyjnego zainstalowanego w katalogu (chroot) do initramfs. Może to być przydatne, gdy musisz zaktualizować system za pomocą kexec: po prostu załaduj ponownie initrd z nowym jądrem i nowym systemem wewnątrz initrd.
Tworzenie obrazu initrd specyficznego dla Booty:
mkdir initramfs/
mkinitramfs initramfs/ --output initrd
Tworzenie obrazu initrd zawierającego dystrybucję z katalogu „gentoo/”:
mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd
Po czym ten obraz initrd jest całkowicie gotowy do załadowania, na przykład przez PXE lub przez kexec.
Następnie Booty generuje obrazy w systemie określonym jako „nakładki”. Na przykład możesz zainstalować (rozpakować archiwum) warunkowe Gentoo w osobnym katalogu, po czym przy użyciu Booty zostanie wygenerowane archiwum cpio lub obraz SquashFS z tym systemem. Możesz także skonfigurować dystrybucję w osobnym katalogu i skopiować swoje ustawienia osobiste do innego katalogu. Wszystkie te „warstwy” zostaną kolejno nałożone na siebie i utworzą jeden działający system.
mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay documents/ --squashfs --output initrd
Ostatecznie Booty umożliwia tworzenie startowych obrazów ISO oraz dysków USB, HDD, SSD i innych, instalując powyższy system z obrazów.
Jedyną wymaganą dodatkową czynnością jest wcześniejsze przygotowanie jądra (vmlinuz) do rozruchu. Autor (Spoofing) zaleca użycie "make defconfig". Przed utworzeniem obrazu należy przygotować katalog umieszczając jądro vmlinuz i przygotowany wcześniej „pusty” initrd utworzony w pierwszym przykładzie.
mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd
Na tym przygotowania są zakończone, możemy teraz utworzyć obrazy ISO z tego katalogu.
Poniższe polecenie utworzy obraz ISO, a nie obraz rozruchowy, tylko ISO:
mkdir iso/
mkbootisofs iso/ --output Archive.iso
Aby utworzyć obraz rozruchowy, musisz określić opcję „--legacy-boot” odpowiednio dla BIOS-u i „--efi” dla UEFI; opcje przyjmują jako parametry grub2 lub syslinux; możesz także określić tylko jedną opcję ( na przykład obsługa rozruchu UEFI nie jest potrzebna, może nie zostać określona).
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
I tak jak poprzednio, obrazy z systemem zostały zawarte w initrd, można je załączyć w ISO.
mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso
Po tym poleceniu zostanie wygenerowany startowy obraz ISO BIOS/UEFI, który ładuje Gentoo do obrazu SquashFS przy użyciu Overlay FS, używając tmpfs do przechowywania danych. Jądro musi być zbudowane z obsługą Overlay FS w SquashFS. Jeśli jednak z jakiegoś powodu nie jest to wymagane, możesz użyć opcji „—cpio” zamiast —squashfs, aby spakować gentoo/ jako archiwum cpio. W takim przypadku archiwum zostanie rozpakowane bezpośrednio do tmpfs podczas uruchamiania, co najważniejsze jest to, że do rozpakowania systemu tmpfs miał wystarczającą ilość pamięci RAM.
Ciekawostka: jeśli obraz ISO utworzony przy użyciu opcji „-efi” zostanie rozpakowany na dysk flash FAT32 poprzez proste kopiowanie plików (cp -r), wówczas dysk Flash uruchomi się w trybie UEFI bez żadnego wstępnego przygotowania, dzięki specyfice programów do pobierania UEFI.
Oprócz startowych obrazów ISO można utworzyć dowolny dysk startowy z tymi samymi parametrami: USB, HDD, SSD itd., a dysk ten będzie mógł być nadal używany zgodnie z jego przeznaczeniem. W tym celu należy zamontować np. urządzenie USB i uruchomić na nim mkbootisofs. Wystarczy dodać jedną opcję „-bootable”, aby dysk, na którym znajduje się określony katalog, stał się bootowalny.
montuj /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable
Następnie urządzenie USB będzie można uruchomić z nakładką gentoo/ (nie zapomnij skopiować plików /boot/vmlinuz i /boot/initrd na urządzenie).
Jeżeli z jakiegoś powodu dysk nie został zamontowany w /mnt, a okaże się, że /mnt znajduje się na głównym urządzeniu /dev/sda, to bootloader zostanie przepisany na /dev/sda. Należy zachować ostrożność podczas określania opcji --bootable.
Podczas procesu uruchamiania Booty obsługuje wiele opcji, które można przekazać do modułu ładującego, grub.cfg lub syslinux.cfg. Domyślnie, bez żadnych opcji, wszystkie nakładki są ładowane i rozpakowywane do tmpfs (domyślna opcja ooty.use-shmfs). Aby użyć Overlay FS, należy użyć opcji booty.use-overlayfs. Opcja booty.copy-to-ram najpierw kopiuje nakładki do tmpfs, po czym je tylko łączy i ładuje. Po skopiowaniu urządzenie USB (lub inne urządzenie pamięci masowej) można usunąć.
Źródło: opennet.ru