i-booty - insiza yokwakha izithombe zokuqalisa namadrayivu

Uhlelo lwethulwe Booty, okukuvumela ukuthi udale izithombe ze-initrd ezibhuthayo, amafayela e-ISO noma amadrayivu aqukethe noma yikuphi ukusatshalaliswa kwe-GNU/Linux ngomyalo owodwa. Ikhodi ibhalwe ku-POSIX igobolondo futhi isatshalaliswa ngu ilayisensi ngaphansi kwe-GPLv3.

Konke ukusabalalisa kuqaliswe kusetshenziswa i-Booty sebenzisa i-SHMFS (tmpfs) noma i-SquashFS + Imbondela FS, ukukhetha komsebenzisi. Ukusabalalisa kudalwe kanye, futhi phakathi nenqubo yokuqalisa, imingcele ikhethiwe ekuvumela ukuthi usebenzise ama-tmpfs ahlanzekile empande, noma inhlanganisela ye-Overlay FS + SquashFS nezinguquko zokurekhoda kuma-tmpfs. Kungenzeka ukukopisha ngaphambilini ikhithi yokusabalalisa elandekayo ku-RAM, ekuvumela ukuthi unqamule idrayivu ye-USB ngemva kokulanda nokukopisha ikhithi yokusabalalisa kumemori.

Okokuqala, i-Booty ikhiqiza esayo isithombe se-initrd, esingasebenzisa izinsiza zomdabu kusuka ohlelweni lwamanje noma ibhokisi elimatasa. Kungenzeka ukufaka (iphakethe) yonke ikhithi yokusabalalisa efakwe kuhla lwemibhalo (chroot) kuma-initramfs. Lokhu kungaba usizo uma udinga ukuthuthukisa isistimu usebenzisa i-kexec: vele ulayishe kabusha i-initrd nge-kernel entsha kanye nesistimu entsha ngaphakathi kwe-initrd.

Ukudala isithombe se-Booty-specific initrd:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Ukudala isithombe se-initrd okuhlanganisa nokusatshalaliswa okuvela kuhla lwemibhalo lwe-“gentoo/”:

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

Ngemva kwalokho lesi sithombe se-initrd sesilungele ngokuphelele ukulayishwa, isibonelo, nge-PXE noma nge-kexec.

Okulandelayo, i-Booty ikhiqiza izithombe ngohlelo olucaciswe “njengembondela”. Isibonelo, ungafaka (ukhiphe ingobo yomlando) i-Gentoo enemibandela kumkhombandlela ohlukile, ngemva kwalokho ingobo yomlando ye-cpio noma isithombe se-SquashFS esinalolu hlelo sizokhiqizwa kusetshenziswa i-Booty. Ungase futhi ulungiselele ukusatshalaliswa kuhla lwemibhalo oluhlukile, futhi ukopishe izilungiselelo zakho zomuntu siqu kolunye uhla lwemibhalo. Zonke lezi “zendlalelo” zizolayishwa ngokulandelana kwazo phezu kwesinye futhi zidale uhlelo olulodwa lokusebenza.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --izilungiselelo zokumbondela/ --imibhalo yokumbondela/ --squashfs --output initrd

Ekugcineni, i-Booty ikuvumela ukuthi udale izithombe ze-ISO ezibhuthayo kanye ne-USB, i-HDD, i-SSD namanye amadrayivu ngokufaka uhlelo olungenhla ezithombeni. Booty isekela ukwakhiwa kwe-BIOS ne-UEFI boot systems. I-GRUB2 kanye nama-bootloaders e-SYSLINUX ayasekelwa. Ama-bootloader angahlanganiswa, isibonelo, sebenzisa i-SYSLINUX ukuze uqalise ku-BIOS, kanye ne-GRUB2 ye-UEFI. Ukuze udale izithombe ze-ISO, uzodinga futhi iphakheji ye-cdrkit (genisoimage) noma ye-xorriso (xorrisofs), ongakhetha kuyo.

Okuwukuphela kwesenzo esengeziwe esidingekayo ukulungisa i-kernel (vmlinuz) ukuze iqale kusenesikhathi. Umbhali (Spoofing) uncoma ukusebenzisa "make defconfig". Ngaphambi kokudala isithombe, udinga ukulungisa inkomba ngokubeka i-vmlinuz kernel kanye ne-initrd "engenalutho" elungiselelwe ngaphambilini eyakhiwe esibonelweni sokuqala.

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

