Ịmepụta onyonyo bootstrap v1.2


Ịmepụta onyonyo bootstrap v1.2

Emechaa naanị otu ọnwa Mgbe mmepe ngwa ngwa gasịrị, ewepụtara boobstrap v1.2 - otu ngwaọrụ na shei POSIX maka ịmepụta ihe oyiyi na draịva.

Boobstrap na-enye gị ohere ịme naanị otu iwu:

  • Mepụta onyonyo initramfs, gụnyere nkesa GNU/Linux ọ bụla na ya.
  • Jiri nkesa GNU/Linux mepụta onyonyo ISO nwere ike ịpụta.
  • Mepụta bootable USB, HDD, SSD draịva na nkesa GNU/Linux ọ bụla.

Ihe dị iche bụ na mgbe ị wụnye GNU/Linux ga-arụ ọrụ kpamkpam na tmpfs dị ọcha, ma ọ bụ iji ihe mkpuchi FS na SquashFS, nhọrọ gị. Ị rụnyere nkesa GNU/Linux ọ bụla na ndekọ aha, mee ntọala niile dị mkpa (ikekwe na ndekọ dị iche), mgbe nke ahụ gasịrị, ị ga-emepụta ngwaọrụ buut na otu iwu, ma ọ bụ ihe oyiyi ISO, USB, HDD, SSD mbanye, ma ọ bụ ị nwere ike iji sistemụ mepụta onyonyo initrd. Usoro ahụ ga-adị n'otu steeti mgbe niile na n'ọnọdụ nke mmebi, ị nwere ike ịlaghachi na ọnọdụ mbụ ya site na ịpị bọtịnụ Tọgharia. Ịchọrọ ịnyefe usoro ahụ na onye ọbịa ọzọ, ma ọ bụ mepụta usoro site na akpa dị adị? Boobstrap ga-eme ya.

N'ime mgbanwe ndị isi:

  • Nkwado agbakwunyere maka syslinux bootloader, na mgbakwunye na grub2 dị adị. Ị nwere ike ịhọrọ ugbu a iji grub2, syslinux, ma ọ bụ abụọ mgbe ị na-emepụta ngwaọrụ buut ma ọ bụ ihe oyiyi ISO na nhọrọ --legacy-boot syslinux na --efi grub2 n'otu n'otu, ma ị nwekwara ike ịhọrọ ụdị ụdị nbudata ahụ ga-akwado ISO. onyonyo.
  • Agbakwunyere --bootable nhọrọ, nke na-eme ka ihe ọ bụla ngọngọ ngwaọrụ bootable. Iji mepụta onyonyo ISO, a ga-eji nhọrọ --iso-9660 mee ihe.
  • Nhọrọ kernel agbakwunyere boobs.use-shmfs iji detuo ọdịnaya nke ihe mkpuchi niile na tmpfs, boobs.use-overlayfs iji buut site na iji Overlay FS, boobs.search-rootfs ịhọrọ isi iyi nwere sistemụ, boobs.copy-to-ram. ka idetuo usoro n'ime ebe nchekwa wee gbanyụọ ngwaọrụ.
  • Naanị ihe ndabere achọrọ maka boobstrap ịrụ ọrụ bụ cpio. Ihe ndị ọzọ dabere bụ nhọrọ: grub2, syslinux - chọrọ ịmepụta mgbasa ozi bootable, cdrkit ma ọ bụ xorriso ịhọrọ site na - ịmepụta ISO, squashfs-tools iji mepụta SquashFS, ma ọ dịghị ihe na-egbochi gị iji nhọrọ -cpio kama - squashfs iji kpokọta nkesa gị n'ime ebe nchekwa. A ga-eji busybox naanị ma ọ bụrụ na etinyere ya, mana ọ bụrụ na ọ bụghị, a ga-e copyomi ihe niile dị mkpa sitere na sistemụ gị. Ya mere, a na-ekwe nkwa na boobstrap ga-arụ ọrụ ihe fọrọ nke nta ka ọ bụrụ ebe niile.

Dịka ọmụmaatụ, iwu na-esonụ ga-emepụta ihe oyiyi initrd gụnyere gentoo-chroot/sistemu akwadoro dị ka ihe oyiyi SquashFS, nke ga-agba ọsọ nke ọma mgbe initrd n'onwe ya kwuchara. Ka m chetara gị na iji Overlay FS na njikọ na SquashFS, ị ga-agaferịrị nhọrọ kernel boobs.use-overlayfs, ma ọ bụghị ya, a ga-ebupụ usoro ahụ na tmpfs. Enwere ike ịme ntọala niile n'ime akwụkwọ ndekọ aha dị iche, dịka ọmụmaatụ gentoo-settings/

# mkdir initramfs/
# mkinitramfs initramfs/ --overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs> initrd

Onyonyo initrd nke nwere sistemu dị n'ime dị mma mgbe ịchọrọ ibuga sistemụ ngwa ngwa, dịka ọmụmaatụ, site na PXE, ma ọ bụ na ngbanwe sistemu ebugharị ka initrd na-eji iwu kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, nke ọma ma ọ bụ, ịnọ na QEMU mebere igwe interface (ikekwe ọbụna Proxmox), buut site na isi iyi dịpụrụ adịpụ site na iji iwu IPXE atọ: kernel http://[...]/vmlinuz, initrd http://[ ...]/initrd, buut. Dị ka ị pụrụ ịhụ, ọbụna initrd mgbe niile na sistemụ gị n'ime nwere ọtụtụ ojiji.

