booty - pono no ka hana ʻana i nā kiʻi boot a me nā drive

Hōʻike ʻia ka papahana pio, hiki iā ʻoe ke hana i nā kiʻi initrd bootable, nā faila ISO a i ʻole nā ​​​​drive i loaʻa i kekahi mahele GNU/Linux me hoʻokahi kauoha. Ua kākau ʻia ke code ma POSIX shell a mahele ʻia e laikini ma lalo o GPLv3.

Hoʻopili ʻia nā māhele āpau me Booty holo ʻo SHMFS (tmpfs) a i ʻole SquashFS + Overlay FS, ke koho a ka mea hoʻohana. Hoʻokumu ʻia ka māhele ʻana i hoʻokahi manawa, a i ka wā o ke kaʻina hana boot, koho ʻia nā ʻāpana e hiki ai iā ʻoe ke hoʻohana i nā tmpfs maʻemaʻe no ke kumu, a i ʻole hui pū ʻana o Overlay FS + SquashFS me ka hoʻopaʻa ʻana i nā loli i tmpfs. Hiki ke kope mua i ka pahu hoʻoili hiki ke hoʻoiho ʻia i ka RAM, kahi e hiki ai iā ʻoe ke wehe i ka USB drive ma hope o ka hoʻoiho ʻana a me ke kope ʻana i ka pahu hāʻawi i ka hoʻomanaʻo.

ʻO ka mea mua, hana ʻo Booty i kāna kiʻi initrd ponoʻī, hiki ke hoʻohana i nā pono ponoʻī mai ka ʻōnaehana o kēia manawa a i ʻole busybox. Hiki ke hoʻokomo (pack) i ka pahu hoʻolaha holoʻokoʻa i hoʻokomo ʻia ma ka papa kuhikuhi (chroot) i loko o initramfs. Hiki ke hoʻohana i kēia inā pono ʻoe e hoʻomaikaʻi i kahi ʻōnaehana me ke kexec: hoʻouka hou i ka initrd me kahi kernel hou a me kahi ʻōnaehana hou i loko o ka initrd.

Ke hana ʻana i kahi kiʻi initrd Booty-specific:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Ke hana ʻana i kahi kiʻi initrd me ka hāʻawi ʻana mai ka papa kuhikuhi "gentoo/":

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

Ma hope o kēia kiʻi initrd ua mākaukau loa no ka hoʻouka ʻana, no ka laʻana, ma o PXE a i ʻole ma kexec.

A laila, hana ʻo Booty i nā kiʻi me ka ʻōnaehana i kuhikuhi ʻia ʻo "overlays". No ka laʻana, hiki iā ʻoe ke hoʻouka (wehe i ka waihona) i kahi Gentoo kūlana i loko o kahi papa kuhikuhi ʻokoʻa, a laila e hana ʻia kahi waihona cpio a i ʻole SquashFS me kēia ʻōnaehana me ka hoʻohana ʻana iā Booty. Hiki iā ʻoe ke hoʻonohonoho i ka hāʻawi ʻana i kahi papa kuhikuhi kaʻawale, a kope i kāu mau hoʻonohonoho pilikino i kahi papa kuhikuhi ʻē aʻe. E hoʻouka ʻia kēia mau "papa" āpau ma luna o kekahi a hana i kahi ʻōnaehana hana hoʻokahi.

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

ʻO ka hope loa, ʻae ʻo Booty iā ʻoe e hana i nā kiʻi ISO bootable a me USB, HDD, SSD a me nā drive ʻē aʻe ma ka hoʻokomo ʻana i ka ʻōnaehana ma luna mai nā kiʻi. pio kākoʻo i ka hana ʻana i nā ʻōnaehana boot BIOS a me UEFI. Kākoʻo ʻia nā bootloaders GRUB2 a me SYSLINUX. Hiki ke hoʻohui ʻia nā Bootloaders, no ka laʻana, e hoʻohana iā SYSLINUX e hoʻokomo i ka BIOS, a me GRUB2 no UEFI. No ka hana ʻana i nā kiʻi ISO, pono ʻoe i ka pūʻolo cdrkit (genisoimage) a i ʻole xorriso (xorrisofs), e koho mai.

ʻO ka hana ʻē aʻe wale nō e pono ai e hoʻomākaukau i ka kernel (vmlinuz) no ka boot ma mua. Manaʻo ka mea kākau (Spoofing) e hoʻohana i ka "make defconfig". Ma mua o ka hana ʻana i ke kiʻi, pono ʻoe e hoʻomākaukau i kahi papa kuhikuhi ma ke kau ʻana i ka kernel vmlinuz a me ka "empty" initrd i hoʻomākaukau mua ʻia i hana ʻia i ka laʻana mua.

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

