Po samo enem mesecu počasnega razvoja je izšla boobstrap v1.2 — nabor orodij za POSIX shell za ustvarjanje zagonskih slik in pomnilnikov.
Boobstrap omogoča z eno samo ukazno:
- Ustvariti initramfs sliko, ki vključuje katerikoli GNU/Linux distribucijo.
- Ustvariti zagonske ISO slike z katerokoli GNU/Linux distribucijo.
- Ustvariti zagonske USB, HDD, SSD pomnilnike z katerokoli GNU/Linux distribucijo.
Posebnost je v tem, da bo po nalaganju GNU/Linux deloval bodisi v popolnoma čistem tmpfs bodisi z uporabo Overlay FS in SquashFS slik, po vaši izbiri. Ustvarite katerokoli GNU/Linux distribucijo v imeniku, izvedete vse potrebne nastavitve (lahko v ločenem imeniku), nato pa z enim samim ukazom ustvarite zagonsko napravo, naj gre za ISO sliko, USB, HDD ali SSD pomnilnik, prav tako lahko ustvarite initrd sliko s sistemom. Sistem bo vedno v enakem stanju in v primeru okvare se lahko z enim pritiskom na gumb Reset vrnete v izhodiščno stanje. Želite prenesti sistem na drugo gostiteljsko napravo ali iz obstoječega kontejnerja ustvariti sistem? Boobstrap bo to omogočil.
Ključne spremembe:
- Dodana podpora za zagonski nalagalnik syslinux, poleg že obstoječega grub2. Zdaj lahko izberete uporabo bodisi grub2 bodisi syslinux, ali pa oboje hkrati, ko ustvarjate zagonsko napravo ali ISO sliko, za kar skrbita možnosti —legacy-boot syslinux in —efi grub2, prav tako pa lahko izbirate, katere načine zagona bo podpirala ISO slika.
- Dodana je možnost —bootable, ki vsakemu blokovnemu napravo doda možnost zagona. Za ustvarjanje ISO slik je treba uporabiti možnost —iso-9660.
- Dodane so možnosti za nalaganje jedra boobs.use-shmfs za kopiranje vsebine vseh ovirov v tmpfs, boobs.use-overlayfs za nalaganje z uporabo Overlay FS, boobs.search-rootfs za izbiro vira s sistemom, boobs.copy-to-ram za kopiranje sistema v pomnilnik z naknadnim izklopom naprave.
- Edina obvezna odvisnost za delovanje boobstrap je le cpio. Druge odvisnosti so neobvezne: grub2, syslinux - potrebni za ustvarjanje zagonskih medijev, cdrkit ali xorriso po izbiri - za ustvarjanje ISO, squashfs-tools za ustvarjanje SquashFS, vendar nič ne ovira, da uporabite možnost --cpio namesto --squashfs za pakiranje vaše distribucije v arhiv. busybox bo uporabljen le, če je nameščen, sicer bodo vse potrebne utilite kopirane iz vašega sistema. Tako je delo boobstrap zagotovljeno praktično povsod.
Na primer, naslednji ukaz bo ustvaril initrd sliko, vključno z gentoo-chroot/ sistemom, pakiranim kot SquashFS sliko, ki bo uspešno naložena po nalaganju samega initrd. Spomnite se, da je za uporabo Overlay FS skupaj s SquashFS potrebno predati možnost jedru boobs.use-overlayfs, sicer bo sistem razpakiran v tmpfs. Vse dodatne nastavitve je mogoče opraviti v ločeni imenik, na primer gentoo-settings/
# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd
initrd slika s sistemom znotraj je priročna, ko je potrebno hitro razpakirati sistem, na primer preko PXE, ali pa preklopiti v initrd na naloženem sistemu z uporabo ukaza kexec -l /boot/vmlinuz-* --initrd=./initrd && kexec -e, ali pa v vmesniku virtualnega stroja QEMU (morda celo Proxmox) naložiti iz oddaljenega vira z uporabo treh ukazov IPXE: kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Kot vidite, tudi običajen initrd z vašim sistemom znotraj ima številne možnosti uporabe.
Za ustvarjanje zagonskih naprave in slik se uporablja ukaz mkbootisofs, na primer, tako izgleda ustvarjanje ISO slike z možnostjo --iso-9660, ki uporablja syslinux za zagon v Legacy-mode (BIOS) in grub2 za zagon v EFI-mode (UEFI).
# 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
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs
Lahko določite enega od načina za zagon, ali pa jih sploh ne navedete, ustrezna ISO slika bo uspešno ustvarjena.
Namestitev na katerikoli medij z nadaljnjim nalaganjem z njega se izvede z možnostjo --bootable. Morate samostojno ustvariti particije na mediju (fdisk) in jih formatirati (mkdosfs, mke2fs itd.), nato pa namestiti napravo v imenik.
# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ —bootable —legacy-boot grub2 —efi grub2
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs
Pozor! Opcija —bootable določa, iz katere blazine naprave je narejena mapa in namesti zagonski program na to napravo. Če pozabite priključiti napravo ali pomotoma navedete mapo, ki se nahaja na /dev/sda, bo zagonski program na /dev/sda prepisan. Uporabite —bootable previdno.
Namestitev katere koli GNU/Linux sisteme se zmanjša na samo eno ukaz. Namestitev je mogoče izvesti na katerem koli HDD, SSD itd. Spomniti se je treba, da je to še vedno sistem, ki deluje iz Overlay FS / SquashFS, ali pa se popolnoma nalaga v tmpfs, po izbiri.
Poleg vsega ima boobstrap vrsto zanimivih lastnosti in dodatnih možnosti!
Na primer, lahko oblikujete lastni boobstrap initrd z ukazom mkinitramfs `mktemp -d` > /boot/initrd in se zaženete v svoj sistem s tem initrd, če navedete možnosti jedra boobs.use-overlayfs boobs.search-rootfs=/dev/sda1. V tem primeru bo /dev/sda1, kjer je nameščen vaš domači sistem, povezan kot read-only sloj Overlay FS, vse spremembe, ki jih naredite, pa se bodo snemale le začasno v tmpfs. Lahko dodate možnost boobs.copy-to-ram in nato bo celoten vaš sistem kopiran v RAM, trdi disk pa lahko odklopite od računalnika. Priročno, kadar morate nekaj pokvariti, vse spremembe pa lahko preprosto vrnete nazaj s ponovnim zagonom. 🙂
Ampak kaj, če želite vseeno obdržati vse spremembe v sistemu? Na primer, namestili ste programsko opremo ali kaj drugega. Pri delu v čistim tmpfs to ni mogoče, vendar, če ste se zagnali z uporabo Overlay FS, se vse spremembe, ki se zgodijo v sistemu, shranijo v ločeno tmpfs-direktorij: /mnt/overlayfs/rootfs-changes! Scenarij uporabe je zelo preprost. Zagnali ste se v svoj sistem z USB naprave, delali, želeli shraniti vse, kar je bilo spremenjeno, zato ustvarite cpio-arhiv in ga shranite tukaj, na to USB napravo.
# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD
Lahko arhiv postavite poleg drugih SquashFS in cpio „plasti“, tako da bo ob naslednjem nalaganju arhiv povezan kot še ena read-only plast. Za nadaljevanje dela s spremembami uporabite možnost nalaganja boobs.rootfs-changes=\/rootfs-changes.cpio. Možnost boobs.rootfs-changes povezuje določeno plast z dostopom za spreminjanje. Plast lahko predstavlja blok naprave, na primer lahko navedete \/dev\/sdb1, tako da se bodo vse spremembe, ki jih naredite v Overlay FS, preprosto shranile na \/dev\/sdb1.
Boobstrap, kljub širokim možnostim, še vedno ostaja v razvoju, vsi vaši komentarji in predlogi so dobrodošli!
Izvor: linux.org.ru

