Booty - жүктөө сүрөттөрүн жана дисктерди түзүү үчүн программа

Программа тартууланды Booty, бул сизге бир буйрук менен жүктөлүүчү initrd сүрөттөрүн, ISO файлдарын же каалаган GNU/Linux дистрибуциясын камтыган дисктерди түзүүгө мүмкүндүк берет. Код POSIX кабыгында жазылган жана жайылуу GPLv3 боюнча лицензияланган.

Booty аркылуу жүктөлгөн бардык дистрибуциялар колдонуучунун тандоосу боюнча SHMFS (tmpfs) же SquashFS + Overlay FS менен иштейт. Бөлүштүрүү бир жолу түзүлөт жана жүктөө процессинде тамыр үчүн таза tmpfs же tmpfs өзгөртүүлөрүнүн жазуусу менен Overlay FS + SquashFS комбинациясын колдонууга мүмкүндүк берген параметрлер тандалып алынат. Жүктөлүп алынуучу бөлүштүрүүчү комплектти RAMга алдын ала көчүрүп алса болот, бул дистрибьютордук комплектти эстутумга жүктөө жана көчүрүүдөн кийин USB дискти ажыратууга мүмкүндүк берет.

Биринчиден, Booty өзүнүн initrd сүрөтүн жаратат, ал учурдагы тутумдан же busyboxтан жергиликтүү утилиталарды колдоно алат. Каталогдо (chroot) орнотулган бүтүндөй бөлүштүрүүчү комплектти initramfs ичине киргизүү (пакет) мүмкүн. Бул kexec аркылуу системаны жаңыртуу керек болгондо пайдалуу болушу мүмкүн: жөн гана initrdди жаңы ядро ​​жана initrd ичиндеги жаңы система менен кайра жүктөңүз.

Booty үчүн атайын initrd сүрөтүн түзүү:

mkdir initramfs/
mkinitramfs initramfs/ --output 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 settings/ --overlay документтер/ --squashfs --output initrd

Акыр-аягы, Booty сүрөттөрдөн жогорудагы системаны орнотуу менен жүктөлүүчү ISO сүрөттөрүн жана USB, HDD, SSD жана башка дисктерди түзүүгө мүмкүндүк берет. Booty BIOS жана UEFI жүктөө системаларын түзүүнү колдойт. GRUB2 жана SYSLINUX жүктөгүчтөрү колдоого алынат. Жүктөөчүлөрдү айкалыштырса болот, мисалы, BIOS'ка жүктөө үчүн SYSLINUX жана UEFI үчүн GRUB2 колдонуңуз. 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/ --output archive.iso

Жүктөө сүрөтүн түзүү үчүн BIOS үчүн “--legacy-boot” опциясын жана UEFI үчүн “--efi” параметрин көрсөтүшүңүз керек; параметрлер параметр катары 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 аркылуу жүктөйт. Ядро SquashFS менен Overlay FS колдоосу менен түзүлүшү керек. Бирок, кандайдыр бир себептерден улам бул талап кылынбаса, cpio архиви катары gentoo/ пакеттөө үчүн -squashfs ордуна “—cpio” опциясын колдонсоңуз болот, бул учурда архив жүктөлгөндө түздөн-түз tmpfs пакетине чыгарылат, эң негизгиси Бул системаны ачуу үчүн tmpfs жетиштүү RAM болгон.

Кызыктуу факт: эгерде “—efi” опциясы аркылуу түзүлгөн ISO сүрөтү жөн гана файлдарды (cp -r) көчүрүү жолу менен FAT32 флэш-дискине таңгактан чыгарылса, анда Флэш-диск UEFI режиминде эч кандай алдын ала даярдыксыз жүктөлөт. UEFI- жүктөөчүлөрдүн.

Жүктөлүүчү ISOлардан тышкары, каалаган жүктөөчү дискти ошол эле параметрлер менен түзсө болот: USB, HDD, SSD ж. Бул үчүн, мисалы, USB түзмөгүн орнотуп, ага mkbootisofs иштетишиңиз керек. Көрсөтүлгөн каталог жайгашкан диск жүктөлүүчү болуп калышы үчүн, жөн гана "-жүктөө" опциясын кошуңуз.

орнотуу /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

Андан кийин, USB түзмөгү gentoo/ overlay менен жүктөлөт (түзмөккө /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 түзмөгүн (же башка сактоо түзүлүшүн) алып салууга болот.

Source: opennet.ru

Комментарий кошуу