După doar o lună dezvoltare negră și a avut loc lansarea boobstrap v1.2 — un set de instrumente în POSIX shell pentru crearea imaginilor de boot și a dispozitivelor.
Boobstrap permite cu o singură comandă:
- Crearea unei imagini initramfs, incluzând orice distribuție GNU/Linux.
- Crearea imaginilor ISO de boot cu orice distribuție GNU/Linux.
- Crearea dispozitivelor USB, HDD, SSD de boot cu orice distribuție GNU/Linux.
Particularitatea constă în faptul că, după bootare, GNU/Linux va funcționa fie complet în tmpfs curat, fie folosind Overlay FS și imagini SquashFS, la alegerea dumneavoastră. Instalați orice distribuție GNU/Linux într-un director, efectuați toate configurațiile necesare (poate fi într-un director separat), după care cu o singură comandă creați un dispozitiv de boot, fie că este o imagine ISO, USB, HDD, SSD, sau puteți crea și o imagine initrd cu sistemul. Sistemul va fi întotdeauna în aceeași stare și, în caz de defecțiune, puteți reveni la starea inițială apăsând un buton de Reset. Doriți să mutați sistemul pe un alt host sau să creați un sistem dintr-un container existent? Boobstrap va face asta.
Dintre modificările importante:
- A fost adăugată suport pentru bootloader-ul syslinux, pe lângă grub2. Acum puteți alege să folosiți fie grub2, fie syslinux, fie ambele împreună, atunci când creați un dispozitiv de boot sau o imagine ISO, pentru care răspund opțiunile —legacy-boot syslinux și —efi grub2, de asemenea puteți alege ce moduri de boot va suporta imaginea ISO.
- A fost adăugată opțiunea —bootable, care face orice dispozitiv de bloc bootabil. Pentru a crea imagini ISO, trebuie utilizată opțiunea —iso-9660.
- Au fost adăugate opțiuni de boot pentru kernel boobs.use-shmfs pentru copierea conținutului tuturor overlay-urilor în tmpfs, boobs.use-overlayfs pentru bootare folosind Overlay FS, boobs.search-rootfs pentru alegerea sursei cu sistemul, boobs.copy-to-ram pentru copierea sistemului în memorie cu deconectarea ulterioară a dispozitivului.
- Singura dependență obligatorie pentru funcționarea boobstrap este cpio. Celelalte dependențe sunt opționale: grub2, syslinux – necesare pentru crearea suporturilor de boot, cdrkit sau xorriso la alegere – pentru crearea de ISO, squashfs-tools pentru a crea SquashFS, dar nimic nu te împiedică să folosești opțiunea –cpio în loc de –squashfs pentru a arhiva distribuția ta. busybox va fi utilizat doar dacă este instalat; în caz contrar, vor fi copiate toate utilitarele necesare din sistemul tău. Astfel, funcționarea boobstrap este garantată aproape peste tot.
De exemplu, comanda următoare va crea o imagine initrd incluzând sistemul gentoo-chroot/ ambalat ca o imagine SquashFS, care va fi încărcată cu succes după bootarea initrd-ului. Îți reamintesc că, pentru a folosi Overlay FS împreună cu SquashFS, trebuie să treci opțiunea nucleei boobs.use-overlayfs; altfel, sistemul va fi desfăcut în tmpfs. Toate configurațiile suplimentare pot fi făcute într-un director separat, de exemplu, gentoo-settings/
# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd
Imaginea initrd cu sistemul inclus este convenabilă atunci când trebuie să desfășori rapid un sistem, de exemplu, prin PXE, sau să comuți în initrd pe un sistem pornit folosind comanda kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, sau chiar din interfața unei mașini virtuale QEMU (posibil chiar Proxmox), să te bootezi dintr-o sursă remote folosind trei comenzi IPXE: kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Așa cum vezi, chiar și un initrd obișnuit cu sistemul tău inclus are multe opțiuni de utilizare.
Pentru a crea suporturi și imagini de boot, se folosește comanda mkbootisofs; de exemplu, așa arată crearea unei imagini ISO cu opțiunea –iso-9660 folosind syslinux pentru boot în Legacy-mode (BIOS) și grub2 pentru boot în 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
Poți specifica unul dintre modurile de boot, sau poți să nu le specifici deloc; imaginea ISO corespunzătoare va fi creată cu succes.
Instalarea pe orice suport cu bootare ulterioară se realizează cu opțiunea –bootable. Trebuie să îți creezi singur partițiile pe suport (fdisk) și să le formatezi (mkdosfs, mke2fs și așa mai departe), după care să montezi dispozitivul în director.
# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ —bootable —legacy-boot grub2 —efi grub2
—overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs
Atenție! Opțiunea —bootable determină din ce dispozitiv de stocare bloc este montat directorul și instalează încărcătorul de sistem în acest dispozitiv. Dacă uitați să montați dispozitivul sau specificați eronat un director care se află, de exemplu, pe /dev/sda, încărcătorul de sistem de pe /dev/sda va fi suprascris. Utilizați —bootable cu precauție.
Instalarea oricărui sistem GNU/Linux se reduce la o singură comandă. Instalarea poate fi efectuată pe orice HDD, SSD și așa mai departe. Merită menționat că este în continuare un sistem care funcționează din Overlay FS / SquashFS, sau se încarcă complet în tmpfs, la alegere.
Pe lângă toate acestea, boobstrap are o serie de caracteristici interesante și opțiuni suplimentare!
De exemplu, puteți crea un initrd personalizat pentru boobstrap folosind comanda mkinitramfs `mktemp -d` > /boot/initrd și să bootezi în sistemul tău cu acest initrd, specificând opțiunile kernel-ului boobs.use-overlayfs boobs.search-rootfs=/dev/sda1. În acest caz, /dev/sda1, unde este instalat sistemul dumneavoastră de acasă, va fi montat ca un strat read-only Overlay FS, iar toate modificările pe care le veți face vor fi salvate temporar în tmpfs. Puteți adăuga opțiunea boobs.copy-to-ram și atunci întregul sistem va fi copiat în RAM, iar hard disk-ul poate fi deconectat de la calculator. E convenabil când trebuie să deteriorați ceva, iar revenirea la starea anterioară poate fi realizată pur și simplu prin repornire. 🙂
Dar ce se întâmplă dacă trebuie, totuși, să salvăm toate modificările în sistem? De exemplu, ați instalat software sau altceva. Când lucrați în tmpfs curat, din păcate, acest lucru nu este posibil, dar dacă ați pornit folosind Overlay FS, toate modificările care au loc în sistem sunt salvate într-un director tmpfs separat: /mnt/overlayfs/rootfs-changes! Scenariul de utilizare este foarte simplu. Ați pornit în sistemul dumneavoastră de pe dispozitivul USB, ați lucrat, ați dorit să salvați tot ce s-a modificat, atunci creați un arhiv în format cpio și plasați-o aici, pe același dispozitiv USB.
# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD
Puteți plasa arhiva alături de alte straturi SquashFS și cpio, astfel încât la încărcarea ulterioară arhiva să fie montată ca un alt strat read-only. Pentru a continua să lucrați cu modificările, folosiți opțiunea de încărcare boobs.rootfs-changes=\/rootfs-changes.cpio. Opțiunea boobs.rootfs-changes montează stratul specificat cu permisiuni de modificare. Un strat poate fi un dispozitiv de bloc, de exemplu, puteți specifica \/dev\/sdb1, astfel încât toate modificările efectuate în Overlay FS vor fi pur și simplu salvate pe \/dev\/sdb1.
Boobstrap, deși are multe funcționalități, este încă în dezvoltare, toate observațiile și sugestiile dumneavoastră sunt apreciate!
Sursa: linux.org.ru

