Krijimi i imazheve të bootstrap v1.0


Krijimi i imazheve të bootstrap v1.0

Do të doja të paraqes në vëmendjen tuaj një kornizë të quajtur boobstrap, e shkruar në guaskën POSIX, për krijimin e imazheve të nisjes me shpërndarje GNU/Linux. Korniza ju lejon të kaloni të gjithë procesin në vetëm tre hapa të thjeshtë: nga vendosja e sistemit në një chroot, krijimi i një imazhi initramfs që përfshin sistemin chrooted dhe në fund të fundit një imazh ISO të bootueshëm. boobstrap përfshin tre shërbime mkbootstrap, mkinitramfs dhe mkbootisofs përkatësisht.

mkbootstrap instalon sistemin në një drejtori të veçantë, ka mbështetje vendase për CRUX, dhe në rastin e shpërndarjeve të bazuara në Arch Linux / Manjaro dhe Debian, duhet të përdoren përkatësisht shërbimet e palëve të treta pacstrap, basestrap dhe debootstrap.

mkinitramfs krijon një imazh initramfs, mund të përdorni sistemin e instaluar në drejtori si një "mbivendosje", të ngjeshur duke përdorur SquashFS, ose pasi të keni nisur në sistem, të punoni drejtpërdrejt në tmpfs. Kështu 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 mbivendosje me "arch- Sistemi chroot/" dhe "/home" tuaj, të ngjeshur duke përdorur SquashFS, të cilin më pas mund ta nisni përmes PXE në tmpfs, ose të krijoni një imazh ISO të bootueshëm me këtë initrd.

mkbootisofs krijon një imazh ISO të bootable BIOS/UEFI nga drejtoria e specifikuar. Thjesht vendosni /boot/vmlinuz dhe /boot/initrd në drejtori.

boobstrap nuk përdor busybox dhe për të krijuar një mjedis pune initramfs, një grup minimal programesh kopjohet duke përdorur ldd, i nevojshëm për të nisur dhe për të kaluar në sistem. Lista e programeve për të kopjuar, si çdo gjë tjetër, mund të konfigurohet përmes skedarit të konfigurimit /etc/boobstrap/boobstrap.conf. Gjithashtu, mund të instaloni çdo shpërndarje minimaliste në një chroot/ të veçantë, nga i cili më pas mund të krijoni një mjedis initramfs të plotë. Si një mjedis i tillë minimalist, por në të njëjtën kohë i plotë, propozohet përdorimi i shabllonit "crux_gnulinux-embedded", i cili pas xz merr një kompromis prej 37 MB. busybox, përveç madhësisë së tij, 3-5 MB kundrejt 30-50 MB të një mjedisi të plotë GNU/Linux, nuk ofron më asnjë avantazh, kështu që përdorimi i busybox në një projekt nuk duket i përshtatshëm.

Si të kontrolloni shpejt funksionalitetin dhe të filloni? Instaloni dhe ekzekutoni.

# klon git https://github.com/sp00f1ng/boobstrap.git
# rrip cd
# bëj instalim# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Ju gjithashtu duhet të instaloni varësi, përkatësisht: cpio, grub, grub-efi, dosfstools, xorriso. Përdorimi i squashfs-tools nuk është i nevojshëm; ju mund të punoni në tmpfs me sasinë e duhur të RAM-it. Nëse diçka mungon në sistem, boobstrap do ta raportojë këtë pas nisjes.

Për të thjeshtuar krijimin e konfigurimeve, boobstrap sugjeron përdorimin e "templates" dhe "systems", thelbi i të cilave është përdorimi i "shablloneve" (bootstrap-templates/) për të instaluar shpejt sistemet nga një skedar, dhe drejtpërdrejt "sistemet" (bootstrap- sisteme/) përdoret për të vendosur konfigurimet përfundimtare.

Kështu 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 do të ekzekutoni boobstrap-sysstrap /default/crux_gnulinux.bbuild e cila do të ngarkojë konfigurimin primar nga skedari i përmendur, do të bëjë të gjithë konfigurimin e nevojshëm dhe do të përgatisë një ISO të bootable. Kjo është e përshtatshme kur, për shembull, shumë sisteme përdorin të njëjtin lloj konfigurimi: për të mos përshkruar të njëjtin grup paketash çdo herë, përdorni një shabllon, bazuar në të cilin krijoni imazhe të nisjes së sistemeve me konfigurimin përfundimtar.

Ku mund t'i përdor të gjitha këto?

Ju e konfiguroni sistemin në një skedar një herë dhe duke e ekzekutuar e ndërtoni dhe/ose përditësoni atë. Sistemi funksionon në tmpfs, gjë që e bën atë në thelb të disponueshëm. Nëse sistemi dështon, mund të ktheheni në gjendjen e tij origjinale me një klikim të butonit Reset. Ju mund të ekzekutoni me siguri rm -rf /.

Ju mund të konfiguroni konfigurimet e të gjitha sistemeve tuaja në nivel lokal, të krijoni imazhe, t'i testoni ato në një makinë virtuale ose pajisje të veçanta, pastaj t'i ngarkoni në një server të largët dhe të ekzekutoni vetëm dy komanda kexec -l /vmlinuz —initrd=/initrd && kexec -e për të përditësuar të gjithë sistemin, duke e rindezur atë në tmpfs.

Në të njëjtën mënyrë, ju mund të transferoni të gjitha sistemet, për shembull në VDS, për të punuar në tmpfs, dhe të enkriptoni diskun /dev/vda dhe ta përdorni atë vetëm për të dhëna, pa pasur nevojë të mbani sistemin operativ në të. E vetmja "pika e rrjedhjes së informacionit" në këtë rast do të jetë vetëm "deponimi i ftohtë" i kujtesës së makinës suaj virtuale dhe në rast të një kompromisi të sistemit (për shembull, duke hamendësuar fjalëkalimin ssh ose një dobësi në Exim), mund të shkarkoni një ISO të re përmes "panelit të kontrollit" të ofruesit tuaj, për të rikthyer VDS në funksionim, pa harruar të modifikoni konfigurimin e sistemit për të mbyllur të gjitha dobësitë. Kjo është më e shpejtë se riinstalimi, konfigurimi i mëvonshëm dhe/ose rivendosja nga një kopje rezervë, sepse në thelb, ISO e shkarkueshme me sistemin tuaj është rezervimi juaj. "Shtatë telashe - një rivendosje."

Në fund, mund të krijoni çdo shpërndarje për nevojat tuaja, ta shkruani në një disk USB dhe të punoni në të, duke e përditësuar sipas nevojës dhe duke e rishkruar përsëri në diskun USB. Të gjitha të dhënat ruhen në retë. Ju nuk keni më nevojë të shqetësoheni për sigurinë e sistemit dhe të bëni një kopje rezervë kur sistemi, e përsëris, në thelb është bërë "i disponueshëm".

Dëshirat, sugjerimet dhe komentet tuaja janë të mirëseardhura.

Në depo në lidhjen më poshtë ka një skedar të detajuar README (në anglisht) me një përshkrim të çdo mjeti dhe shembuj të përdorimit, ka gjithashtu dokumentacion të detajuar në Rusisht dhe një histori zhvillimi të disponueshëm në lidhjen: Kompleksi i skriptit të nisjes Boobstrap.

Burimi: linux.org.ru

Shto një koment