booty - zothandiza popanga zithunzi za boot ndi ma drive

Pulogalamu yoperekedwa zofunkha, zomwe zimakupatsani mwayi wopanga zithunzi za initrd zoyambira, mafayilo a ISO kapena ma drive omwe ali ndi kugawa kulikonse kwa GNU/Linux ndi lamulo limodzi. Khodiyo idalembedwa mu chipolopolo cha POSIX ndi wogawidwa ndi zololedwa pansi pa GPLv3.

Zogawa zonse zidayambika pogwiritsa ntchito Booty zimayendetsa SHMFS (tmpfs) kapena SquashFS + Overlay FS, kusankha kwa wogwiritsa ntchito. Kugawa kumapangidwa kamodzi, ndipo panthawi ya boot, magawo amasankhidwa omwe amakulolani kugwiritsa ntchito ma tmpfs oyera pa muzu, kapena kuphatikiza kwa Overlay FS + SquashFS ndi kujambula kusintha kwa tmpfs. Ndikotheka kukoperatu zida zogawira zomwe mungatsitse mu RAM, zomwe zimakupatsani mwayi wodula USB drive mutatha kutsitsa ndikutengera zida zogawira kukumbukira.

Choyamba, Booty imapanga chithunzi chake cha initrd, chomwe chitha kugwiritsa ntchito zida zakubadwa kuchokera pamakina apano kapena bokosi lotanganidwa. Ndizotheka kuphatikiza (paketi) zida zonse zogawa zomwe zidayikidwa mu bukhu (chroot) mu initramfs. Izi zitha kukhala zothandiza mukafuna kukweza makina pogwiritsa ntchito kexec: ingotsitsani initrd ndi kernel yatsopano ndi dongosolo latsopano mkati mwa initrd.

Kupanga chithunzi cha Booty-specific initrd:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Kupanga chithunzi cha initrd kuphatikiza kugawa kuchokera ku bukhu la "gentoo/":

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

Pambuyo pake chithunzi ichi cha initrd chakonzeka kutsitsa, mwachitsanzo, kudzera pa PXE kapena kudzera pa kexec.

Kenako, Booty imapanga zithunzi ndi dongosolo lotchulidwa ngati "zophimba". Mwachitsanzo, mutha kuyika (kutsegula zakale) Gentoo yokhazikika mu bukhu losiyana, pambuyo pake cpio archive kapena chithunzi cha SquashFS ndi dongosololi chidzapangidwa pogwiritsa ntchito Booty. Mukhozanso kukonza kugawa mu bukhu lapadera, ndikukopera makonda anu ku bukhu lina. "Zigawo" zonsezi zidzatsatiridwa motsatizana pamwamba pa wina ndi mzake ndikupanga njira imodzi yogwirira ntchito.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay documents/ --squashfs --output initrd

Pamapeto pake, Booty imakulolani kuti mupange zithunzi za ISO zosinthika ndi USB, HDD, SSD ndi ma drive ena pokhazikitsa dongosolo lomwe lili pamwambapa kuchokera pazithunzi. zofunkha imathandizira kupanga BIOS ndi UEFI boot system. GRUB2 ndi SYSLINUX bootloaders amathandizidwa. Ma bootloaders amatha kuphatikizidwa, mwachitsanzo, gwiritsani ntchito SYSLINUX kuyambitsa mu BIOS, ndi GRUB2 ya UEFI. Kuti mupange zithunzi za ISO, mudzafunikanso phukusi la cdrkit (genisoimage) kapena xorriso (xorrisofs), kuti musankhepo.

Chowonjezera chokhacho chofunikira ndikukonzekeretsa kernel (vmlinuz) pa boot pasadakhale. Wolemba (Spoofing) amalimbikitsa kugwiritsa ntchito "panga defconfig". Musanapange chithunzicho, muyenera kukonzekera chikwatu poyika vmlinuz kernel ndi initrd yokonzedwa kale "yopanda kanthu" yomwe idapangidwa pachitsanzo choyamba.

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

