i-booty-into eluncedo ekudaleni imifanekiso ye-boot kunye ne-drives

Inkqubo inikezelwe okuthinjiweyo, ekuvumela ukuba wenze imifanekiso eqalekayo ye-initrd, iifayile ze-ISO okanye iidrive eziqulathe naluphi na unikezelo lwe-GNU/Linux ngomyalelo omnye. Ikhowudi ibhalwe kwi POSIX iqokobhe kunye isasazwa ngu ilayisenisi phantsi kwe-GPLv3.

Lonke unikezelo luqaliswe kusetyenziswa iBooty sebenzisa nokuba yi-SHMFS (tmpfs) okanye SquashFS + Ukwaleka kweFS, ukhetho lomsebenzisi. Unikezelo lwenziwe kanye, kwaye ngexesha lenkqubo yokuqalisa, iiparamitha zikhethiwe ezikuvumela ukuba usebenzise i-tmpfs ecocekileyo yengcambu, okanye indibaniselwano ye-Overlay FS + SquashFS ngokurekhoda utshintsho kwi-tmpfs. Kunokwenzeka ukukopisha kwangaphambili ikhithi yokusabalalisa ekhuphekayo kwi-RAM, ekuvumela ukuba ukhuphe i-USB drive emva kokukhuphela kunye nokukopisha ikiti yokusabalalisa kwimemori.

Okokuqala, iBooty ivelisa owayo umfanekiso we-initrd, onokusebenzisa izinto eziluncedo zomthonyama kwindlela yangoku okanye ibhokisi exakekileyo. Kuyenzeka ukuquka (ukupakisha) yonke ikhithi yokuhambisa efakwe kulawulo (chroot) kwi-initramfs. Oku kunokuba luncedo xa ufuna ukunyusa inkqubo usebenzisa i kexec: phinda ulayishe kwakhona initrd nge kernel entsha kunye nenkqubo entsha ngaphakathi kwe initrd.

Ukwenza umfanekiso we-nitrd othe ngqo:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Ukwenza umfanekiso we-initrd ukuquka unikezelo olusuka kulawulo lwe-"gentoo/":

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

Emva koko lo mfanekiso we-initrd ulungele ngokupheleleyo ukulayishwa, umzekelo, nge-PXE okanye nge-kexec.

Okulandelayo, i-Booty ivelisa imifanekiso ngenkqubo echazwe "njengezinto ezingaphezulu". Umzekelo, ungafaka (ukhuphe ugcino) iGentoo enemiqathango kulawulo olwahlukileyo, emva koko ugcino lwecpio okanye umfanekiso weSquashFS onesixokelelwano uyakwenziwa kusetyenziswa iBooty. Ungaqwalasela kwakhona unikezelo kulawulo olwahlukileyo, kwaye ukhuphele izicwangciso zakho zobuqu komnye uvimba weefayili. Zonke ezi "leya" ziya kulayishwa ngokulandelelanayo ngaphezulu komnye kwaye zenze inkqubo enye yokusebenza.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --iisetingi zokwaleka/ --amaxwebhu angaphezulu/ --squashfs --output initrd

Ekugqibeleni, i-Booty ikuvumela ukuba wenze imifanekiso ye-ISO evulelekileyo kunye ne-USB, i-HDD, i-SSD kunye nezinye ii-drives ngokufaka inkqubo engentla kwimifanekiso. okuthinjiweyo ixhasa ukuyilwa kwe-BIOS kunye ne-UEFI iinkqubo zokuqalisa. I-GRUB2 kunye ne-SYSLINUX i-bootloaders iyaxhaswa. I-Bootloaders inokudibaniswa, umzekelo, sebenzisa i-SYSLINUX ukuqala kwi-BIOS, kunye ne-GRUB2 ye-UEFI. Ukwenza imifanekiso ye-ISO, uya kudinga i-cdrkit (genisoimage) okanye iphakheji ye-xorriso (xorrisofs), ukukhetha kuyo.

Isenzo esongezelelweyo esifunekayo kukulungisa ikernel (vmlinuz) yokuqalisa kwangaphambili. Umbhali (Spoofing) uncoma ukusebenzisa "make defconfig". Ngaphambi kokudala umfanekiso, kufuneka ulungiselele i-directory ngokubeka i-kernel ye-vmlinuz kunye ne-initrd elungiselelwe ngaphambili "engenanto" eyenziwe kumzekelo wokuqala.

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

