Създаване на стартиращи образи boobstrap v1.0


Създаване на стартиращи образи boobstrap v1.0

Искам да представя на вашето внимание фреймуърк на име boobstrap, написан на POSIX shell, за създаване на загрузъчни образи с дистрибуции на GNU/Linux. Фреймуъркът позволява да преминете през целия процес в три прости стъпки: от инсталирането на системата в chroot, създаването на initramfs образ, включващо системата от chroot, и в крайна сметка загрузъчния ISO образ. boobstrap включва три утилити: mkbootstrap, mkinitramfs и mkbootisofs съответно.

mkbootstrap инсталира системата в отделна директория, има нативна поддръжка за CRUX, а в случай на Arch Linux / Manjaro и дистрибуции на базата на Debian трябва да се използват външни утилити pacstrap, basestrap и debootstrap съответно.

mkinitramfs създава initramfs образ, можете да използвате инсталираната система в директорията като "оверлей", компресиран с помощта на SquashFS, или да стартирате системата директно в tmpfs. Например, командата mkinitramfs `mktemp -d` —overlay "arch-chroot/" —overlay "\/home" —squashfs-xz —output initrd ще създаде initrd файл, включващ два оверлея с "arch-chroot/" системата и вашия "\/home", компресирани с помощта на SquashFS, който по-късно можете да заредите чрез PXE в tmpfs или да създадете загрузъчен ISO образ с този initrd.

mkbootisofs създава BIOS / UEFI загрузъчен ISO образ от указаната директория. В директорията е достатъчно да поставите \/boot\/vmlinuz и \/boot\/initrd.

boobstrap не използва busybox, а за създаване на работна среда initramfs копира минимален набор от програми с помощта на ldd, необходими за зареждане и превключване в системата. Списъкът с програми за копиране, както и всичко останало, може да се настрои чрез конфигурационния файл \/etc\/boobstrap\/boobstrap.conf. Можете също така да инсталирате всяка минималистична дистрибуция в отделен chroot, от който след това да създадете вече пълноценна initramfs среда. Като такава минималистична, но в същото време пълноценна среда се предлага шаблонът "crux_gnulinux-embedded", който след xz заема компромисни 37 MB. busybox, освен размера си, 3-5 MB спрямо 30-50 MB пълноценно GNU/Linux среди, не предлага никакви допълнителни предимства, по този начин използването на busybox в проекта не се вижда като целесъобразно.

Как бързо да проверите работоспособността и да започнете работа? Инсталирайте и стартирайте.

# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Също така е необходимо да инсталирате зависимости, а именно: cpio, grub, grub-efi, dosfstools, xorriso. Използването на squashfs-tools не е задължително, можете да работите в tmpfs при подходящ обем оперативна памет. В случай, че в системата липсва нещо, boobstrap ще ви уведоми при стартиране.

За опростяване на създаването на конфигурации boobstrap предлага да се използват „шаблони“ и „системи“, чиято същност е да използвате „шаблони“ (bootstrap-templates/) за бързо инсталиране на системи от файл, а самите „системи“ (bootstrap-systems/) да се използват за настройка на финални конфигурации.

Например, стартирането на скрипта boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild ще инсталира минимална конфигурация на системата CRUX GNU/Linux и ще я запази в файла crux_gnulinux-embedded.rootfs, след което стартирате boobstrap/bootstrap-systems/default/crux_gnulinux.bbuild, който ще зареди първоначалната конфигурация от споменатия файл, ще извърши необходимото настройване и ще подготви зареждаща ISO. Това е удобно, когато например много системи използват еднотипна конфигурация: вместо всеки път да описвате същия набор от пакети, използвате един шаблон, на базата на който след това създавате зареждащи изображения на системи с финална конфигурация.

Къде да използвате всичко това?

Настройвате системата в файл веднъж и със стартирането му извършвате изграждането и/или обновяването ѝ. Системата работи в tmpfs, което я прави еднократна по същество. В случай на повреда на системата, с едно натискане на бутона Reset се връщате в първоначалното състояние. Можете спокойно да изпълните rm -rf /.

Можете да настройвате конфигурациите на всичките си системи локално, да създавате изображения, да ги тествате в виртуална машина или на отделно „желязо“, след което да ги заредите на отдалечен сървър и с изпълнението на два команди kexec -l /vmlinuz —initrd=/initrd && kexec -e да обновите цялата система веднага, презареждайки я в tmpfs.

По подобен начин можете да прехвърлите всички системи, например на VDS, да работите в tmpfs и да криптирате диска /dev/vda, използвайки го само за данни, без да е необходимо да държите операционната система на него. Единствената „точка на leakage на информация“ в такъв случай ще бъде само „студеният дамп“ на паметта на вашата виртуална машина, а в случай на компрометиране на системата (например чрез подбиране на парола за ssh или уязвимост в exim), можете да заредите нов ISO чрез „панела за управление“ на вашия доставчик, за да върнете VDS в действие, като не забравите да редактирате конфигурацията на системата, затваряйки всички уязвимости. Това е по-бързо от преинсталирането, последващата настройка и/или възстановяването от бекъп, тъй като по същество зареждането на ISO с вашата система е вашият бекъп. „Седем бедствия – един Reset.“

В крайна сметка, можете да създадете всякакъв дистрибутив за вашите нужди, да го запишете на USB флашка и да работите с него, актуализирайки го при необходимост и отново записвайки го на USB флашка. Всички данни да се съхраняват в „облака“. Няма нужда повече да се притеснявате за запазването на системата и да правите бекъп, когато системата, повтарям, по същество стана „еднократна“.

Вашите желания, предложения и коментари са добре дошли.

В хранилището по следната връзка има подробен README файл (на английски) с описание на всяка утилита и примери за използване, както и подробна документация на руски и история на развитието, налични по следната връзка: Комплекс от стартови скриптове boobstrap.

Източник: linux.org.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster