Afirandina wêneyên bootstrap v1.0


Afirandina wêneyên bootstrap v1.0

Ez dixwazim çarçoveyek bi navê boobstrap pêşkêşî we bikim, ku di şêlê POSIX de hatî nivîsandin, ji bo afirandina wêneyên boot bi belavkirinên GNU/Linux. Çarçove dihêle hûn tenê di sê gavên hêsan de tevahiya pêvajoyê derbas bikin: ji bicîhkirina pergalê di chroot de, afirandina wêneyek initramfs ku pergala chrooted vedihewîne, û di dawiyê de wêneyek ISO-ya bootable. boobstrap bi rêzê sê karûbarên mkbootstrap, mkinitramfs û mkbootisofs vedihewîne.

mkbootstrap pergalê di peldankek veqetandî de saz dike, ji bo CRUX piştgirîya xwemalî heye, û di mijara belavkirinên Arch Linux / Manjaro û Debian-ê de, pêdivî ye ku bi rêzê ve karûbarên sêyemîn pacstrap, basestrap û debootstrap werin bikar anîn.

mkinitramfs wêneyek initramfs diafirîne, hûn dikarin pergala sazkirî ya di pelrêçê de wekî "overlay" bikar bînin, ku bi karanîna SquashFS-ê ve hatî berhev kirin, an jî piştî ku hûn di pergalê de boot kirin, rasterast di tmpfs de bixebitin. Ji ber vê yekê, wek nimûne, fermana mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd dê pelek initrd biafirîne, di nav de du serpêhatiyên bi "arch- Pergala chroot/" û "/mala"ya we, bi karanîna SquashFS-ê hatî berhev kirin, ku dûv re hûn dikarin bi rêya PXE-yê di tmpfs-ê de boot bikin, an jî bi vê initrd-ê wêneyek ISO-ya bootable biafirînin.

mkbootisofs ji pelrêça diyarkirî wêneyek ISO bootable BIOS/UEFI diafirîne. Tenê /boot/vmlinuz û /boot/initrd têxin pelrêça.

boobstrap busybox-ê bikar nayîne, û ji bo afirandina jîngehek initramfs a xebatê, komek hindiktirîn bernameyan bi karanîna ldd-ê tê kopî kirin, ku ji bo bootkirin û veguheztina pergalê hewce ye. Navnîşa bernameyên kopîkirinê, mîna her tiştê din, dikare bi pelê veavakirinê /etc/boobstrap/boobstrap.conf were mîheng kirin. Di heman demê de, hûn dikarin her dabeşkirina mînîmalîst di nav chroot/ veqetandî de saz bikin, ku ji wê hingê hûn dikarin jîngehek initramfs-a bêkêmasî biafirînin. Wekî hawîrdorek mînîmalîst, lê di heman demê de bêkêmasî, tê pêşniyar kirin ku meriv şablona "crux_gnulinux-vekirî" bikar bîne, ku piştî xz lihevhatinek 37 MB digire. busybox, ji xeynî mezinahiya wê, 3-5 MB beramberî 30-50 MB ji jîngehek GNU/Linux-ê ya tam, êdî tu feydeyan nade, ji ber vê yekê karanîna busybox di projeyekê de guncan xuya nake.

Meriv çawa zû fonksiyonê kontrol dike û dest pê dike? Saz bike û bixebite.

# git klon https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# saz bike# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Her weha hûn hewce ne ku pêwendiyan saz bikin, bi navê: cpio, grub, grub-efi, dosfstools, xorriso. Bikaranîna squashfs-tools ne hewce ye; hûn dikarin di tmpfs de bi mîqdara guncan a RAM-ê bixebitin. Ger tiştek di pergalê de wenda be, boobstrap dê di destpêkê de vê yekê rapor bike.

Ji bo hêsankirina çêkirina mîhengan, boobstrap pêşniyar dike ku "şablon" û "pergalan" bikar bînin, cewhera wan karanîna "şablon" (bootstrap-şablon/) ye ku zû pergalên ji pelek saz bikin, û rasterast "pergalan" (bootstrap- sîstem/) ji bo sazkirina mîhengên dawîn tê bikar anîn.