Ngolu lungiselelo lugqityiwe, ngoku singenza imifanekiso ye-ISO ukusuka kolu luhlu.

Lo myalelo ulandelayo uyakwenza umfanekiso we-ISO, hayi ovulelekileyo, i-ISO nje:

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

Ukwenza umfanekiso wesiqalo, kufuneka uchaze "--legacy-boot" ukhetho lweBIOS kunye "--efi" ye-UEFI, ngokulandelelana; iinketho zithatha nokuba yi-grub2 okanye i-syslinux njengeparameters; ungakhankanya ukhetho olunye kuphela ( umzekelo, inkxaso yesiqalo ye UEFI ayifuneki , isenokungachazwa).

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

Kwaye njengangaphambili, imifanekiso enenkqubo ibandakanyiwe kwi-initrd, ungazibandakanya kwi-ISO.

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

Emva kwalo myalelo, kuya kuveliswa umfanekiso we-BIOS/UEFI ISO olayisha iGentoo kumfanekiso weSquashFS usebenzisa i-Overlay FS, usebenzisa i-tmpfs yokugcina idatha. I-kernel kufuneka yakhiwe ngenkxaso ye-Overlay FS ngeSquashFS. Nangona kunjalo, ukuba ngesizathu esithile oku akufuneki, ungasebenzisa "-cpio" ukhetho endaweni ye -squashfs ukupakisha i-gentoo/ njengendawo yogcino lwecpio, apho ugcino luyakuvulelwa ngokuthe ngqo kwi-tmpfs kwi-boot, eyona nto iphambili. kukuba ukukhupha inkqubo ye-tmpfs yayine-RAM eyaneleyo.

Inyani enika umdla: ukuba umfanekiso we-ISO owenziwe kusetyenziswa u-“-efi” ukhetho lucatshulwe kwi-FAT32 flash drive ngokukhuphela ngokulula iifayile (cp -r), ngoko iFlash drive iya kuqalisa kwimo ye-UEFI ngaphandle kolungiselelo lokuqala, enkosi kwiinkcukacha. ye-UEFI- abakhupheli.

Ukongeza kwii-ISO eziqhumayo, nayiphi na i-drive bootable inokudalwa kunye neeparitha ezifanayo: i-USB, i-HDD, i-SSD, njalo njalo, kwaye le drive ingaqhubeka isetyenziselwa injongo yayo. Ukwenza oku, kufuneka unyuke, umzekelo, isixhobo se-USB kwaye usebenzise i-mkbootisofs kuyo. Yongeza nje inketho enye "-i-bootable" ukwenzela ukuba i-drive apho ulawulo oluchaziweyo lubekwe khona.

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

Emva koko, isixhobo se-USB siya kuba ne-bootable kunye ne-gentoo/ i-overlay (ungalibali ukukopa i-/boot/vmlinuz kunye / ne-boot/initrd iifayile kwisixhobo).

Ukuba ngesizathu esithile i-drive ayizange ifakwe kwi / mnt, kwaye kuvela ukuba / mnt ibekwe kwisixhobo esingundoqo / dev / sda, ngoko i-bootloader iya kubhalwa kwakhona kwi /dev/sda. Kufuneka ulumke xa ukhankanya i --bootable option.

Ngexesha lenkqubo yokuqalisa, iBooty ixhasa inani leenketho ezinokugqithiselwa kumlayishi wesiqalo, grub.cfg okanye syslinux.cfg. Ngokungagqibekanga, ngaphandle kokhetho, zonke izigqubuthelo ziyalayishwa kwaye zicatshulwe kwi-tmpfs (ukhetho olumiselweyo ooty.use-shmfs). Ukusebenzisa i-Fs eWalekeneyo ukhetho lwe-booty.use-overlayfs kufuneka lusetyenziswe. I-booty.copy-to-ram inketho yokuqala ikhuphela ngaphezulu kokungaphezulu kwi-tmpfs, emva koko idibanisa kwaye ilayishe. Nje ukuba sikhutshelwe, isixhobo se-USB (okanye esinye isixhobo sokugcina) sinokususwa.

umthombo: opennet.ru

Yongeza izimvo