Vytváranie zavádzacích obrazov boobstrap v1.2


Vytváranie zavádzacích obrazov boobstrap v1.2

Po iba mesiaci neponáhľanej práci bol vydaný boobstrap v1.2 — súbor nástrojov na POSIX shell na vytváranie zavádzacích obrazov a zariadení.

Boobstrap umožňuje jediným príkazom:

  • Vytvorenie initramfs obrazu, ktorý zahŕňa akýkoľvek distribúciu GNU/Linux.
  • Vytvorenie zavádzacích ISO obrazov s akoukoľvek distribúciou GNU/Linux.
  • Vytvorenie zavádzacích USB, HDD, SSD zariadení s akoukoľvek distribúciou GNU/Linux.

Poznávacou črtou je, že po zavedení GNU/Linux bude fungovať buď plne v čistom tmpfs, alebo s použitím Overlay FS a SquashFS obrazov, podľa vášho výberu. Nainštalujete akúkoľvek distribúciu GNU/Linux do adresára, vykonáte všetky potrebné nastavenia (môže byť v samostatnom adresári), po čom jediným príkazom vytvoríte zavádzacie zariadenie, či už je to ISO obraz, USB, HDD, SSD zariadenie, alebo môžete vytvoriť aj initrd obraz so systémom. Systém bude vždy v jednom stave a v prípade poruchy sa môžete vrátiť do pôvodného stavu stlačením jedného tlačidla Reset. Chcete preniesť systém na iný hostiteľ, alebo vytvoriť systém z existujúceho kontajnera? Boobstrap to urobí.

Z kľúčových zmien:

  • Pridaná podpora zavádzača syslinux, okrem už existujúceho grub2. Teraz môžete na výber použiť buď grub2, alebo syslinux, alebo oboje súčasne, keď vytvárate zavádzacie zariadenie alebo ISO obraz, za čo zodpovedajú voľby —legacy-boot syslinux a —efi grub2, pričom je možné aj vybrať, aké režimy zavádzania bude ISO obraz podporovať.
  • Pridaná možnosť —bootable, ktorá robí akékoľvek blokové zariadenie zavádzacím. Pre vytváranie ISO obrazov by mala byť použitá voľba —iso-9660.
  • Pridané voľby zavádzania jadra boobs.use-shmfs pre kopírovanie obsahu všetkých overlayov do tmpfs, boobs.use-overlayfs pre zavádzanie s použitím Overlay FS, boobs.search-rootfs pre výber zdroja so systémom, boobs.copy-to-ram pre kopírovanie systému do pamäte s následným odpojením zariadenia.
  • Jedina povinná závislosť pre správu boobstrap je len cpio. Ostatné závislosti sú voliteľné: grub2, syslinux sú potrebné na vytvorenie bootovacích médií, cdrkit alebo xorriso podľa výberu na vytvorenie ISO, squashfs-tools na vytvorenie SquashFS, avšak nič nebráni použitiu možnosti —cpio namiesto —squashfs na zabalenie vášho distribučného archívu. busybox bude použitý iba ak je nainštalovaný, ale ak nie, všetky potrebné nástroje sa skopírujú z vášho systému. Týmto je práca boobstrap zaručená prakticky všade.

Napríklad, nasledujúci príkaz vytvorí initrd obraz vrátane gentoo-chroot/ systému, zabaleného ako SquashFS obraz, ktorý bude úspešne načítaný po načítaní samotného initrd. Pripomínam, že na použitie Overlay FS spolu so SquashFS je potrebné predložiť možnosť jadru boobs.use-overlayfs, inak sa systém rozbalí do tmpfs. Všetky ďalšie nastavenia môžu byť vykonané v samostatnom adresári, napríklad gentoo-settings/

# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd

initrd-obraz so systémom vo vnútri je pohodlný, keď je potrebné rýchlo rozšíriť systém, napríklad cez PXE, alebo na načítanom systéme prejsť do initrd použitím príkazu kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, alebo sa nachádzajúc v rozhraní virtuálneho stroja QEMU (možno aj Proxmox), naštartovať z vzdialeného zdroja pomocou troch príkazov IPXE: kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Ako vidíte, aj obyčajný initrd s vaším systémom vo vnútri má množstvo možností použitia.