Ji ber vê yekê mînakî, xebitandina skrîptê boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild dê mîhenga herî kêm a pergala CRUX GNU/Linux saz bike û wê di pelê crux_gnulinux-embedded.rootfs de hilîne, dûv re hûn boobstrap-sy/bootstrap-ê bixebitînin. /default/crux_gnulinux.bbuild ku dê veavakirina bingehîn ji pelê navborî bar bike, hemî veavakirina pêwîst bike û ISO-ya bootable amade bike. Ev hêsan e dema ku, mînakî, gelek pergal heman celeb veavakirinê bikar tînin: ji bo ku hûn her carê heman komek pakêtan rave nekin, hûn şablonek bikar tînin, li ser bingeha ku hûn wêneyên bootê yên pergalên bi veavakirina paşîn diafirînin.

Ez dikarim van hemîyan li ku bikar bînim?

Hûn pergalê di pelê de carekê mîheng dikin û bi xebitandina wê hûn wê ava dikin û/an nûve dikin. Pergal di tmpfs de dimeşe, ku ew bi bingehîn veqetandî dike. Ger pergal têk biçe, hûn dikarin bi yek klîk a bişkojka Reset vegere rewşa xweya bingehîn. Hûn dikarin bi ewlehî rm -rf / bimeşînin.

Hûn dikarin mîhengên hemî pergalên xwe li herêmî mîheng bikin, wêneyan biafirînin, wan di makîneyek virtual an jî hardware ji hev veqetînin ceribandin, dûv re wan li serverek dûr bar bikin û tenê du fermanan bixin kexec -l /vmlinuz —initrd=/initrd && kexec -e ji bo nûvekirina tevahiya pergalê, wê ji nû ve di tmpfs de nûve bike.

Bi heman awayî, hûn dikarin hemî pergalên, mînakî li ser VDS-ê, veguhezînin da ku di tmpfs de bixebitin, û dîska /dev/vda şîfre bikin û wê tenê ji bo daneyan bikar bînin, bêyî ku hewce bike ku pergala xebitandinê li ser wê bimîne. Di vê rewşê de tenê "xala rijandina agahiyê" dê tenê "hilweşîna sar" ya bîranîna makîneya weya virtual be, û di bûyera lihevhatina pergalê de (mînak, bi texmînkirina şîfreya ssh an qelsiyek di nav de. Exim), hûn dikarin ISO-ya nû bi navgîniya "panela kontrolê" ya pêşkêşkarê xwe dakêşin, da ku VDS-ê vegerînin xebitandinê, bêyî ku ji bîr nekin ku veavakirina pergalê biguherînin da ku hemî qelsiyan bigire. Ev ji nûsazkirin, veavakirina paşê û/an vegerandina ji hilanînê zûtir zûtir e, ji ber ku di eslê xwe de, ISO-ya dakêşandî ya bi pergala we re pişta we ye. "Heft pirsgirêk - yek reset."

Di dawiyê de, hûn dikarin ji bo hewcedariyên xwe her dabeşkirinê biafirînin, wê li ajokerek USB-ê binivîsin û tê de bixebitin, li gorî hewcedariyê wê nûve bikin û dîsa li ajokera USB-ê ji nû ve binivîsin. Hemî daneyên di ewran de têne hilanîn. Dema ku pergal, ez dubare dikim, bi bingehîn bûye "berçav" êdî hûn ne hewce ne ku ji ewlehiya pergalê xeman bikin û paşvekişandinek çêbikin.

Daxwaz, pêşniyar û şîroveyên we bi xêr hatin.

Di depoya li ser zencîreya jêrîn de pelek berfireh README (bi Englishngilîzî) bi danasîna her karûbar û mînakên karanînê heye, di heman demê de bi rûsî belgeyek berfireh û dîrokek pêşkeftinê jî li ser lînkê heye: Boobstrap boot script kompleks.

Source: linux.org.ru

Add a comment