Стварэнне загрузных выяў 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 для капіявання сістэмы у памяць з наступным адключэннем прылады.
  • Адзіная абавязковая залежнасць для працы 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-mode (BIOS) і grub2 для загрузкі ў 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

Вы можаце пазначыць адзін з рэжымаў загрузкі, альбо не паказваць іх зусім, якая адпавядае 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

Дадаць каментар