Na vytvorenie bootovacích nosičov a obrazov sa používa príkaz mkbootisofs, napríklad takto vyzerá vytvorenie ISO obrazu s možnosťou —iso-9660 používajúc syslinux na bootovanie v Legacy-mode (BIOS) a grub2 na bootovanie 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

Môžete uviesť jeden z režimov bootovania, alebo ich nemusíte vôbec uvádzať, príslušný ISO obraz bude úspešne vytvorený.

Inštalácia na akýkoľvek nosič s následným bootovaním z neho sa vykonáva cez možnosť —bootable. Je potrebné samostatne vytvoriť oddiely na nosiči (fdisk) a naformátovať ich (mkdosfs, mke2fs atď.), po čom je potrebné pripojiť zariadenie do adresára.

# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ —bootable —legacy-boot grub2 —efi grub2
—overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs

Opatrne! Možnosť —bootable určuje, z ktorého blokového zariadenia je pripojený adresár a nastavuje bootloader na toto zariadenie. Ak zabudnete pripojiť zariadenie alebo nesprávne uvediete adresár, ktorý sa napríklad nachádza na /dev/sda, bootloader na /dev/sda sa prepisuje. Používajte —bootable s opatrnosťou.

Inštalácia akejkoľvek GNU/Linux systém sa znižuje na jeden príkaz. Inštaláciu je možné vykonať na akomkoľvek HDD, SSD a podobne. Je potrebné pripomenúť, že ide o systém, ktorý stále funguje z Overlay FS / SquashFS, alebo sa úplne nabootuje do tmpfs, podľa výberu.

Okrem všetkého má boobstrap množstvo zaujímavých vlastností a dodatočných možností!

Napríklad, môžete vytvoriť vlastný boobstrap initrd príkazom mkinitramfs `mktemp -d` > /boot/initrd a naštartovať do svojej sústavy s týmto initrd, uvedením volieb jadra boobs.use-overlayfs boobs.search-rootfs=/dev/sda1. V takom prípade bude /dev/sda1, kde je nainštalovaná vaša domáca sústava, pripojená ako read-only vrstva Overlay FS, a všetky zmeny, ktoré vykonáte, sa zapíšu iba dočasne do tmpfs. Môžete pridať voľbu boobs.copy-to-ram a potom sa celý váš systém skopíruje do RAM, a pevný disk môžete odpojiť od počítača. Je to praktické, keď potrebujete niečo pokaziť, a zmeny môžete jednoducho vrátiť reštartovaním. 🙂

Ale čo ak budete musieť napriek tomu uložiť všetky zmeny v systéme? Napríklad ste nainštalovali softvér alebo niečo iné. Pri práci v čistom tmpfs to žiaľ nie je možné, ale ak ste sa načítali s použitím Overlay FS, všetky zmeny, ktoré sa v systéme dejú, sa ukladajú do samostatného tmpfs adresára: /mnt/overlayfs/rootfs-changes! Scenár použitia je veľmi jednoduchý. Načítali ste sa do svojej sústavy z USB zariadenia, pracovali ste, chceli ste uložiť všetko, čo sa zmenilo, vytvorte cpio archív a uložte ho tu, na toto tiež USB zariadenie.

# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Môžete umiestniť archív vedľa iných vrstiev SquashFS a cpio, potom pri následnom spúšťaní bude archív pripojený ako len ďalšia read-only vrstva. Pre pokračovanie v práci so zmenami, použite možnosť zavádzania boobs.rootfs-changes=\/rootfs-changes.cpio. Možnosť boobs.rootfs-changes pripojí zadanú vrstvu s prístupom na zmenu. Vrstva môže byť blokové zariadenie, napríklad môžete zadať \/dev\/sdb1, potom všetky zmeny vykonané v Overlay FS sa jednoducho uložia na \/dev\/sdb1.

Boobstrap, napriek svojim širokým možnostiam, sa stále nachádza vo fáze vývoja. Všetky vaše pripomienky a návrhy sú vítané!

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster