ịkwakọrọ ihe - ịba uru maka ịmepụta ihe oyiyi buut na draịva

ewepụtara mmemme ịkwakọrọ, nke na-enye gị ohere ịmepụta ihe oyiyi initrd bootable, faịlụ ISO ma ọ bụ draịva nwere nkesa GNU/Linux ọ bụla nwere otu iwu. Edere koodu ahụ na shei POSIX na kesara site ikike n'okpuru GPLv3.

Nkesa niile agbagoro site na iji Booty na-agba SHMFS (tmpfs) ma ọ bụ SquashFS + Overlay FS, nhọrọ onye ọrụ. Emepụtara nkesa otu ugboro, na n'oge usoro buut, a na-ahọrọ paramita nke na-enye gị ohere iji tmpfs dị ọcha maka mgbọrọgwụ, ma ọ bụ ngwakọta nke Overlay FS + SquashFS na mgbanwe ndekọ na tmpfs. Ọ ga-ekwe omume ibu ụzọ detuo ngwa nkesa nbudata na RAM, nke na-enye gị ohere iwepu draịvụ USB mgbe nbudata na detuo ihe nkesa na ebe nchekwa.

Nke mbụ, Booty na-ewepụta onyonyo initrd nke ya, nke nwere ike iji akụrụngwa ala sitere na sistemụ dị ugbu a ma ọ bụ igbe ọrụ. Ọ ga-ekwe omume itinye (mkpọ) ngwa nkesa niile arụnyere na ndekọ (chroot) n'ime initramfs. Nke a nwere ike ịba uru mgbe ịchọrọ ịkwalite sistemụ site na iji kexec: naanị bugharịa initrd site na iji kernel ọhụrụ na sistemụ ọhụrụ n'ime initrd.

Ịmepụta onyonyo initrd kpọmkwem Booty:

mkdir initramfs/
mkinitramfs initramfs/ --mmepụta initrd

Ịmepụta onyonyo initrd gụnyere nkesa sitere na ndekọ "gentoo/":

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --mmepụta initrd

Mgbe nke ahụ gasịrị, onyonyo initrd a adịla njikere maka nbudata, dịka ọmụmaatụ, site na PXE ma ọ bụ site na kexec.

Na-esote, Booty na-ewepụta onyonyo na sistemụ akọwapụtara dị ka “overlays”. Dịka ọmụmaatụ, ị nwere ike ịwụnye (ịkpọghee ebe nchekwa) Gentoo nwere ọnọdụ na akwụkwọ ndekọ aha dị iche, mgbe nke a gasịrị, a ga-emepụta cpio archive ma ọ bụ ihe oyiyi SquashFS nwere usoro a site na iji Booty. Ị nwekwara ike hazie nkesa na akwụkwọ ndekọ aha dị iche, ma detuo ntọala nkeonwe gị na ndekọ ọzọ. A ga-ebunye “oyi akwa” ndị a n'usoro n'usoro n'elu ibe ha wee mepụta otu sistemụ arụmọrụ.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --machie ntọala/ --machie akwụkwọ/ --squashfs --mmepụta initrd

N'ikpeazụ, Booty na-enye gị ohere ịmepụta ihe oyiyi ISO na USB, HDD, SSD na draịva ndị ọzọ site na ịwụnye usoro dị n'elu site na ihe oyiyi. ịkwakọrọ na-akwado mmepụta nke BIOS na UEFI usoro buut. GRUB2 na SYSLINUX bootloaders na-akwado. Enwere ike ijikọ bootloaders, dịka ọmụmaatụ, jiri SYSLINUX buba n'ime BIOS, yana GRUB2 maka UEFI. Iji mepụta onyonyo ISO, ị ga-achọkwa ngwugwu cdrkit (genisoimage) ma ọ bụ xorriso (xorrisofs), ịhọrọ site na ya.

Naanị ihe mgbakwunye a chọrọ bụ ịkwadebe kernel (vmlinuz) maka buut tupu oge eruo. Onye ode akwụkwọ (Spoofing) na-atụ aro ka iji "mee defconfig". Tupu ịmepụta ihe onyonyo a, ịkwesịrị ịkwadebe akwụkwọ ndekọ aha site na itinye vmlinuz kernel na initrd “efu” akwadoro na mbụ emebere na ihe atụ mbụ.

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

