Kupanga zithunzi za bootstrap v1.0


Kupanga zithunzi za bootstrap v1.0

Ndikufuna kukuwonetsani dongosolo lotchedwa boobstrap, lolembedwa mu chipolopolo cha POSIX, popanga zithunzi za boot ndi magawo a GNU/Linux. Ndondomekoyi imakulolani kuti mudutse ndondomeko yonseyi muzitsulo zitatu zosavuta: kuchokera pakugwiritsa ntchito dongosolo mu chroot, kupanga chithunzi cha initramfs chomwe chimaphatikizapo chrooted system, ndipo pamapeto pake chithunzi cha ISO chotsegula. boobstrap imaphatikizapo zida zitatu za mkbootstrap, mkinitramfs ndi mkbootisofs motsatana.

mkbootstrap imayika dongosolo mu bukhu losiyana, pali chithandizo chachilengedwe cha CRUX, ndipo pankhani ya Arch Linux / Manjaro ndi Debian-based distributions, pacstrap, basestrap ndi debootstrap ziyenera kugwiritsidwa ntchito motsatira.

mkinitramfs imapanga chithunzi cha initramfs, mutha kugwiritsa ntchito dongosolo loyika mu bukhu ngati "zophimba", zoponderezedwa pogwiritsa ntchito SquashFS, kapena mutatha kulowa mudongosolo, gwiritsani ntchito molunjika mu tmpfs. Chifukwa chake mwachitsanzo, lamulo la mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd lipanga fayilo ya initrd, kuphatikiza zokutira ziwiri ndi "arch- chroot/" system ndi "/home" yanu, yoponderezedwa pogwiritsa ntchito SquashFS, yomwe mutha kuyiyambitsa kudzera pa PXE kukhala tmpfs, kapena kupanga chithunzi cha ISO choyambira ndi initrd iyi.

mkbootisofs imapanga chithunzi cha BIOS / UEFI chosinthika cha ISO kuchokera pamndandanda womwe watchulidwa. Ingoikani /boot/vmlinuz ndi /boot/initrd m'ndandanda.

boobstrap sigwiritsa ntchito bokosi lotanganidwa, ndipo kuti apange malo ogwirira ntchito a initramfs, mapulogalamu ochepa amakopera pogwiritsa ntchito ldd, zofunikira kuti ziyambe ndikusintha ku dongosolo. Mndandanda wa mapulogalamu omwe mungakopere, monga china chirichonse, akhoza kukonzedwa kupyolera mu fayilo yokonzekera /etc/boobstrap/boobstrap.conf. Komanso, mutha kuyika kugawa kulikonse kocheperako mu chroot/, komwe mutha kupanga chilengedwe chonse cha initramfs. Monga minimalistic yotere, koma nthawi yomweyo chilengedwe chonse, akulangizidwa kuti agwiritse ntchito template ya "crux_gnulinux-embedded", yomwe pambuyo pa xz imatenga kusagwirizana kwa 37 MB. busybox, kuwonjezera pa kukula kwake, 3-5 MB motsutsana ndi 30-50 MB ya chilengedwe chonse cha GNU/Linux, sichimaperekanso ubwino uliwonse, kotero kugwiritsa ntchito bokosi lotanganidwa mu polojekiti 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
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Muyeneranso kukhazikitsa zodalira, zomwe ndi: cpio, grub, grub-efi, dosfstools, xorriso. Kugwiritsa ntchito zida za squashfs sikofunikira; mutha kugwira ntchito mu tmpfs ndi kuchuluka koyenera kwa RAM. Ngati china chake chikusowa mu dongosolo, boobstrap idzanena izi poyambitsa.

Kuti muchepetse kupanga masinthidwe, boobstrap ikuwonetsa kugwiritsa ntchito "ma templates" ndi "kachitidwe", komwe kwenikweni ndiko kugwiritsa ntchito "ma templates" (bootstrap-templates/) kukhazikitsa mwachangu machitidwe kuchokera pafayilo, ndi mwachindunji "machitidwe" (bootstrap- systems/) zomwe zimagwiritsidwa ntchito kukhazikitsa masinthidwe omaliza.

