Създаване на зареждащи образи boobstrap v1.2


Създаване на зареждащи образи boobstrap v1.2

След един месец неспешна разработка, се състоя пускът на boobstrap v1.2 — набор от инструменти на POSIX shell за създаване на старировъчни образи и устройства. Boobstrap позволява с една команда:

Създаване на initramfs образ, включващ всяка дистрибуция на GNU/Linux.

  • Създаване на старировъчни ISO образи с всяка дистрибуция на GNU/Linux.
  • Създаване на старировъчни USB, HDD, SSD устройства с всяка дистрибуция на GNU/Linux.
  • Особеността е, че след стартиране GNU/Linux ще работи или напълно в чист tmpfs, или с използване на Overlay FS и SquashFS образи, по ваш избор. Вие инсталирате всяка дистрибуция на GNU/Linux в директория, извършвате всички необходими настройки (може и в отделна директория), след което с една команда създавате старировъчно устройство, било то ISO образ, USB, HDD, SSD устройство, или можете да създадете и initrd образ със системата. Системата винаги ще бъде в едно и също състояние и в случай на повреда можете да се върнете в първоначалното състояние с натискането на един бутон Reset. Искате ли да преместите системата на друг хост или да създадете система от съществуващ контейнер? Boobstrap ще го направи.

От ключовите промени:

Добавена е поддръжка на зареждача syslinux, освен вече съществуващия grub2. Сега можете по избор да използвате или grub2, или syslinux, или и двете заедно, когато създавате старировъчно устройство или ISO образ, за което отговарят опциите —legacy-boot syslinux и —efi grub2, и можете да избирате какви режими на зареждане ще поддържа ISO образът.

  • Добавена е опция —bootable, която прави всяко блочно устройство старируемо. За създаване на ISO образи трябва да бъде използвана опцията —iso-9660.
  • Добавени са опции за зареждане на ядрото boobs.use-shmfs за копиране на съдържанието на всички оверлеи в tmpfs, boobs.use-overlayfs за зареждане с използване на Overlay FS, boobs.search-rootfs за избор на източник със системата, boobs.copy-to-ram за копиране на системата в паметта с последващо изключване на устройството.
  • Добавени са опции за зареждане на ядрото boobs.use-shmfs за копиране на съдържанието на всички overlay в tmpfs, boobs.use-overlayfs за зареждане с използване на Overlay FS, boobs.search-rootfs за избор на източник с операционната система, boobs.copy-to-ram за копиране на системата в паметта с последващо изключване на устройството.
  • Единствената задължителна зависимост за работа на boobstrap е cpio. Останалите зависимости са опционални: grub2, syslinux — необходими за създаване на зареждащи носители, cdrkit или xorriso по избор — за създаване на ISO, squashfs-tools за създаване на SquashFS, но нищо не пречи да използвате опцията —cpio вместо —squashfs за опаковане на вашия дистрибутив в архив. busybox ще бъде използван само ако е инсталиран, но ако не е, ще бъдат копирани всички необходими утилити от вашата система. Така работата на boobstrap е гарантирана практически навсякъде.

Например, следната команда ще създаде initrd образ, включвайки в него gentoo-chroot/ система, опакована като SquashFS образ, който успешно ще бъде зареден след зареждането на самия initrd. Напомням, за да използвате Overlay FS съвместно със SquashFS, е необходимо да предадете опцията на ядро boobs.use-overlayfs, в противен случай системата ще бъде разпакована в tmpfs. Всички допълнителни настройки могат да се извършат в отделна директория, например gentoo-settings/

# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd

initrd-образ с система вътре е удобен, когато е необходимо бързо да се разгръне система, например, чрез PXE, или на заредена система да се премине в initrd, използвайки команда kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, или в интерфейса на виртуална машина QEMU (възможно дори Proxmox), да се зареди от отдалечен източник, използвайки трите команди IPXE: kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Както виждате, дори обикновен initrd с вашата система вътре има множество варианти на употреба.

За създаване на зареждащи дискове и образи се използва командата mkbootisofs, например, така изглежда създаването на ISO образ с опция —iso-9660, използвайки syslinux за зареждане в Legacy-режим (BIOS) и grub2 за зареждане в EFI-режим (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

Можете да зададете един от режимите на зареждане или да не ги задавате изобщо, съответният ISO образ ще бъде успешно създаден.

Инсталацията на всеки носител с последващо зареждане от него се извършва с опцията —bootable. Необходимо е сами да създадете раздели на носителя (fdisk) и да ги форматирате (mkdosfs, mke2fs и т.н.), след което да монтирате устройството в директория.

# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ —bootable —legacy-boot grub2 —efi grub2
—overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs

Внимание! Опцията —bootable определя какво блочно устройство е монтирано и инсталира зареждача в това устройство. Ако забравите да монтирате устройството или неправилно посочите директория, която се намира, например, на /dev/sda, съответно зареждачът на /dev/sda ще бъде презаписан. Използвайте —bootable с внимание.

Инсталирането на всяка GNU/Linux система се свежда до една команда. Инсталацията може да се извърши на всеки HDD, SSD и т.н. Струва си да напомним, че системата все още работи с Overlay FS / SquashFS или се зарежда изцяло в tmpfs, по ваш избор.

Освен всичко друго, boobstrap предлага редица интересни характеристики и допълнителни възможности!

Например, можете да създадете фирмен boobstrap initrd с командата mkinitramfs `mktemp -d` > /boot/initrd и да се заредите в системата си с този initrd, посочвайки опции на ядрото boobs.use-overlayfs boobs.search-rootfs=/dev/sda1. В такъв случай /dev/sda1, където е инсталирана вашата домашна система, ще бъде свързана като read-only слой Overlay FS, а всички изменения, които направите, ще се запишат само временно в tmpfs. Можете да добавите опцията boobs.copy-to-ram и тогава цялата ваша система ще бъде копирана в RAM, а твърдият диск може да бъде изключен от компютъра. Удобно е, когато трябва да счупите нещо, а промените могат просто да се отменят с перезареждане. 🙂

Но какво, ако все пак трябва да запазите всички промени в системата? Например, инсталирали сте софтуер или нещо друго. При работа в чист tmpfs това за съжаление е невъзможно, но ако сте се заредили с Overlay FS, всички промени, които настъпват в системата, се запазват в отделна tmpfs директория: /mnt/overlayfs/rootfs-changes! Сценарият на употреба е много прост. Заредили сте се в системата си от USB устройство, поработили сте, искате да запазите всичко, което е променено, тогава създайте cpio архив и го поставете на същото USB устройство.

# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Можете да поставите архива до другите SquashFS и cpio "слоеве", така че при последващо зареждане архивът да бъде свързан като просто още един read-only слой. За да продължите да работите с промените, използвайте опцията за зареждане boobs.rootfs-changes=\/rootfs-changes.cpio. Опцията boobs.rootfs-changes свързва посочения слой с достъп за промяна. Слоят може да бъде блочен устройство, например можете да посочите \/dev\sdb1, тогава всички промени, направени в Overlay FS, просто ще се запазват на \/dev\/sdb1.

Boobstrap, въпреки наличието на широки възможности, все още е в етап на развитие, като всички ваши забележки и предложения се вземат под внимание!

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

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