Dëshiroj të prezantoj një kuadër të quajtur boobstrap, shkruar në POSIX shell, për krijimin e imazheve të ngarkesës me distribucione GNU/Linux. Ky kuadër lejon që të kaloni të gjithë procesin në tri hapa të thjeshtë: nga shpërndarja e sistemit në chroot, krijimi i imazhit initramfs që përfshin sistemin nga chroot, dhe në fund, imazhi i ngarkesës ISO. boobstrap përfshin tre utilitete mkbootstrap, mkinitramfs dhe mkbootisofs përkatësisht.
mkbootstrap instalon sistemin në një drejtorinë të veçantë, ka mbështetje natyrore për CRUX, dhe në rastin e Arch Linux / Manjaro dhe distribucioneve të bazuara në Debian duhet të përdoren utilitete të jashtme pacstrap, basestrap dhe debootstrap përkatësisht.
mkinitramfs krijon njĂ« imazh initramfs, mund tĂ« pĂ«rdorni sistemin e instaluar nĂ« drejtorinĂ« si "overley", e kompresuar me SquashFS, ose tĂ« ngarkoni nĂ« sistem dhe tĂ« punoni drejtpĂ«rdrejt nĂ« tmpfs. PĂ«r shembull, komanda mkinitramfs `mktemp -d` âoverlay "arch-chroot/" âoverlay "/home" âsquashfs-xz âoutput initrd do tĂ« krijojĂ« njĂ« skedar initrd, duke pĂ«rfshirĂ« dy overlay-e me sistemin "arch-chroot/" dhe "/home" tuaj, tĂ« kompresuara me SquashFS, tĂ« cilin mund ta ngarkoni mĂ« pas pĂ«rmes PXE nĂ« tmpfs, ose tĂ« krijoni njĂ« imazh tĂ« ngarkesĂ«s ISO me kĂ«tĂ« initrd.
mkbootisofs krijon një imazh ISO të ngarkueshëm BIOS / UEFI nga direkoria e especificuar. Mjafton të vendosni /boot/vmlinuz dhe /boot/initrd në drejtorinë.
boobstrap nuk përdor busybox, dhe për të krijuar një mjedis funksional initramfs kopjon një grup minimal programesh duke përdorur ldd, të nevojshme për ngarkimin dhe kalimin në sistem. Lista e programeve për t'u kopjuar, ashtu si gjithçka tjetër, mund të konfigurohet përmes skedarit të konfigurimit /etc/boobstrap/boobstrap.conf. Po ashtu, mund të instaloni çdo distribucion minimalistik në një chroot të veçantë, nga i cili më pas të krijoni një ambient të plotë initramfs. Si një ambient minimalistik, por në të njëjtën kohë të plotë, ofrohet modeli 'crux_gnulinux-embedded', i cili pas xz zë 37mb si një kompromis. busybox, përveç madhësisë së tij, 3-5mb përballë 30-50mb të një ambienti të plotë GNU/Linux, nuk ofron asnjë përparësi tjetër, kështu që përdorimi i busybox në projekt nuk duket i arsyeshëm.
Si të kontrolloni shpejt funksionimin dhe të filloni punën? Instalo dhe nis.
# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
Gjithashtu, duhet të instaloni varësitë, domethënë: cpio, grub, grub-efi, dosfstools, xorriso. Përdorimi i squashfs-tools nuk është i domosdoshëm, mund të punoni në tmpfs nëse keni një sasi të mjaftueshme memorie RAM. Në rast se ndonjë gjë mungon në sistem, boobstrap do të njoftojë për këtë gjatë fillimit.
Për të simplifikuar krijimin e konfigurimeve, boobstrap ofron përdorimin e "shablloneve" dhe "sistemeve", qëllimi i të cilave është të përdorin "shabllonet" (bootstrap-templates/) për instalim të shpejtë të sistemeve nga skeda, dhe "sistemet" (bootstrap-systems/) për konfigurimin përfundimtar.
Për shembull, ekzekutimi i skriptit boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild do të instalojë konfigurimin minimal të sistemit CRUX GNU/Linux dhe do ta ruajë atë në skedarin crux_gnulinux-embedded.rootfs. Më pas, ju ekzekutoni boobstrap/bootstrap-systems/default/crux_gnulinux.bbuild, i cili do të ngarkojë konfigurimin fillestar nga skedari i përmendur, do të kryejë të gjitha konfigurimet e nevojshme dhe do të përgatisë një ISO për ngarkim. Kjo është e dobishme kur, për shembull, shumë sisteme përdorin një konfigurim të ngjashëm: për të mos e përshkruar çdo herë të njëjtin grup paketash, ju përdorni një model të vetëm, mbi të cilin më pas krijoni imazhe ngarkimi për sistemet me konfigurimin përfundimtar.
Ku mund të përdoret e gjithë kjo?
Ju e konfiguroni sistemin në një skedë një herë dhe me ekzekutimin e saj e kryeni ndërtimin dhe/ose përditësimin e tij. sistemi funksionon në tmpfs, çka e bënë atë njëherëshe, në thelb. Në rast se sistemi dështon, me një buton Reset ktheheni në gjendjen fillestare. Mund të kryeni me qetësi rm -rf /.
Mund tĂ« konfigurosh tĂ« gjitha sistemet e tua lokal, tĂ« krijosh imazhe, t'i testosh ato nĂ« njĂ« makinĂ« virtuale ose nĂ« njĂ« âharduerâ tĂ« veçantĂ«, pastaj t'i ngarkosh ato nĂ« njĂ« server tĂ« largĂ«t dhe me vetĂ«m dy komanda kexec -l /vmlinuz âinitrd=/initrd && kexec -e mund tĂ« pĂ«rditĂ«sosh tĂ« gjithĂ« sistemin, duke e rinisur atĂ« nĂ« tmpfs.
Po ashtu mund tĂ« transferosh tĂ« gjitha sistemet, pĂ«r shembull nĂ« VDS, pĂ«r tĂ« punuar nĂ« tmpfs, dhe disku /dev/vda ta enkriptoesh e ta pĂ«rdorĂ«sh vetĂ«m pĂ«r tĂ« dhĂ«na, pa pasur nevojĂ« pĂ«r tĂ« mbajtur sistemin operativ nĂ« tĂ«. PikĂ« e vetme e âdaljes sĂ« informacionitâ nĂ« kĂ«tĂ« rast do tĂ« jetĂ« vetĂ«m âdump-i i ftohtĂ«â i memorjes sĂ« makinĂ«s virtuale, dhe nĂ« rast kompromitimi tĂ« sistemit (pĂ«r shembull, pĂ«rmes njĂ« klasi password-i ssh ose njĂ« vulnerabiliteti nĂ« exim), mund tĂ« ngarkosh njĂ« ISO tĂ« ri pĂ«rmes âpjesĂ«s sĂ« menaxhimitâ tĂ« ofruesit tĂ«nd, pĂ«r ta rivĂ«nĂ« VDS-nĂ« nĂ« funksion, pa harruar tĂ« redaktosh konfigurimin e sistemit duke mbyllur tĂ« gjitha vulnerabilitetet. Kjo Ă«shtĂ« mĂ« e shpejtĂ« se sa rinstalimi, konfigurimi dhe/ose rikuperimi nga njĂ« backup, pasi nĂ« thelb, ISO-ja qĂ« ngarkohet me sistemin tĂ«nd Ă«shtĂ« backup-i yt. âShtatĂ« telashe - njĂ« Reset.â
Në fund, mund të krijoni çdo distribucion sipas nevojave tuaja, ta regjistroni në një USB dhe të punoni me të, duke e përditësuar sipas nevojës dhe duke e ripërplasur përsëri në USB. Të gjitha të dhënat ruhen në "re". Nuk është më e nevojshme të shqetësoheni për ruajtjen e sistemit dhe të bëni backup, sepse sistemi, siç e përsëris, në esencë është bërë "i përdorur një herë".
Dëshirat, sugjerimet dhe vërejtjet tuaja janë të mirëpritura.
Në depozitë në linkun e mëposhtëm ka një README të detajuar (në anglisht) me përshkrimin e çdo utilitari dhe shembuj përdorimi, si dhe dokumentacion të detajuar në rusisht dhe historinë e zhvillimit, të disponueshëm në linkun: Grupi i skripteve Bootstrap të ngarkimit.
Burimi: linux.org.ru