Ngalokhu ukulungiswa sekuqediwe, manje singakwazi ukudala izithombe ze-ISO kusuka kulolu hlu lwemibhalo.

Umyalo olandelayo uzodala isithombe se-ISO, hhayi esovulelekayo, i-ISO nje:

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

Ukuze udale isithombe sokuqalisa, udinga ukucacisa inketho ethi “--legacy-boot” ye-BIOS kanye “--efi” ye-UEFI, ngokulandelana; izinketho zithatha i-grub2 noma i-syslinux njengamapharamitha; ungaphinda ucacise inketho eyodwa kuphela ( isibonelo, ukusekelwa kwe-UEFI boot ayidingeki , ingase ingacaciswanga).

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

Futhi njengangaphambili, izithombe ezinohlelo zafakwa ku-initrd, ungazifaka ku-ISO.

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

Ngemuva kwalo myalo, kuzokwenziwa isithombe se-BIOS/UEFI ISO esivulelekayo esilayisha iGentoo esithombeni se-SquashFS kusetshenziswa i-Overlay FS, kusetshenziswa ama-tmpfs ekugcineni idatha. I-kernel kufanele yakhiwe ngokusekelwa kwe-Overlay FS nge-SquashFS. Kodwa-ke, uma ngesizathu esithile lokhu kungadingeki, ungasebenzisa inketho ethi “—cpio” esikhundleni sokuthi—squashfs ukupakisha i-gentoo/ njengendawo yomlando ye-cpio, lapho ingobo yomlando izokhishwa ngokuqondile ku-tmpfs ebhuthini, into esemqoka. ukuthi ekukhipheni ama-tmpfs esistimu abe ne-RAM eyanele.

Iqiniso elithakazelisayo: uma isithombe se-ISO esidalwe kusetshenziswa inketho ethi “—efi” sikhishwa ku-FAT32 flash drive ngokumane sikopishe amafayela (cp -r), i-Flash drive izoqalisa ngemodi ye-UEFI ngaphandle kokulungiselela kokuqala, ngenxa yemininingwane ebekiwe. yabalandi be-UEFI.

Ngokungeziwe kuma-ISO asebenzayo, noma iyiphi idrayivu ebhuthayo ingadalwa ngemingcele efanayo: i-USB, i-HDD, i-SSD, njalonjalo, futhi le drayivu ingaqhubeka nokusetshenziselwa injongo yayo ehlosiwe. Ukuze wenze lokhu, udinga ukukhweza, isibonelo, idivayisi ye-USB bese usebenzisa i-mkbootisofs kuyo. Vele wengeze inketho eyodwa "-i-bootable" ukuze idrayivu lapho uhla lwemibhalo olushiwo lutholakala khona lube yi-bootable.

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

Ngemva kwalokho, idivayisi ye-USB izosebenza nge-gentoo/ imbondela (ungakhohlwa ukukopisha /boot/vmlinuz kanye /boot/initrd amafayela kudivayisi).

Uma ngesizathu esithile idrayivu ingazange ifakwe ku-/mnt, futhi kuvela ukuthi i-/mnt itholakala kudivayisi eyinhloko /dev/sda, i-bootloader izobhalwa kabusha ku-/dev/sda. Kufanele uqaphele lapho ucacisa inketho --bootable.

Phakathi nenqubo yokuqalisa, i-Booty isekela inani lezinketho ezingadluliselwa kusilayishi sebhuthi, grub.cfg noma syslinux.cfg. Ngokuzenzakalelayo, ngaphandle kwanoma yiziphi izinketho, zonke izimbondela ziyalayishwa futhi zikhishwe kuma-tmpfs (inketho ezenzakalelayo ooty.use-shmfs). Ukuze usebenzise i-Overlay FS inketho ye-booty.use-overlayfs kufanele isetshenziswe. Inketho ye-booty.copy-to-ram kuqala ikopisha imbondela kuma-tmpfs, ngemuva kwalokho iwaxhuma futhi iwalayishe. Uma isikopishiwe, idivayisi ye-USB (noma enye idivayisi yesitoreji) ingakhishwa.

Source: opennet.ru

Engeza amazwana