Kreante bootstrap v1.0 bildojn


Kreante bootstrap v1.0 bildojn

Mi ŝatus prezenti al via atento kadron nomatan boobstrap, skribitan en la POSIX-ŝelo, por krei ekbildojn kun GNU/Linukso-distribuoj. La kadro permesas vin trairi la tutan procezon en nur tri simplaj paŝoj: de deplojado de la sistemo en chroot, kreado de initramfs-bildo kiu inkluzivas la chrooteitan sistemon, kaj finfine startebla ISO-bildo. boobstrap inkluzivas tri ilojn mkbootstrap, mkinitramfs kaj mkbootisofs respektive.

mkbootstrap instalas la sistemon en aparta dosierujo, ekzistas denaska subteno por CRUX, kaj en la kazo de Arch Linux/Manjaro kaj Debian-bazitaj distribuoj, triaj iloj pacstrap, basestrap kaj debootstrap devas esti uzataj respektive.

mkinitramfs kreas initramfs-bildon, vi povas uzi la instalitan sistemon en la dosierujo kiel "superkovraĵo", kunpremita per SquashFS, aŭ post ekŝargo en la sistemon, labori rekte en tmpfs. Do ekzemple, la komando mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd kreos initrd-dosieron, inkluzive de du supermetaĵoj kun "arch- chroot/"-sistemo kaj via "/home", kunpremita per SquashFS, kiun vi tiam povas ekbruligi per PXE en tmpfs, aŭ krei starteblan ISO-bildon per ĉi tiu initrd.

mkbootisofs kreas BIOS/UEFI starteblan ISO-bildon el la specifita dosierujo. Simple metu /boot/vmlinuz kaj /boot/initrd en la dosierujon.

boobstrap ne uzas busybox, kaj por krei funkciantan initramfs-medion, minimuma aro de programoj estas kopiita uzante ldd, necesajn por ekŝargi kaj ŝanĝi al la sistemo. La listo de kopiendaj programoj, kiel ĉio alia, povas esti agordita per la agorda dosiero /etc/boobstrap/boobstrap.conf. Ankaŭ, vi povas instali ajnan minimumisman distribuon en apartan chroot/, el kiu vi tiam povas krei plentaŭgan initramfs-medion. Kiel tia minimumisma, sed samtempe plenrajta medio, oni proponas uzi la ŝablonon "crux_gnulinux-embedded", kiu post xz prenas kompromison de 37 MB. busybox, krom ĝia grandeco, 3-5 MB kontraŭ 30-50 MB de plentaŭga GNU/Linuksa medio, ne plu ofertas avantaĝojn, do uzi busybox en projekto ne ŝajnas taŭga.

Kiel rapide kontroli la funkciojn kaj komenci? Instalu kaj kuru.

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

Vi ankaŭ bezonas instali dependecojn, nome: cpio, grub, grub-efi, dosfstools, xorriso. Uzi squashfs-iloj ne estas necesa; vi povas labori en tmpfs kun la taŭga kvanto da RAM. Se io mankas en la sistemo, boobstrap raportos tion post ekfunkciigo.

Por simpligi la kreadon de agordoj, boobstrap sugestas uzi "ŝablonojn" kaj "sistemojn", kies esenco estas uzi "ŝablonojn" (bootstrap-templates/) por rapide instali sistemojn el dosiero, kaj rekte "sistemojn" (bootstrap-). systems/) uzata por agordi finajn agordojn.

Do ekzemple, ruli la skripton boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild instalos la minimuman agordon de la CRUX GNU/Linuksa sistemo kaj konservos ĝin en la dosiero crux_gnulinux-embedded.rootfs, tiam vi rulos boobstrap/bootstrap-systems. /default/crux_gnulinux.bbuild kiu ŝargos la ĉefan agordon de la menciita dosiero, faros la tutan necesan agordon kaj preparos starteblan ISO. Ĉi tio estas oportuna kiam, ekzemple, multaj sistemoj uzas la saman specon de agordo: por ne priskribi la saman aron da pakaĵoj ĉiufoje, oni uzas unu ŝablonon, surbaze de kiu oni kreas startbildojn de sistemoj kun la fina agordo.

Kie mi povas uzi ĉion ĉi?

Vi agordas la sistemon en dosiero unufoje kaj rulante ĝin vi konstruas kaj/aŭ ĝisdatigas ĝin. La sistemo funkcias en tmpfs, kio faras ĝin esence forĵetebla. Se la sistemo malsukcesas, vi povas reveni al sia originala stato per unu klako de la butono Restarigi. Vi povas sekure ruli rm -rf /.

Vi povas agordi la agordojn de ĉiuj viaj sistemoj loke, krei bildojn, testi ilin en virtuala maŝino aŭ aparta aparataro, poste alŝuti ilin al fora servilo kaj ruli nur du komandojn kexec -l /vmlinuz —initrd=/initrd && kexec -e ĝisdatigi la tutan la tutan sistemon, rekomencante ĝin en tmpfs.

Sammaniere vi povas translokigi ĉiujn sistemojn, ekzemple ĉe VDS, por labori en tmpfs, kaj ĉifri la /dev/vda-diskon kaj uzi ĝin nur por datumoj, sen neceso konservi la operaciumon sur ĝi. La nura "punkto de informa elfluo" en ĉi tiu kazo estos nur la "malvarma rubejo" de la memoro de via virtuala maŝino, kaj en la okazo de kompromiso de la sistemo (ekzemple, divenante la ssh-pasvorton aŭ vundeblecon en Exim), vi povas elŝuti novan ISO per la "kontrolpanelo" de via provizanto, por refunkciigi la VDS, sen forgesi redakti la sisteman agordon por fermi ĉiujn vundeblecojn. Ĉi tio estas pli rapida ol reinstalado, posta agordo kaj/aŭ restarigo de sekurkopio, ĉar esence, la elŝutebla ISO kun via sistemo estas via sekurkopio. "Sep problemoj - unu rekomencigita."

Al la fino, vi povas krei ajnan distribuon por viaj bezonoj, skribi ĝin al USB-disko kaj labori en ĝi, ĝisdatigante ĝin laŭbezone kaj reverkante ĝin al la USB-disko denove. Ĉiuj datumoj estas konservitaj en la nuboj. Vi ne plu bezonas zorgi pri la sekureco de la sistemo kaj fari sekurkopion kiam la sistemo, mi ripetas, esence fariĝis "foruzebla".

Viaj deziroj, sugestoj kaj komentoj estas bonvenaj.

En la deponejo ĉe la suba ligo estas detala README-dosiero (en la angla) kun priskribo de ĉiu utileco kaj ekzemploj de uzo, estas ankaŭ detala dokumentado en la rusa kaj evoluhistorio havebla ĉe la ligo: Boobstrap lanĉa skriptokomplekso.

fonto: linux.org.ru

Aldoni komenton