Ndi izi kukonzekera kwatha, tsopano titha kupanga zithunzi za ISO kuchokera mu bukhuli.

Lamulo lotsatirali lipanga chithunzi cha ISO, osati choyambira, koma ISO:

mkdir iso/
mkbootisofs iso/ --output archive.iso

Kuti mupange chithunzi cha boot, muyenera kufotokoza njira ya "-legacy-boot" ya BIOS ndi "--efi" ya UEFI, motsatana; zosankhazo zimatengera grub2 kapena syslinux ngati magawo; mutha kutchulanso njira imodzi yokha ( mwachitsanzo, thandizo la boot la UEFI silikufunika , mwina silingatchulidwe).

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

Ndipo monga kale, zithunzi zomwe zili ndi dongosolo zidaphatikizidwa mu initrd, mutha kuziphatikiza mu ISO.

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

Pambuyo pa lamuloli, chithunzi cha BIOS/UEFI ISO chidzapangidwa chomwe chimanyamula Gentoo mu chithunzi cha SquashFS pogwiritsa ntchito Overlay FS, pogwiritsa ntchito tmpfs posungira deta. Kernel iyenera kumangidwa ndi thandizo la Overlay FS ndi SquashFS. Komabe, ngati pazifukwa zina izi sizikufunika, mutha kugwiritsa ntchito njira ya "-cpio" m'malo mwa -squashfs kuyika gentoo/ monga cpio archive, pomwe zosungidwazo zidzatsegulidwa mwachindunji mu tmpfs pa boot, chinthu chachikulu. ndikuti pakumasula tmpfs system anali ndi RAM yokwanira.

Chochititsa chidwi: ngati chithunzi cha ISO chopangidwa pogwiritsa ntchito njira ya "-efi" chatsegulidwa pa FAT32 flash drive pongotengera mafayilo (cp -r), ndiye kuti Flash drive idzayamba mu UEFI mode popanda kukonzekera koyambirira, chifukwa cha zomwe zafotokozedwera. otsitsa a UEFI.

Kuphatikiza pa ma ISO a bootable, galimoto iliyonse yoyendetsa galimoto ikhoza kupangidwa ndi magawo omwewo: USB, HDD, SSD, ndi zina zotero, ndipo galimotoyi ikhoza kupitirizabe kugwiritsidwa ntchito pa cholinga chake. Kuti muchite izi, muyenera kukwera, mwachitsanzo, chipangizo cha USB ndikuyendetsa mkbootisofs pamenepo. Ingowonjezerani njira imodzi "-bootable" kuti galimoto yomwe chikwatu chomwe chatchulidwacho chikhale choyambira.

phiri /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

Pambuyo pake, chipangizo cha USB chidzakhala chosinthika ndi gentoo/ overlay (musaiwale kukopera mafayilo /boot/vmlinuz ndi /boot/initrd ku chipangizocho).

Ngati pazifukwa zina galimotoyo sinakhazikitsidwe mu / mnt, ndipo zikuwoneka kuti / mnt ili pa chipangizo chachikulu / dev/sda, ndiye kuti bootloader idzalembedwanso ku /dev/sda. Muyenera kusamala pofotokoza --bootable njira.

Panthawi yotsegulira, Booty imathandizira zosankha zingapo zomwe zitha kuperekedwa kwa bootloader, grub.cfg kapena syslinux.cfg. Mwachikhazikitso, popanda zosankha zilizonse, zowunjikana zonse zimakwezedwa ndikumasulidwa mu tmpfs (chosasinthika njira ooty.use-shmfs). Kuti mugwiritse ntchito Overlay FS njira ya booty.use-overlayfs iyenera kugwiritsidwa ntchito. Chosankha cha booty.copy-to-ram choyamba chimakopera pamwamba pa tmpfs, pambuyo pake chimangowalumikiza ndikuchikweza. Mukakopera, chipangizo cha USB (kapena chipangizo china chosungira) chitha kuchotsedwa.

Source: opennet.ru

Kuwonjezera ndemanga