Pas pas një muaji përgatitje të ngadaltë u realizua lëshimi i boobstrap v1.2 – një grup mjetesh në POSIX shell për krijimin e imazheve dhe disqeve të ngarkimit. Boobstrap lejon me një komandë të vetme:
Të krijoni një imazh initramfs, duke përfshirë çdo shpërndarje GNU/Linux.
- Të krijoni imazhe ISO të ngarkimit me çdo shpërndarje GNU/Linux.
- Të krijoni disqe USB, HDD, SSD të ngarkimit me çdo shpërndarje GNU/Linux.
- Veçoria është se pas ngarkimit GNU/Linux do të punojë ose plotësisht në tmpfs tëpastër, ose duke përdorur Overlay FS dhe imazhe SquashFS, sipas zgjedhjes suaj. Ju vendosni çdo shpërndarje GNU/Linux në një direktorium, bëni të gjitha konfigurimet e nevojshme (mund të bëni në një direktorium të veçantë), dhe pastaj me një komandë të vetme krijoni një pajisje ngarkimi, qoftë ajo imazh ISO, USB, HDD, SSD, ose mund të krijoni edhe një imazh initrd me sistemin. Sistemi gjithmonë do të jetë në një gjendje të njëjtë dhe në rast defekti mund të ktheheni në gjendjen e mëparshme me një buton Riset. Dëshironi të transferoni sistemin në një host tjetër, ose të krijoni një sistem nga një kontenier ekzistues? Boobstrap do ta bëjë këtë.
Nga ndryshimet kryesore:
Është shtuar mbështetje për bootloader-in syslinux, përveç grub2 që tashmë ekziston. Tani mund të përdorni ose grub2, ose syslinux, ose të dyja së bashku, kur krijoni një pajisje ngarkimi ose imazh ISO, për çka përgjigjen opsionet —legacy-boot syslinux dhe —efi grub2 përkatësisht, dhe gjithashtu mund të zgjidhni cilat mënyra ngarkimi do të mbështesë imazhi ISO.
- Është shtuar opsioni —bootable, i cili e bën çdo pajisje bllokimi të ngarkueshme. Për krijimin e imazheve ISO duhet të përdoret opsioni —iso-9660.
- Shtuar opsionet e ngarkimit të bërthamës boobs.use-shmfs për kopjimin e përmbajtjes së të gjitha overlay-eve në tmpfs, boobs.use-overlayfs për ngarkimin duke përdorur Overlay FS, boobs.search-rootfs për të zgjedhur burimin me sistemin, boobs.copy-to-ram për kopjimin e sistemit në kujtesë me çaktivizimin përfundimtar të pajisjes.
- Një varësi e vetme e detyrueshme për funksionimin e boobstrap është vetëm cpio. Varësitë e tjera janë opsionale: grub2, syslinux janë të nevojshme për krijimin e mjeteve ngarkuese, cdrkit ose xorriso sipas zgjedhjes për krijimin e ISO, squashfs-tools për krijimin e SquashFS, megjithëse asgjë nuk e ndalon përdorimin e opsionit —cpio në vend të —squashfs për paketimin e shpërndarjes suaj në arkiv. busybox do të përdoret vetëm nëse është instaluar, por nëse jo, do të kopjohen të gjitha utilitetet e nevojshme nga sistemi juaj. Kështu, funksionimi i boobstrap është i garantuar pothuajse në çdo vend.
- Për shembull, komandat e mëposhtme do të krijojnë një imazh initrd duke përfshirë sistemin gentoo-chroot/ të paketuar si imazh SquashFS, i cili do të ngarkohet me sukses pas ngarkimit të vetë initrd. Kujtojmë, për të përdorur Overlay FS së bashku me SquashFS, duhet t'i dërgoni bërthamës opsionin boobs.use-overlayfs, ndryshe sistemi do të shkarkohet në tmpfs. Të gjitha konfigurimet shtesë mund të bërë në një direktorium të veçantë, për shembull gentoo-settings/
Initrd-imazhi me sistemin brenda është i përshtatshëm kur është e nevojshme të shpërndahen menjëherë sistemet, për shembull, përmes PXE, ose për të kaluar në initrd në një sistem të ngarkuar duke përdorur komandën kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, ose duke qënë në ndërfaqen e një makine virtuale QEMU (ndoshta edhe Proxmox), ngarkohet nga një burim i largët duke përdorur tre komanda IPXE: kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Siç e shihni, për një initrd të zakonshëm me sistemin tuaj brenda, ka shumë mundësi shfrytëzimi.
# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd
Për krijimin e disqeve dhe imazheve ngarkuese përdoret komanda mkbootisofs, për shembull, kështu duket krijimi i imazhit ISO me opsionin —iso-9660 duke përdorur syslinux për ngarkim në mënyrë Legacy (BIOS) dhe grub2 për ngarkim në mënyrë EFI (UEFI).
—overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs
# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir isoimage/
# mkdir isoimage/boot
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ —iso-9660 —legacy-boot syslinux —efi grub2 —output boot.iso
Mund të zgjidhni një nga mënyrat e ngarkimit, ose të mos i tregoni fare, imazhi ISO përkatës do të krijohet me sukses.
Instalimi në çdo pajisje me ngarkesë nga e cila do të ngarkohet është realizuar me opsionin —bootable. Ju duhet vetë të krijoni pjesët në pajisjen (fdisk) dhe t'i formatoni ato (mkdosfs, mke2fs etj.), pastaj të montoni pajisjen në një direktorium.
Kujdes!
# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ —bootable —legacy-boot grub2 —efi grub2
Mund të zgjidhni një nga mënyrat e ngarkimit, ose të mos i tregoni fare, imazhi ISO përkatës do të krijohet me sukses.
Opsioni —bootable përcakton nga cilat pajisje blloku është montuar direktoriumi dhe installon bootloader-in në këtë pajisje. Nëse e harroni të montoni pajisjen ose gabimisht përcaktoni një direktorium, që ndodhet, për shembull, në /dev/sda, përkatësisht bootloader-i në /dev/sda do të mbivendoset. Përdorni —bootable me kujdes. Opsioni —bootable përcakton nga cilat pajisje bllok është montuar direktoria dhe vendos ngarkuesin në këtë pajisje. Nëse harroni të montoni pajisjen ose gabimisht specifikoni një direktor që ndodhet, për shembull, në /dev/sda, përkatësisht ngarkuesi në /dev/sda do të tejkalohet. Përdorni —bootable me kujdes.
Instalimi i çdo sistemi GNU/Linux reduktohet në një komandë të vetme. Instalimi mund të bëhet në çdo HDD, SSD etj. Duhet të kujtojmë se kjo është ende një sistem që funksionon nga Overlay FS / SquashFS, ose që ngarkohet tërësisht në tmpfs, sipas zgjedhjes.
Përveç të gjitha gjërave, boobstrap ka një seri veçorish interesante dhe mundësish shtesë!
Për shembull, mund të formoni initrd të brendshëm të boobstrap me komandën mkinitramfs `mktemp -d` > /boot/initrd dhe të ngarkoheni në sistemin tuaj me këtë initrd, duke e specifikuar opsionin e bërthamës boobs.use-overlayfs boobs.search-rootfs=/dev/sda1. Në këtë rast, /dev/sda1, ku është instaluar sistemi juaj i shtëpisë, do të lidhet si një shtresë read-only Overlay FS, dhe të gjitha ndryshimet që bëni do të ruhen vetëm përkohësisht në tmpfs. Mund të shtoni opsionin boobs.copy-to-ram dhe atëherë e gjithë sistemi juaj do të kopjohet në RAM, dhe disku i fortë mund të shkëputet nga kompjuteri. Kjo është e përshtatshme kur duhet të prisni diçka dhe mund të ktheheni prapa thjesht duke u ristartuar. 🙂
Por çfarë nëse ju nevojitet të ruani të gjitha ndryshimet në sistem? Për shembull, keni instaluar softuer ose diçka tjetër. Kur punoni në një tmpfs të pastër, kjo fatkeqësisht nuk është e mundur, por nëse ngarkohet me përdorimin e Overlay FS, të gjitha ndryshimet që ndodhin në sistem ruhen në një direktori të veçantë tmpfs: /mnt/overlayfs/rootfs-changes! Skema e përdorimit është shumë e thjeshtë. Keni ngarkuar në sistemin tuaj nga një pajisje USB, keni punuar, dëshiruat të ruani gjithçka që ka ndryshuar, atëherë krijoni një arkiv cpio dhe vendoseni këtu, në këtë pajisje USB.
# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD
Mund ta vendosni arkivin pranë shtresave të tjera SquashFS dhe cpio, kështu që gjatë ngarkimit të ardhshëm arkivi do të lidhet si një shtresë tjetër read-only. Për të vazhduar punën me ndryshimet, përdorni opsionin e ngarkimit boobs.rootfs-changes=/rootfs-changes.cpio. Opsioni boobs.rootfs-changes lidh shtresën e caktuar me akses për ndryshim. Një shtresë mund të jetë një pajisje blloku, për shembull, mund të shkruani /dev/sdb1, kështu që të gjitha ndryshimet e bëra në Overlay FS do të ruhen thjesht në /dev/sdb1.
Boobstrap, përkundër mundësive të saj të shumta, ende ndodhet në fazën e zhvillimit, të gjitha komentet dhe sugjerimet tuaja janë të mirëseardhura!
Burimi: linux.org.ru