Me kēia hoʻomākaukau ʻana, hiki iā mākou ke hana i nā kiʻi ISO mai kēia papa kuhikuhi.

ʻO kēia kauoha e hana i kahi kiʻi ISO, ʻaʻole kahi bootable, kahi ISO wale nō:

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

No ka hana ʻana i kahi kiʻi boot, pono ʻoe e kuhikuhi i ke koho "--legacy-boot" no BIOS a me "--efi" no UEFI, kēlā me kēia; ʻo nā koho e lawe i ka grub2 a i ʻole syslinux ma ke ʻano he mau palena; hiki iā ʻoe ke kuhikuhi i hoʻokahi koho ( no ka laʻana, ʻaʻole pono ke kākoʻo boot UEFI, ʻaʻole hiki ke kuhikuhi ʻia).

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

A e like me ka wā ma mua, ua hoʻokomo ʻia nā kiʻi me ka ʻōnaehana i ka initrd, hiki iā ʻoe ke hoʻokomo iā lākou i ka ISO.

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

Ma hope o kēia kauoha, e hana ʻia kahi kiʻi bootable BIOS/UEFI ISO e hoʻouka iā Gentoo i ke kiʻi SquashFS me ka hoʻohana ʻana iā Overlay FS, me ka hoʻohana ʻana i nā tmpfs no ka mālama ʻikepili. Pono e kūkulu ʻia ka kernel me ke kākoʻo Overlay FS me SquashFS. Eia nō naʻe, inā no kekahi kumu ʻaʻole koi ʻia kēia, hiki iā ʻoe ke hoʻohana i ke koho "—cpio" ma kahi o -squashfs e hoʻopaʻa i ka gentoo/ ma ke ʻano he waihona cpio, a laila e wehe pololei ʻia ka waihona i nā tmpfs ma luna o ka boot, ka mea nui. ʻO ia no ka wehe ʻana i ka ʻōnaehana tmpfs ua lawa ka RAM.

ʻO ka mea hoihoi: inā wehe ʻia kahi kiʻi ISO e hoʻohana ana i ka koho "—efi" i kahi kaila uila FAT32 ma ke kope wale ʻana i nā faila (cp -r), a laila e hoʻomaka ka Flash drive i ke ʻano UEFI me ka ʻole o ka hoʻomākaukau mua ʻana, mahalo i nā kikoʻī. o nā mea hoʻoiho UEFI.

Ma waho aʻe o nā ISO bootable, hiki ke hana ʻia kekahi pahu bootable me nā ʻāpana like: USB, HDD, SSD, a pēlā aku, a hiki ke hoʻomau ʻia kēia kaʻa no kāna kumu i manaʻo ʻia. No ka hana ʻana i kēia, pono ʻoe e kau, no ka laʻana, kahi mea USB a holo i nā mkbootisofs ma luna. Hoʻohui wale i hoʻokahi koho "-bootable" i hiki ke hiki ke hoʻopaʻa ʻia ka drive kahi i kau ʻia ai ka papa kuhikuhi.

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

Ma hope o kēlā, hiki ke hoʻopaʻa ʻia ke kelepona USB me ka gentoo/ overlay (mai poina e kope i nā faila /boot/vmlinuz a me /boot/initrd i ka hāmeʻa).

Inā no kekahi kumu ʻaʻole i kau ʻia ka drive i / mnt, a ʻike ʻia aia / mnt ma ka mea nui / dev / sda, a laila e kākau hou ʻia ka bootloader i / dev / sda. Pono ʻoe e makaʻala i ka wehewehe ʻana i ke koho --bootable.

I ka wā o ke kaʻina hana boot, kākoʻo ʻo Booty i nā koho he nui i hiki ke hāʻawi ʻia i ka mea hoʻoili pahu, grub.cfg a i ʻole syslinux.cfg. Ma ka maʻamau, me ka ʻole o nā koho, hoʻouka ʻia nā uhi āpau a wehe ʻia i nā tmpfs (koho paʻamau ooty.use-shmfs). No ka hoʻohana ʻana iā Overlay FS pono e hoʻohana ʻia ke koho booty.use-overlayfs. ʻO ka koho booty.copy-to-ram e kope mua i nā mea i uhi ʻia i nā tmpfs, a laila hoʻopili wale iā lākou a hoʻouka iā lākou. Ke kope ʻia, hiki ke hoʻoneʻe ʻia ke kelepona USB (a i ʻole kahi mea mālama ʻē aʻe).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka