Paglikha ng mga imahe ng bootstrap v1.0


Paglikha ng mga imahe ng bootstrap v1.0

Nais kong ipakita sa iyong pansin ang isang balangkas na tinatawag na boobstrap, na nakasulat sa POSIX shell, para sa paglikha ng mga imahe ng boot na may mga distribusyon ng GNU/Linux. Binibigyang-daan ka ng framework na dumaan sa buong proseso sa tatlong simpleng hakbang lamang: mula sa pag-deploy ng system sa isang chroot, paglikha ng initramfs na imahe na kinabibilangan ng chrooted system, at sa huli ay isang bootable na ISO image. Kasama sa boobstrap ang tatlong utility mkbootstrap, mkinitramfs at mkbootisofs ayon sa pagkakabanggit.

Ini-install ng mkbootstrap ang system sa isang hiwalay na direktoryo, mayroong katutubong suporta para sa CRUX, at sa kaso ng mga distribusyon na nakabase sa Arch Linux / Manjaro at Debian, ang mga third-party na utility na pacstrap, basestrap at debootstrap ay dapat gamitin ayon sa pagkakabanggit.

Lumilikha ang mkinitramfs ng imahe ng initramfs, maaari mong gamitin ang naka-install na system sa direktoryo bilang isang "overlay", na-compress gamit ang SquashFS, o pagkatapos mag-boot sa system, gumana nang direkta sa tmpfs. Kaya halimbawa, ang command mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd ay lilikha ng initrd file, kasama ang dalawang overlay na may "arch- chroot/" system at ang iyong "/home", na-compress gamit ang SquashFS, na maaari mong i-boot sa pamamagitan ng PXE sa tmpfs, o lumikha ng isang bootable na ISO image gamit ang initrd na ito.

Ang mkbootisofs ay lumilikha ng BIOS/UEFI bootable ISO image mula sa tinukoy na direktoryo. Ilagay lamang ang /boot/vmlinuz at /boot/initrd sa direktoryo.

Ang boobstrap ay hindi gumagamit ng busybox, at upang lumikha ng isang gumaganang initramfs na kapaligiran, isang minimal na hanay ng mga programa ay kinopya gamit ang ldd, na kinakailangan upang mag-boot at lumipat sa system. Ang listahan ng mga program na kokopyahin, tulad ng lahat ng iba pa, ay maaaring i-configure sa pamamagitan ng configuration file /etc/boobstrap/boobstrap.conf. Gayundin, maaari kang mag-install ng anumang minimalistic distribution sa isang hiwalay na chroot/, kung saan maaari kang lumikha ng ganap na initramfs na kapaligiran. Bilang tulad ng isang minimalistic, ngunit sa parehong oras ganap na kapaligiran, ito ay iminungkahi na gamitin ang "crux_gnulinux-embedded" na template, na pagkatapos ng xz ay tumatagal ng isang kompromiso ng 37 MB. busybox, bukod sa laki nito, 3-5 MB kumpara sa 30-50 MB ng isang ganap na kapaligiran ng GNU/Linux, ay hindi na nag-aalok ng anumang mga pakinabang, kaya ang paggamit ng busybox sa isang proyekto ay mukhang hindi angkop.

Paano mabilis na suriin ang pag-andar at makapagsimula? I-install at patakbuhin.

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

Kailangan mo ring mag-install ng mga dependency, katulad ng: cpio, grub, grub-efi, dosfstools, xorriso. Ang paggamit ng squashfs-tools ay hindi kinakailangan; maaari kang magtrabaho sa tmpfs na may naaangkop na dami ng RAM. Kung may nawawala sa system, iuulat ito ng boobstrap sa pagsisimula.

Upang pasimplehin ang paglikha ng mga configuration, iminumungkahi ng boobstrap ang paggamit ng "mga template" at "mga system", ang esensya nito ay ang paggamit ng "mga template" (bootstrap-templates/) upang mabilis na mag-install ng mga system mula sa isang file, at direktang "mga system" (bootstrap- system/) na ginagamit upang i-set up ang mga huling configuration.