Iji mepụta draịva bootable na onyonyo, a na-eji iwu mkbootisofs, dịka ọmụmaatụ, nke a bụ ihe na-emepụta onyonyo ISO na nhọrọ -iso-9660 dị ka iji syslinux iji buba n'ime Legacy-mode (BIOS) na grub2 iji buba n'ime EFI- ọnọdụ (UEFI).

# mkdir initrd/
# mkinitramfs initrd/> initrd
# mkdir isoimage/
# mkdir isoimage/boot
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ —iso-9660 —legacy-boot syslinux —efi grub2 — mmepụta boot.iso
--machie gentoo-chroot/ --machie gentoo-settings/ --squashfs

Ị nwere ike ịkọwapụta otu n'ime ụdị buut, ma ọ bụ akọwapụtaghị ha ma ọlị, a ga-emepụta ihe oyiyi ISO kwekọrọ nke ọma.

A na-eme ntinye na draịva ọ bụla na ntinye ya na-esote site na iji nhọrọ --bootable. Ịkwesịrị ịmepụta akụkụ na draịva n'onwe gị (fdisk) wee hazie ha (mkdosfs, mke2fs, wdg), wee tinye ngwaọrụ ahụ n'ime ndekọ aha.

# ugwu /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ --bootable --legacy-boot grub2 --efi grub2
--machie gentoo-chroot/ --machie gentoo-settings/ --squashfs

Kpachara anya! Nhọrọ --bootable na-ekpebi ngwaọrụ ngọngọ nke etinyere na ndekọ ahụ wee tinye bootloader na ngwaọrụ a. Ọ bụrụ na ị chefuo ịkwanye ngwaọrụ ahụ ma ọ bụ mehiere ezipụta ndekọ nke dị, dịka ọmụmaatụ, na / dev/sda, a ga-edegharị bootloader na / dev/sda ya. Jiri --bootable na ịkpachara anya.

Ịwụnye sistemụ GNU/Linux ọ bụla na-ebelata ka ọ bụrụ naanị otu iwu. Enwere ike ime nwụnye na HDD ọ bụla, SSD, na ihe ndị ọzọ. Ọ dị mma icheta na nke a ka bụ sistemụ na-agba ọsọ site na Overlay FS / SquashFS, ma ọ bụ na-ebunye kpamkpam n'ime tmpfs, nhọrọ gị.

Tinyere ihe ndị ọzọ, boobstrap nwere ọtụtụ atụmatụ na-adọrọ mmasị na ike ndị ọzọ!

Dị ka ọmụmaatụ, ị nwere ike ịmepụta boobstrap initrd nke nwe ya na iwu mkinitramfs `mktemp -d` > /boot/initrd wee buba n'ime sistemụ gị na initrd a, na-akọwapụta nhọrọ kernel boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. N'okwu a, / dev/sda1, ebe arụnyere usoro ụlọ gị, ga-ejikọta ya dị ka oyi akwa FS na-agụ naanị, na mgbanwe niile ị na-eme ga-ede naanị nwa oge na tmpfs. Ịnwere ike ịgbakwunye nhọrọ boobs.copy-to-ram wee degharịa sistemụ gị niile na RAM, enwere ike iwepụ draịvụ ike na kọmputa ahụ. Ọ dị mma mgbe ịchọrọ imebi ihe, ma ị nwere ike tụgharịa mgbanwe naanị site na ịmalitegharị. 🙂

Mana gịnị ma ọ bụrụ na ị ka kwesịrị ịchekwa mgbanwe niile na sistemụ? Dịka ọmụmaatụ, ị rụnyere ngwanrọ ma ọ bụ ihe ọzọ. Mgbe ị na-arụ ọrụ na tmpfs dị ọcha, nke a bụ ihe nwute na-agaghị ekwe omume, ma ọ bụrụ na ị na-eji overlay FS bulite, mgbe ahụ, a na-echekwa mgbanwe niile na-eme na usoro ahụ na akwụkwọ ndekọ tmpfs dị iche: /mnt/overlayfs/rootfs-changes! Ọnọdụ ojiji dị nnọọ mfe. Ị bubatara n'ime sistemụ gị site na ngwaọrụ USB, rụọ ọrụ ụfọdụ, wee chọọ ịchekwa ihe niile gbanwere, wee mepụta ebe nchekwa cpio wee tinye ya ebe a, n'otu ngwaọrụ USB ahụ.

# cd /mnt/overlayfs/rootfs-mgbanwe
# chọta . -ebipụta0 | cpio --mepụta --usoro "newc" --null --dị jụụ> /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Ị nwere ike itinye ebe nchekwa ahụ n'akụkụ SquashFS ndị ọzọ na cpio "layers", mgbe ahụ, na ntinye na-esote, a ga-ejikọta ebe nchekwa ahụ dị ka oyi akwa ọzọ na-agụ naanị. Iji gaa n'ihu na-arụ ọrụ na mgbanwe, jiri nhọrọ bulite boobs.rootfs-changes=/rootfs-changes.cpio. Nhọrọ mgbanwe-boobs.rootfs na-enyere oyi akwa a kapịrị ọnụ nwee ohere mgbanwe. Ihe oyi akwa nwere ike ịbụ ngwaọrụ ngọngọ, dịka ọmụmaatụ ị nwere ike ịkọwa / dev/sdb1, mgbe ahụ mgbanwe niile emere na Overlay FS ga-echekwa naanị na / dev/sdb1.

Boobstrap, n'agbanyeghị ohere dị ukwuu dị, ka nọ na mmepe mmepe, a na-eburu n'uche okwu na aro gị niile!

isi: linux.org.ru

Tinye a comment