Kotero mwachitsanzo, kuyendetsa script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild idzayika kasinthidwe kochepa ka CRUX GNU/Linux system ndikusunga mu fayilo crux_gnulinux-embedded.rootfs, ndiye mumayendetsa boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild yomwe idzakweza kasinthidwe koyambirira kuchokera pafayilo yomwe yatchulidwa, chitani zonse zofunikira ndikukonzekera ISO yotsegula. Izi ndi zabwino pamene, mwachitsanzo, machitidwe ambiri amagwiritsa ntchito mtundu womwewo wa kasinthidwe: kuti musamafotokoze mapepala omwewo nthawi zonse, mumagwiritsa ntchito template imodzi, potengera zomwe mumapanga zithunzi za boot za machitidwe ndi kasinthidwe komaliza.

Kodi zonsezi ndingazigwiritse ntchito kuti?

Mumakonza dongosolo mufayilo kamodzi ndikuyiyendetsa mumayipanga ndi/kapena kuyisintha. Dongosololi limayenda mu tmpfs, zomwe zimapangitsa kuti zitha kutaya. Ngati dongosololi likulephera, mukhoza kubwerera ku chikhalidwe chake ndikudina kamodzi pa Bwezerani batani. Mutha kuthamanga rm -rf /.

Mutha kukonza masinthidwe a machitidwe anu onse kwanuko, kupanga zithunzi, kuyesa mu makina enieni kapena zida zapadera, kenako kuziyika ku seva yakutali ndikuyendetsa malamulo awiri okha kexec -l /vmlinuz β€”initrd=/initrd && kexec -e kukonzanso dongosolo lonse, ndikuyambiranso kukhala tmpfs.

Momwemonso, mutha kusamutsa machitidwe onse, mwachitsanzo pa VDS, kuti mugwire ntchito mu tmpfs, ndikubisa / dev/vda disk ndikuigwiritsa ntchito pa data yokha, popanda kufunikira kosunga makina ogwiritsira ntchito. "Zokhazo zomwe zidziwitso zatsitsidwa" pakadali pano zitha kukhala "kutaya kozizira" kokha kwa kukumbukira makina anu enieni, komanso pakagwa chiwopsezo chadongosolo (mwachitsanzo, kulosera mawu achinsinsi a ssh kapena chiwopsezo mu Exim), mutha kutsitsa ISO yatsopano kudzera pa "control panel" ya omwe akukupatsani, kuti mubwezeretse VDS kuti igwire ntchito, osaiwala kusintha masinthidwe adongosolo kuti atseke zovuta zonse. Izi ndizofulumira kuposa kuyikanso, kukonzanso kotsatira ndi/kapena kubwezeretsa kuchokera ku zosunga zobwezeretsera, chifukwa kwenikweni, ISO yomwe mungatsitse yokhala ndi makina anu ndiye zosunga zobwezeretsera zanu. "Mavuto asanu ndi awiri - kukonzanso kumodzi."

Pamapeto pake, mutha kupanga kugawa kulikonse pazosowa zanu, kulembera ku USB drive ndikugwira ntchito mmenemo, kukonzanso momwe zikufunikira ndikulemberanso ku USB drive kachiwiri. Deta yonse imasungidwa m'mitambo. Simufunikanso kudandaula za chitetezo cha dongosolo ndikupanga zosunga zobwezeretsera pamene dongosolo, ndikubwereza, lakhala "lotaya".

Zofuna zanu, malingaliro anu ndi ndemanga ndizolandiridwa.

M'malo omwe ali pa ulalo womwe uli pansipa pali fayilo ya README yatsatanetsatane (mu Chingerezi) yofotokozera za zofunikira zilizonse ndi zitsanzo za kugwiritsidwa ntchito, palinso zolembedwa zatsatanetsatane mu Chirasha komanso mbiri yachitukuko yomwe ikupezeka pa ulalo: Boobstrap boot script zovuta.

Source: linux.org.ru

Kuwonjezera ndemanga