Idala izithombe ze-bootstrap v1.0


Idala izithombe ze-bootstrap v1.0

Ngingathanda ukwethula kuwe uhlaka olubizwa ngokuthi i-boobstrap, olubhalwe kugobolondo le-POSIX, lokudala izithombe zokuqalisa ngokusatshalaliswa kwe-GNU/Linux. Uhlaka lukuvumela ukuthi udlule kuyo yonke inqubo ngezinyathelo ezintathu nje ezilula: kusukela ekukhipheni isistimu ku-chroot, udale isithombe se-initramfs esihlanganisa isistimu ehlutshiwe, futhi ekugcineni isithombe se-ISO esibhuthayo. i-boobstrap ihlanganisa izinsiza ezintathu i-mkbootstrap, i-mkinitramfs kanye ne-mkbootisofs ngokulandelanayo.

I-mkbootstrap ifaka isistimu kuhla lwemibhalo oluhlukile, kukhona ukwesekwa komdabu kwe-CRUX, futhi esimweni se-Arch Linux / Manjaro kanye nokusabalalisa okusekelwe ku-Debian, izinsiza zenkampani yangaphandle i-pacstrap, i-basestrap ne-debootstrap kufanele isetshenziswe ngokulandelanayo.

i-mkinitramfs idala isithombe se-initramfs, ungasebenzisa isistimu efakiwe kumkhombandlela njengokuthi "imbondela", ecindezelwe kusetshenziswa i-SquashFS, noma ngemuva kokuqalisa uhlelo, sebenza ngqo kuma-tmpfs. Ngakho-ke ngokwesibonelo, umyalo othi mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd uzodala ifayela le-initrd, okuhlanganisa ukumbondela okubili "oku-arch- chroot/" kanye "/ikhaya" lakho, elicindezelwe usebenzisa i-SquashFS, ongayiqalisa nge-PXE ibe yi-tmpfs, noma udale isithombe se-ISO esivulelekayo ngale initrd.

i-mkbootisofs idala isithombe se-ISO se-BIOS/UEFI kusuka kumkhombandlela oshiwo. Vele ubeke /boot/vmlinuz kanye /boot/initrd kumhlahlandlela.

I-boobstrap ayisebenzisi i-busybox, futhi ukudala indawo esebenzayo ye-initramfs, isethi encane yezinhlelo ikopishwa kusetshenziswa i-ldd, edingekayo ukuze iqalise futhi ishintshele ohlelweni. Uhlu lwezinhlelo ezizokopishwa, njengazo zonke ezinye izinto, lungalungiswa ngefayela lokumisa /etc/boobstrap/boobstrap.conf. Futhi, ungafaka noma yikuphi ukusatshalaliswa kwe-minimalistic ku-chroot/ ehlukile, lapho ungakha khona indawo egcwele ye-initramfs. Njenge-minimalistic enjalo, kodwa ngesikhathi esifanayo indawo egcwele ngokugcwele, kuhlongozwa ukuthi kusetshenziswe ithempulethi ye-"crux_gnulinux-embedded", okuthi ngemva kwe-xz ithathe ukuyekethisa okungu-37 MB. Ibhokisi elimatasa, ngaphandle kosayizi walo, 3-5 MB uma liqhathaniswa no-30-50 MB wemvelo egcwele ye-GNU/Linux, alisanikezi noma yiziphi izinzuzo, ngakho-ke ukusebenzisa ibhokisi elimatasa kuphrojekthi akubonakali kufanelekile.

Indlela yokuhlola ngokushesha ukusebenza futhi uqalise? Faka futhi uqalise.

# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# yenza ukufaka# boobstrap/test/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Udinga futhi ukufaka okuncikile, okungukuthi: cpio, grub, grub-efi, dosfstools, xorriso. Ukusebenzisa amathuluzi e-squashfs akudingekile; ungasebenza kuma-tmpfs ngenani elifanele le-RAM. Uma kukhona okushodayo kusistimu, i-boobstrap izobika lokhu lapho iqalisa.

Ukwenza kube lula ukudalwa kokucushwa, i-boobstrap iphakamisa ukusebenzisa “izifanekiso” kanye “nezinhlelo”, ingqikithi yakho okuwukusebenzisa “izifanekiso” (bootstrap-templates/) ukufaka ngokushesha amasistimu efayelini, kanye “namasistimu” ngokuqondile (bootstrap- amasistimu/) asetshenziselwa ukusetha izilungiselelo zokugcina.

