Paghimo bootstrap v1.0 nga mga hulagway


Paghimo bootstrap v1.0 nga mga hulagway

Gusto nakong ipresentar sa imong pagtagad ang usa ka framework nga gitawag og boobstrap, nga gisulat sa POSIX shell, para sa paghimo og mga hulagway sa boot nga adunay GNU/Linux distributions. Ang balangkas nagtugot kanimo sa pag-agi sa tibuok proseso sa tulo lang ka yanong mga lakang: gikan sa pag-deploy sa sistema sa usa ka chroot, paghimo og initramfs nga imahe nga naglakip sa chrooted system, ug sa katapusan usa ka bootable nga ISO image. Ang boobstrap naglakip sa tulo ka mga utilities mkbootstrap, mkinitramfs ug mkbootisofs matag usa.

Ang mkbootstrap nag-instalar sa sistema sa usa ka bulag nga direktoryo, adunay lumad nga suporta alang sa CRUX, ug sa kaso sa Arch Linux / Manjaro ug Debian-based distributions, third-party utilities pacstrap, basestrap ug debootstrap kinahanglang gamiton matag usa.

Ang mkinitramfs nagmugna ug initramfs nga imahe, mahimo nimong gamiton ang na-install nga sistema sa direktoryo ingon usa ka "overlay", gi-compress gamit ang SquashFS, o pagkahuman sa pag-boot sa sistema, direkta nga magtrabaho sa tmpfs. Pananglitan, ang command mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd maghimo ug initrd file, lakip ang duha ka overlay nga adunay "arch- chroot/" system ug ang imong "/home", gi-compress gamit ang SquashFS, nga mahimo nimong i-boot pinaagi sa PXE ngadto sa tmpfs, o paghimo og bootable nga ISO image uban niini nga initrd.

Ang mkbootisofs nagmugna og BIOS/UEFI bootable ISO image gikan sa gipiho nga direktoryo. Ibutang lang ang /boot/vmlinuz ug /boot/initrd sa direktoryo.

Ang boobstrap wala mogamit ug busybox, ug aron makahimo og usa ka nagtrabaho nga initramfs nga palibot, usa ka gamay nga hugpong sa mga programa ang gikopya gamit ang ldd, gikinahanglan aron ma-boot ug mabalhin sa sistema. Ang listahan sa mga programa nga kopyahon, sama sa tanan, mahimong ma-configure pinaagi sa configuration file /etc/boobstrap/boobstrap.conf. Usab, mahimo nimong i-install ang bisan unsang minimalistic nga pag-apod-apod sa usa ka bulag nga chroot/, diin mahimo nimong maghimo usa ka hingpit nga initramfs nga palibot. Ingon nga usa ka minimalistic, apan sa samang higayon hingpit nga palibot, gisugyot nga gamiton ang template nga "crux_gnulinux-embedded", nga pagkahuman sa xz nagkuha usa ka kompromiso nga 37 MB. busybox, gawas sa gidak-on niini, 3-5 MB kumpara sa 30-50 MB sa usa ka hingpit nga GNU/Linux nga palibot, wala na nagtanyag bisan unsang mga bentaha, mao nga ang paggamit sa busybox sa usa ka proyekto ingon og dili angay.

Giunsa pagsusi dayon ang pagpaandar ug pagsugod? Pag-instalar ug pagdagan.

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

Kinahanglan usab nimo nga i-install ang mga dependency, nga mao ang: cpio, grub, grub-efi, dosfstools, xorriso. Ang paggamit sa squashfs-tools dili kinahanglan; mahimo ka magtrabaho sa tmpfs nga adunay angay nga kantidad sa RAM. Kung adunay kulang sa sistema, i-report kini sa boobstrap sa pagsugod.

Aron mapasayon ​​ang paghimo sa mga configuration, ang boobstrap nagsugyot sa paggamit sa "templates" ug "systems", ang esensya niini mao ang paggamit sa "templates" (bootstrap-templates/) aron dali nga ma-install ang mga sistema gikan sa usa ka file, ug direkta nga "systems" (bootstrap- sistema/) gigamit sa pag-set up sa katapusang mga configuration.

