Ndikufuna kukuwonetsani njira yotchedwa boobstrap, yolembedwa mu chipolopolo cha POSIX, yopangira zithunzi zoyambira ndi ma distributions a GNU/Linux.LinuxChimangochi chimakupatsani mwayi womaliza ntchito yonse m'njira zitatu zosavuta: kuyambira kukhazikitsa dongosolo mu chroot, kupanga chithunzi cha initramfs chokhala ndi dongosolo la chrooted, ndipo, pamapeto pake, chithunzi cha ISO chosinthika. Boostrap ili ndi zinthu zitatu zothandiza: mkbootstrap, mkinitramfs, ndi mkbootisofs, motsatana.
mkbootstrap imayika dongosololi mu chikwatu china, pali chithandizo chachilengedwe cha CRUX, ndipo pankhani ya Arch Linux / Manjaro ndi magawidwe ozikidwa pa iyo Debian Ma pacstrap, basestrap ndi debootstrap a chipani chachitatu ayenera kugwiritsidwa ntchito motsatana.
mkinitramfs imapanga chithunzi cha initramfs. Mutha kugwiritsa ntchito makina oyika mu bukhu ngati chopindika, choponderezedwa ndi SquashFS, kapena boot mu dongosolo ndikugwira ntchito mwachindunji mu tmpfs. Mwachitsanzo, lamulo la mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd lipanga fayilo ya initrd, kuphatikizapo zokutira kuwiri ndi "arch-chroot/" FS ndi "/home" yanu yosindikizidwa ndi Squash. Kenako mutha PXE kuyambitsa initrd mu tmpfs, kapena kupanga chithunzi cha ISO choyambira ndi initrd iyi.
mkbootisofs imapanga chithunzi cha BIOS / UEFI chosinthika cha ISO kuchokera pamndandanda womwe wafotokozedwa. Ingoyikani /boot/vmlinuz ndi /boot/initrd mu ndandanda.
Boobstrap sigwiritsa ntchito busybox. Kuti ipange malo ogwirira ntchito a initramfs, imakopera mapulogalamu ochepa pogwiritsa ntchito ldd, omwe ndi ofunikira pakuyambitsa ndi kulowa mu dongosololi. Mndandanda wa mapulogalamu oti mukopere, monga china chilichonse, ukhoza kukonzedwa kudzera mu fayilo yosinthira ya /etc/boobstrap/boobstrap.conf. Muthanso kuyika kugawa kulikonse kwa minimalist mu chroot/ yosiyana, komwe mutha kupanga malo a initramfs athunthu. Chifaniziro cha "crux_gnulinux-embedded" chimaperekedwa ku malo ocheperako, koma odzaza mokwanira; pambuyo pa xz, chimatenga 37 MB yofooka. Koma Busybox, kumbali ina, ndi 3-5 MB, poyerekeza ndi 30-50 MB ya GNU/ yathunthu.Linux chilengedwe, sichipereka ubwino wina uliwonse, kotero kugwiritsa ntchito busybox mu polojekitiyi sikukuwoneka koyenera.
Momwe mungayang'anire mwachangu magwiridwe antchito ndikuyamba? Kwabasi ndi kuthamanga.
# git clone https://github.com/sp00f1ng/boobstrap.git
# cd chojambula
# pangani kukhazikitsa# boobstrap/mayeso/crux_gnulinux-kutsitsa-ndi-kumanga
Muyeneranso kukhazikitsa zodalira zina, zomwe ndi: cpio, grub, grub-efi, dosfstools, ndi xorriso. Kugwiritsa ntchito zida za squashfs ndizosankha; mutha kugwira ntchito mu tmpfs ndi kuchuluka koyenera kwa RAM. Ngati makina anu akusowa chilichonse, boobstrap idzakudziwitsani mukangoyambitsa.
Kuti muchepetse kupanga masinthidwe, bootstrap ikuwonetsa kugwiritsa ntchito "ma templates" ndi "kachitidwe", chomwe kwenikweni ndikugwiritsa ntchito "ma templates" (bootstrap-templates/) kukhazikitsa mwachangu machitidwe kuchokera pafayilo, ndikugwiritsa ntchito "machitidwe" (bootstrap-systems/) mwachindunji kukonza masinthidwe omaliza.
Mwachitsanzo, kuyendetsa script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild kudzakhazikitsa kasinthidwe kochepa ka CRUX GNU system/Linux ndikusunga ku fayilo ya crux_gnulinux-embedded.rootfs. Kenako, mumayendetsa bootstrap/bootstrap-systems/default/crux_gnulinux.bbuild, yomwe idzatsegula kasinthidwe koyambirira kuchokera pa fayilo yomwe yatchulidwa pamwambapa, kuchita kasinthidwe konse kofunikira, ndikukonzekera ISO yoyambira. Izi ndizosavuta, mwachitsanzo, pamene machitidwe angapo amagwiritsa ntchito kasinthidwe komweko: kuti mupewe kufotokoza seti yomweyo ya mapaketi nthawi iliyonse, mumagwiritsa ntchito template imodzi, yomwe kutengera ndi komwe mumapanga zithunzi zoyambira za machitidwe ndi kasinthidwe komaliza.
Kugwiritsa ntchito zonsezi?
Mumakonza dongosolo mu fayilo kamodzi, ndipo poyendetsa, mumamanga ndi / kapena kusintha. Dongosololi limayenda mu tmpfs, ndikupangitsa kuti litayike. Ngati dongosolo likuphwanyidwa, mukhoza kubwerera ku chikhalidwe chake ndi kusindikiza kamodzi kwa Bwezerani batani. Mutha kuthamanga mosavuta rm -rf /.
Mungathe kukonza machitidwe anu onse kwanuko, kupanga zithunzi, kuyesa mu makina enieni kapena hardware yosiyana, kenaka muyike ku seva yakutali ndikusintha dongosolo lonse pogwiritsa ntchito malamulo awiri okha: kexec -l /vmlinuz --initrd=/initrd && kexec -e , kubwezeretsanso mu tmpfs.
Momwemonso, mutha kusamuka machitidwe onse, mwachitsanzo, pa VDS, kupita ku tmpfs, ndikubisa / dev/vda drive ndikuigwiritsa ntchito pa data yokha, kuchotsa kufunikira kosunga makina ogwiritsira ntchito. "Malo otayira zidziwitso" okhawo pankhaniyi ndi "kutaya kozizira" kwa kukumbukira kwamakina anu. Ndipo ngati makinawo asokonezedwa (mwachitsanzo, mwankhanza-kukakamiza mawu achinsinsi a SSH kapena kugwiritsa ntchito chiwopsezo cha Exim), mutha kutsitsa fayilo yatsopano ya ISO kudzera pagulu lowongolera la omwe akukupatsani kuti mubwezeretse VDS kuti igwire ntchito, ndikukonzanso kasinthidwe kadongosolo kuti athetse zovuta zonse. Izi ndizofulumira kuposa kuyikanso, kukonza, ndi/kapena kubwezeretsa kuchokera ku zosunga zobwezeretsera, chifukwa fayilo ya ISO yomwe idatsitsidwa ndi makina anu ndiyosunga kwanu. "Mavuto asanu ndi awiri, yambitsaninso limodzi."
Pamapeto pake, mutha kupanga zogawa zilizonse kuti zigwirizane ndi zosowa zanu, kuziwotcha ku USB drive, ndikugwira ntchito nayo, kukonzanso momwe zingafunikire ndikulembanso ku USB drive kachiwiri. Deta yonse imasungidwa mumtambo. Simuyeneranso kuda nkhawa ndi kukhulupirika kwa dongosolo kapena zosunga zobwezeretsera, popeza dongosololi, ndikubwereza, lakhala "lotaya".
Zofuna zanu, malingaliro anu ndi ndemanga ndizolandiridwa.
Ulalo wankhokwe womwe uli pansipa uli ndi fayilo ya README yatsatanetsatane (mu Chingerezi) yofotokozera za zofunikira zilizonse ndi zitsanzo zamagwiritsidwe. Palinso zolembedwa zatsatanetsatane mu Chirasha komanso mbiri yachitukuko yomwe ikupezeka pa ulalo: Boostrap Boot Script Complex.
Source: linux.org.ru