Kaya halimbawa, ang pagpapatakbo ng script na boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild ay mag-i-install ng minimum na configuration ng CRUX GNU/Linux system at i-save ito sa file na crux_gnulinux-embedded.rootfs, pagkatapos ay magpapatakbo ka ng boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild na maglo-load ng pangunahing configuration mula sa nabanggit na file, gawin ang lahat ng kinakailangang configuration at maghanda ng bootable na ISO. Maginhawa ito kapag, halimbawa, maraming system ang gumagamit ng parehong uri ng configuration: upang hindi mailarawan ang parehong hanay ng mga package sa bawat pagkakataon, gumamit ka ng isang template, batay sa kung saan ka lumikha ng mga boot image ng mga system na may panghuling configuration.

Saan ko magagamit ang lahat ng ito?

Iko-configure mo ang system sa isang file nang isang beses at sa pamamagitan ng pagpapatakbo nito, bubuo at/o ina-update mo ito. Ang sistema ay tumatakbo sa tmpfs, na ginagawa itong mahalagang disposable. Kung nabigo ang system, maaari kang bumalik sa orihinal nitong estado sa isang pag-click sa pindutan ng I-reset. Maaari mong ligtas na patakbuhin ang rm -rf /.

Maaari mong i-configure ang mga configuration ng lahat ng iyong system nang lokal, lumikha ng mga larawan, subukan ang mga ito sa isang virtual machine o hiwalay na hardware, pagkatapos ay i-upload ang mga ito sa isang malayong server at magpatakbo lamang ng dalawang command na kexec -l /vmlinuz β€”initrd=/initrd && kexec -e upang i-update ang buong buong system, i-reboot ito sa tmpfs.

Sa parehong paraan, maaari mong ilipat ang lahat ng mga system, halimbawa sa VDS, upang gumana sa tmpfs, at i-encrypt ang /dev/vda disk at gamitin ito para lamang sa data, nang hindi kinakailangang panatilihin ang operating system dito. Ang tanging "punto ng pagtagas ng impormasyon" sa kasong ito ay magiging "cold dump" lamang ng memorya ng iyong virtual machine, at sa kaganapan ng isang kompromiso ng system (halimbawa, sa pamamagitan ng paghula sa ssh password o isang kahinaan sa Exim), maaari kang mag-download ng bagong ISO sa pamamagitan ng "control panel" ng iyong provider, upang maibalik ang VDS sa operasyon, nang hindi nakakalimutang i-edit ang configuration ng system upang isara ang lahat ng mga kahinaan. Ito ay mas mabilis kaysa sa muling pag-install, kasunod na configuration at/o pagpapanumbalik mula sa isang backup, dahil sa esensya, ang nada-download na ISO sa iyong system ay ang iyong backup. "Pitong problema - isang pag-reset."

Sa huli, maaari kang lumikha ng anumang pamamahagi para sa iyong mga pangangailangan, isulat ito sa isang USB drive at magtrabaho dito, i-update ito kung kinakailangan at muling isulat ito sa USB drive muli. Ang lahat ng data ay naka-imbak sa mga ulap. Hindi mo na kailangang mag-alala tungkol sa kaligtasan ng system at gumawa ng backup kapag ang system, inuulit ko, ay talagang naging "disposable".

Ang iyong mga kagustuhan, mungkahi at komento ay malugod na tinatanggap.

Sa repository sa link sa ibaba mayroong isang detalyadong README file (sa Ingles) na may paglalarawan ng bawat utility at mga halimbawa ng paggamit, mayroon ding detalyadong dokumentasyon sa Russian at isang kasaysayan ng pag-unlad na magagamit sa link: Boobstrap boot script complex.

Pinagmulan: linux.org.ru

Magdagdag ng komento