Busa pananglitan, ang pagpadagan sa script nga boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild mag-instalar sa minimum nga configuration sa CRUX GNU/Linux system ug i-save kini sa file crux_gnulinux-embedded.rootfs, unya magpadagan ka sa boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild nga mag-load sa nag-unang configuration gikan sa gihisgutan nga file, buhata ang tanan nga gikinahanglan nga configuration ug pag-andam sa usa ka bootable ISO. Kombenyente kini kung, pananglitan, daghang mga sistema ang naggamit sa parehas nga tipo sa pag-configure: aron dili ihulagway ang parehas nga hugpong sa mga pakete matag higayon, mogamit ka usa ka template, nga gibase sa paghimo nimo mga imahe sa boot sa mga sistema nga adunay katapusan nga pag-configure.

Asa nako magamit kining tanan?

Imong gi-configure ang sistema sa usa ka file sa makausa ug pinaagi sa pagpadagan niini imong gitukod ug/o gi-update kini. Ang sistema nagdagan sa tmpfs, nga naghimo niini nga hinungdanon nga magamit. Kung mapakyas ang sistema, mahimo nimong ibalik ang orihinal nga kahimtang sa usa ka pag-klik sa buton I-reset. Mahimo nimong luwas nga modagan ang rm -rf /.

Mahimo nimong i-configure ang mga pag-configure sa tanan nimong mga sistema sa lokal, paghimo og mga imahe, sulayan kini sa usa ka virtual nga makina o lahi nga hardware, dayon i-upload kini sa usa ka hilit nga server ug ipadagan ang duha ra ka mga sugo kexec -l /vmlinuz —initrd=/initrd && kexec -e aron ma-update ang tibuuk nga sistema, i-reboot kini sa tmpfs.

Sa parehas nga paagi, mahimo nimong ibalhin ang tanan nga mga sistema, pananglitan sa VDS, aron magtrabaho sa tmpfs, ug i-encrypt ang /dev/vda disk ug gamiton kini alang lamang sa datos, nga wala kinahanglana nga itago ang operating system niini. Ang bugtong "punto sa pagtagas sa impormasyon" sa niini nga kaso mao lamang ang "bugnaw nga dump" sa panumduman sa imong virtual machine, ug sa panghitabo sa usa ka pagkompromiso sa sistema (pananglitan, pinaagi sa pagtag-an sa ssh password o usa ka kahuyang sa Exim), mahimo nimong i-download ang usa ka bag-ong ISO pinaagi sa "control panel" sa imong provider, aron ibalik ang VDS sa operasyon, nga dili makalimtan ang pag-edit sa configuration sa sistema aron masira ang tanan nga mga kahuyangan. Kini mas paspas kay sa pag-instalar pag-usab, sunod nga configuration ug/o pag-uli gikan sa backup, tungod kay sa esensya, ang ma-download nga ISO sa imong sistema mao ang imong backup. "Pito ka kasamok - usa ka pag-reset."

Sa katapusan, makahimo ka og bisan unsa nga pag-apod-apod alang sa imong mga panginahanglan, isulat kini sa usa ka USB drive ug pagtrabaho niini, pag-update niini kung gikinahanglan ug pagsulat pag-usab sa USB drive pag-usab. Ang tanan nga datos gitipigan sa mga panganod. Dili na nimo kinahanglan mabalaka bahin sa kaluwasan sa sistema ug maghimo usa ka backup kung ang sistema, akong gisubli, nahimo nang "disposable".

Ang imong mga gusto, mga sugyot ug mga komento gidawat.

Sa repository sa link sa ubos adunay usa ka detalyado nga README file (sa English) nga adunay usa ka paghulagway sa matag utility ug mga pananglitan sa paggamit, adunay usab detalyado nga dokumentasyon sa Russian ug usa ka kasaysayan sa pag-uswag nga magamit sa link: Boobstrap boot script complex.

Source: linux.org.ru

Idugang sa usa ka comment