Čez le en mesec nepretrganega razvoja je izid boobstrap v1.2 - nabor orodij za POSIX shell za ustvarjanje zagonskih slik in naprav.
Boobstrap omogoča z eno samo ukazom:
- Ustvarjanje initramfs slike, ki vključuje katerikoli GNU/Linux distribucijo.
- Ustvarjanje zagonskih ISO slik z katerokoli GNU/Linux distribucijo.
- Ustvarjanje zagonskih USB, HDD, SSD naprav z katerokoli GNU/Linux distribucijo.
Posebnost je, da po zagonu GNU/Linux deluje bodisi v čistem tmpfs bodisi z uporabo Overlay FS in SquashFS slik, odvisno od vašega izbora. Namestite katerokoli GNU/Linux distribucijo v mapo, izvedite vse potrebne nastavitve (lahko v ločeni mapi), nato pa z enim ukazom ustvarite zagon naprave, bodisi da gre za ISO sliko, USB, HDD, SSD napravo, ali pa lahko ustvarite tudi initrd sliko s sistemom. Sistem bo vedno v istem stanju in v primeru napake se lahko s pritiskom na gumba Reset vrnete v prvotno stanje. Želite prenesti sistem na drug strežnik ali ustvariti sistem iz obstoječega kontejnerja? Boobstrap to omogoča.
Ključne spremembe:
- Dodana podpora za nalagalnik syslinux, poleg že obstoječega grub2. Sedaj lahko izbirate med grub2 ali syslinux, ali pa obema skupaj, ko ustvarjate zagon napravo ali ISO sliko, kar omogočajo možnosti —legacy-boot syslinux in —efi grub2, prav tako lahko izbirate, kateri načini zagona bodo podprti v ISO sliki.
- Dodana možnost —bootable, ki naredi katerikoli blok napravo zagonsko. Za ustvarjanje ISO slik mora biti uporabljena možnost —iso-9660.
- Dodane možnosti za zagon jedra boobs.use-shmfs za kopiranje vsebine vseh ovijalcev v tmpfs, boobs.use-overlayfs za zagon z uporabo Overlay FS, boobs.search-rootfs za izbiro vira z sistemom, boobs.copy-to-ram za kopiranje sistema v pomnilnik z naknadnim izklopom naprave.
- Edina obavezna zavisnost za rad boobstrap-a je samo cpio. Ostale zavisnosti su opcionale: grub2, syslinux - potrebne su za pravljenje bootable medija, cdrkit ili xorriso po izboru - za kreiranje ISO-a, squashfs-tools za pravljenje SquashFS, međutim ništa ne sprečava da se koristi opcija —cpio umesto —squashfs za pakovanje vašeg distribucije u arhivu. busybox će biti korišćen samo ako je instaliran, ali ako nije, biće kopirane sve potrebne utilite iz vaše sistem. Na taj način, rad boobstrap-a je garantovan praktično svuda.
Na primer, sledeća komanda će kreirati initrd sliku uključujući u nju gentoo-chroot/ sistem, spakovan kao SquashFS slika, koja će biti uspešno učitana nakon učitavanja samog initrd-a. Podsećam, da biste koristili Overlay FS zajedno sa SquashFS, neophodno je proslediti opciju jezgru boobs.use-overlayfs, inače će sistem biti raspakovan u tmpfs. Sve dodatne podešavanja mogu se napraviti u posebnoj direktoriji, na primer gentoo-settings/
# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd
initrd-slika sa sistemom unutra je pogodna kada je potrebno brzo raspakovati sistem, na primer, preko PXE, ili na učitanom sistemu prebaciti se u initrd koristeći komandu kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, ili čak nalazeći se u interfejsu virtuelne mašine QEMU (možda čak i Proxmox), učitati iz udaljenog izvora koristeći tri komande IPXE: kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Kao što vidite, čak i običan initrd sa vašim sistemom unutra ima mnoštvo mogućnosti korišćenja.
Za kreiranje bootable medija i slika koristi se komanda mkbootisofs, na primer, ovako izgleda kreiranje ISO slike sa opcijom —iso-9660 koristeći syslinux za podizanje u Legacy-mode (BIOS) i grub2 za podizanje u 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
Možete navesti jedan od režima pokretanja, ili ih potpuno izostaviti, odgovarajući ISO obraz će biti uspešno kreiran.
Instalacija na bilo koji medij sa kasnijim podizanjem sa njega vrši se opcijom —bootable. Potrebno je samostalno kreirati particije na mediju (fdisk) i formatirati ih (mkdosfs, mke2fs i tako dalje), a zatim montirati uređaj u direktoriju.
# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ —bootable —legacy-boot grub2 —efi grub2
—overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs
Pažnja! Opcija —bootable določа, iz katerega blokovnega naprava je pritrjena mapa in nastavi nalagalnik na to napravo. Če pozabite pritrditi napravo ali pomotoma navedete mapo, ki se nahaja, na primer, na /dev/sda, bo nalagalnik na /dev/sda ustrezno prepisan. Uporabite —bootable previdno.
Namestitev katere koli GNU/Linux sistema se zmanjša na eno samo ukaz. Namestitev je mogoče izvesti na kateremkoli HDD, SSD in tako naprej. Spomniti je treba, da je to še vedno sistem, ki deluje iz Overlay FS / SquashFS ali se celotno naloži v tmpfs, po izbiri.
Poleg vsega ima boobstrap vrsto zanimivih lastnosti in dodatnih možnosti!
Na primer, lahko oblikujete podjetni boobstrap initrd z ukazom mkinitramfs `mktemp -d` > /boot/initrd in se naložite v svoj sistem s tem initrd, tako da 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 boste naredili, pa se bodo zapisale le začasno v tmpfs. Lahko dodate možnost boobs.copy-to-ram in tako bo celoten vaš sistem kopiran v RAM, trdi disk pa lahko odklopite od računalnika. Udobno je, ko potrebujete kaj pokvariti, saj lahko spremembe preprosto vrnete z znova zagon.
Kaj pa, če bo vseeno treba shraniti vse spremembe v sistemu? Na primer, namestili ste programsko opremo ali kaj drugega. Pri delu v čistem tmpfs to, na žalost, ni mogoče, vendar če ste se naložili z uporabo Overlay FS, se vse spremembe, ki se dogajajo v sistemu, shranijo v ločeni tmpfs-map: /mnt/overlayfs/rootfs-changes! Scenarij uporabe je zelo preprost. Naložili ste se v svoj sistem z USB naprave, delali, želeli shraniti vse, kar je bilo spremenjeno, nato ustvarite cpio-arhiv in ga položite tukaj, na to isto USB napravo.
# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD
Lahko dodate arhiv poleg drugih SquashFS in cpio „plasti“, tako da bo arhiv med nadaljnjim nalaganjem priključen kot še en read-only sloj. Da bi lahko delali z spremembami, uporabite možnost nalaganja boobs.rootfs-changes=\/rootfs-changes.cpio. Možnost boobs.rootfs-changes priključi določen sloj z dostopom za spremembe. Sloj je lahko blok naprava, na primer lahko navedete \/dev\/sdb1, tako da se bodo vse spremembe, narejene v Overlay FS, preprosto shranile na \/dev\/sdb1.
Boobstrap, kljub obstoječim širokim možnostim, še vedno ostaja v fazi razvoja, vse vaše pripombe in predlogi so upoštevani!
Izvor: linux.org.ru