Na nke a nkwadebe zuru ezu, anyị nwere ike ugbu a ịmepụta ISO oyiyi si a ndekọ.

Iwu na-esonụ ga-emepụta ihe oyiyi ISO, ọ bụghị nke nwere ike ịmalite, ọ bụ naanị ISO:

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

Iji mepụta ihe oyiyi buut, ịkwesịrị ịkọwapụta "--legacy-boot" nhọrọ maka BIOS na "-efi" maka UEFI n'otu n'otu; nhọrọ ahụ na-ewere grub2 ma ọ bụ syslinux dị ka paramita; ị nwekwara ike ịkọwapụta naanị otu nhọrọ ( dịka ọmụmaatụ, nkwado akpụkpọ ụkwụ UEFI adịghị mkpa, ọ nwere ike ọ gaghị akọwapụta ya).

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 --mmepụta boot-uefionly.iso

Dịkwa ka ọ dị na mbụ, etinyere onyonyo nwere sistemu na initrd, ị nwere ike itinye ha na ISO.

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

Mgbe iwu a gasịrị, a ga-emepụta ihe oyiyi BIOS / UEFI ISO nke na-ebu Gentoo n'ime ihe oyiyi SquashFS site na iji Overlay FS, na-eji tmpfs maka nchekwa data. Ekwesịrị iji nkwado overlay FS wulite kernel na SquashFS. Agbanyeghị, ọ bụrụ n'ihi ihe ụfọdụ anaghị achọ nke a, ịnwere ike iji “—cpio” nhọrọ kama — squashfs ka ngwugwu gentoo / dị ka ebe nchekwa cpio, nke ikpe a ga-ebupu ebe nchekwa ozugbo na tmpfs n'elu buut, isi ihe. bụ na maka ịbupu sistemu tmpfs nwere RAM zuru oke.

Eziokwu na-adọrọ mmasị: ọ bụrụ na ihe oyiyi ISO emepụtara site na iji "-efi" nhọrọ na-ebubataghị na FAT32 flash drive site na iṅomi faịlụ (cp -r), mgbe ahụ, draịvụ ahụ ga-ebuba na ọnọdụ UEFI na-enweghị nkwadebe mbụ, ekele maka nkọwapụta. nke UEFI-nbudata.

Na mgbakwunye na ISOs bootable, enwere ike ịmepụta draịva ọ bụla nwere ike iji otu paramita ahụ: USB, HDD, SSD, na ihe ndị ọzọ, enwere ike ịga n'ihu na-eji mbanye a maka ebumnuche ya. Iji mee nke a, ịkwesịrị ịkwanye, dịka ọmụmaatụ, ngwaọrụ USB ma mee mkbootisofs na ya. Naanị tinye otu nhọrọ “—bootable” ka draịva nke akwụkwọ ndekọ aha akọwapụtara na ya wee bụrụ bootable.

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

Mgbe nke ahụ gasịrị, ngwaọrụ USB ga-abụ nke a na-ebuli na gentoo / overlay (echefula idetu faịlụ / buut / vmlinuz na / boot / initrd na ngwaọrụ ahụ).

Ọ bụrụ n'ihi ihe ụfọdụ ejighị draịva ahụ na / mnt, ọ pụtakwara na / mnt dị na isi ngwaọrụ / dev / sda, mgbe ahụ, a ga-edegharị bootloader na / dev/sda. Ị kwesịrị ịkpachara anya mgbe ị na-akọwapụta nhọrọ --bootable.

N'oge usoro buut, Booty na-akwado ọtụtụ nhọrọ nke nwere ike ịfefe na bootloader, grub.cfg ma ọ bụ syslinux.cfg. Site na ndabara, na-enweghị nhọrọ ọ bụla, a na-ebufe ma bukwasa ihe niile n'ime tmpfs (nhọrọ ndabara ooty.use-shmfs). Iji jiri Overlay FS, a ga-ejirịrị booty.use-overlayfs nhọrọ. Nhọrọ booty.copy-to-ram na-ebu ụzọ ebipụta machie na tmpfs, mgbe nke ahụ gasịrị, ọ na-ejikọ naanị ha ma buru ya. Ozugbo e depụtaghachiri ya, enwere ike iwepụ ngwaọrụ USB (ma ọ bụ ngwaọrụ nchekwa ọzọ).

isi: opennet.ru

Tinye a comment