booty - помощна програма за създаване на стартиращи изображения и дискове

Представена програма Плячка, което ви позволява да създавате стартиращи initrd изображения, ISO файлове или устройства, съдържащи всяка GNU/Linux дистрибуция с една команда. Кодът е написан в POSIX shell и разпространява се от лицензиран под GPLv3.

Всички дистрибуции, стартирани с помощта на Booty, изпълняват или SHMFS (tmpfs), или SquashFS + Overlay FS, по избор на потребителя. Разпределението се създава веднъж и по време на процеса на зареждане се избират параметри, които ви позволяват да използвате чист tmpfs за root или комбинация от Overlay FS + SquashFS със запис на промените в tmpfs. Възможно е предварително да копирате комплекта за разпространение за изтегляне в RAM, което ви позволява да изключите USB устройството след изтегляне и копиране на комплекта за разпространение в паметта.

На първо място, Booty генерира свой собствен initrd образ, който може да използва собствени помощни програми от текущата система или busybox. Възможно е да включите (опаковате) целия комплект за разпространение, инсталиран в директорията (chroot) в initramfs. Това може да бъде полезно, когато трябва да надстроите система с помощта на kexec: просто презаредете initrd с ново ядро ​​и нова система в initrd.

Създаване на специфично за Booty initrd изображение:

mkdir initramfs/
mkinitramfs initramfs/ --изход initrd

Създаване на initrd изображение, включително дистрибуцията от директорията “gentoo/”:

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

След което това initrd изображение е напълно готово за зареждане, например чрез PXE или чрез kexec.

След това Booty генерира изображения със системата, определена като „наслагвания“. Например, можете да инсталирате (разопаковате архива) условен Gentoo в отделна директория, след което с помощта на Booty ще бъде генериран cpio архив или SquashFS изображение с тази система. Можете също така да конфигурирате разпространението в отделна директория и да копирате личните си настройки в друга директория. Всички тези „слоеве“ ще бъдат последователно заредени един върху друг и ще създадат една работеща система.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay настройки/ --overlay документи/ --squashfs --output initrd

В крайна сметка Booty ви позволява да създавате стартиращи ISO изображения и USB, HDD, SSD и други устройства, като инсталирате горната система от изображения. Плячка поддържа създаването на системи за стартиране на BIOS и UEFI. Поддържат се зареждащи програми GRUB2 и SYSLINUX. Буутлоудърите могат да се комбинират, например, използвайте SYSLINUX за зареждане в BIOS и GRUB2 за UEFI. За да създадете ISO изображения, ще ви е необходим допълнително пакетът cdrkit (genisoimage) или xorriso (xorrisofs), от който да избирате.

Единственото необходимо допълнително действие е да подготвите ядрото (vmlinuz) за зареждане предварително. Авторът (Spoofing) препоръчва използването на "make defconfig". Преди да създадете изображението, трябва да подготвите директория, като поставите ядрото vmlinuz и предварително подготвения „празен“ initrd, създаден в първия пример.

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

С това подготовката е завършена, сега можем да създадем ISO изображения от тази директория.

Следната команда ще създаде ISO изображение, не стартиращо, а само ISO:

mkdir iso/
mkbootisofs iso/ --изходен архив.iso

За да създадете изображение за зареждане, трябва да посочите опцията „--legacy-boot“ за BIOS и съответно „--efi“ за UEFI; опциите приемат или grub2, или syslinux като параметри; можете също да посочите само една опция ( например не е необходима поддръжка за стартиране на UEFI, може да не е посочена).

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

И както преди, изображенията със системата бяха включени в initrd, можете да ги включите в ISO.

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

След тази команда ще бъде генерирано стартиращо BIOS/UEFI ISO изображение, което зарежда Gentoo в изображението на SquashFS с помощта на Overlay FS, използвайки tmpfs за съхранение на данни. Ядрото трябва да бъде изградено с поддръжка на Overlay FS със SquashFS. Ако обаче по някаква причина това не се изисква, можете да използвате опцията „—cpio” вместо —squashfs, за да пакетирате gentoo/ като cpio архив, в който случай архивът ще бъде разопакован директно в tmpfs при зареждане, най-важното е, че за разопаковане на системата tmpfs имаше достатъчно RAM.

Интересен факт: ако ISO изображение, създадено с помощта на опцията “—efi”, се разопакова на FAT32 флаш устройство чрез просто копиране на файлове (cp -r), тогава флаш устройството ще стартира в UEFI режим без предварителна подготовка, благодарение на спецификата на програми за изтегляне на UEFI.

В допълнение към ISO за стартиране, всяко стартиращо устройство може да бъде създадено със същите параметри: USB, HDD, SSD и т.н., и това устройство може да продължи да се използва по предназначение. За да направите това, трябва да монтирате например USB устройство и да стартирате mkbootisofs на него. Просто добавете една опция „—bootable“, така че устройството, на което се намира определената директория, да стане стартиращо.

монтиране /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

След това USB устройството ще стане стартиращо с gentoo/ наслагването (не забравяйте да копирате файловете /boot/vmlinuz и /boot/initrd на устройството).

Ако по някаква причина устройството не е монтирано в /mnt и се окаже, че /mnt се намира на главното устройство /dev/sda, тогава буутлоудърът ще бъде пренаписан в /dev/sda. Трябва да внимавате, когато задавате опцията --bootable.

По време на процеса на зареждане Booty поддържа редица опции, които могат да бъдат предадени на зареждащия механизъм grub.cfg или syslinux.cfg. По подразбиране, без никакви опции, всички наслагвания се зареждат и разопаковат в tmpfs (опция по подразбиране ooty.use-shmfs). За да използвате Overlay FS, трябва да се използва опцията booty.use-overlayfs. Опцията booty.copy-to-ram първо копира наслагвания в tmpfs, след което само ги свързва и зарежда. Веднъж копирано, USB устройството (или друго устройство за съхранение) може да бъде премахнато.

Източник: opennet.ru

Добавяне на нов коментар