Ngakho-ke njengesibonelo, ukusebenzisa i-script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild kuzofaka ubuncane bokucushwa kohlelo lwe-CRUX GNU/Linux futhi ikulondoloze kufayela elithi crux_gnulinux-embedded.rootfs, bese usebenzisa i-boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild ezolayisha ukucushwa okuyinhloko kusuka efayeleni elishiwo, yenza konke ukucushwa okudingekayo futhi ulungiselele i-ISO ebhuthayo. Lokhu kulula uma, isibonelo, izinhlelo eziningi zisebenzisa uhlobo olufanayo lokucushwa: ukuze ungachazi isethi efanayo yamaphakheji isikhathi ngasinye, usebenzisa ithempulethi eyodwa, ngokusekelwe lapho udala khona izithombe ze-boot zezinhlelo ngokucushwa kokugcina.

Ngingakusebenzisa kuphi konke lokhu?

Ulungisa uhlelo kufayela kanye futhi ngokulisebenzisa uyakha futhi/noma ulubuyekeze. Uhlelo lusebenza ngama-tmpfs, okwenza lulahleke. Uma isistimu yehluleka, ungabuyela esimweni sayo sasekuqaleni ngokuchofoza kanye inkinobho ethi Setha Kabusha. Ungakwazi ukugijima ngokuphepha rm -rf /.

Ungakwazi ukumisa ukucushwa kwawo wonke amasistimu akho endaweni, udale izithombe, uzihlole emshinini obonakalayo noma i-hardware ehlukene, bese uzilayisha kuseva ekude bese usebenzisa imiyalo emibili nje kexec -l /vmlinuz —initrd=/initrd && kexec -e ukuze ubuyekeze yonke isistimu, uyiqalise kabusha ibe yi-tmpfs.

Ngendlela efanayo, ungadlulisa zonke izinhlelo, isibonelo ku-VDS, ukuze usebenze ku-tmpfs, futhi ubhale ngemfihlo idiski /dev/vda futhi uyisebenzisele idatha kuphela, ngaphandle kwesidingo sokugcina uhlelo lokusebenza kuyo. Okuwukuphela “kwephuzu lolwazi lokuvuza” kulesi simo kuzoba kuphela “ukulahla okubandayo” kwenkumbulo yomshini wakho obonakalayo, futhi uma kwenzeka kuba sengozini yesistimu (isibonelo, ngokuqagela igama-mfihlo le-ssh noma ukuba sengozini Exim), ungalanda i-ISO entsha “ngephaneli yokulawula” yomhlinzeki wakho, ukuze ubuyisele i-VDS ekusebenzeni, ngaphandle kokukhohlwa ukuhlela ukucushwa kwesistimu ukuvala bonke ubungozi. Lokhu kuyashesha kunokufaka kabusha, ukumisa okulandelayo kanye/noma ukubuyisela kukhophi yasenqolobaneni, ngoba empeleni, i-ISO elandekayo enohlelo lwakho iyisipele sakho. "Izinkinga eziyisikhombisa - ukusetha kabusha okukodwa."

Ekugcineni, ungakha noma yikuphi ukusatshalaliswa kwezidingo zakho, ukubhale kudrayivu ye-USB futhi usebenze kuyo, uyibuyekeze njengoba kudingeka futhi uyibhale kabusha kudrayivu ye-USB futhi. Yonke idatha igcinwa emafini. Akusadingeki ukhathazeke ngokuphepha kwesistimu futhi wenze ikhophi yasenqolobaneni lapho uhlelo, ngiyaphinda, seluphenduke "lahlwa".

Izifiso, iziphakamiso kanye nokuphawula kwakho kwamukelekile.

Endaweni yokugcina impahla kusixhumanisi esingezansi kunefayela elinemininingwane ye-README (ngesiNgisi) elinencazelo yokusetshenziswa ngakunye nezibonelo zokusetshenziswa, kukhona nemibhalo enemininingwane ngesiRashiya kanye nomlando wokuthuthuka otholakala kusixhumanisi: I-Boobstrap boot script complex.

Source: linux.org.ru

Engeza amazwana