Vytváranie obrazov bootstrap v1.2


Vytváranie obrazov bootstrap v1.2

Neskôr len mesiac Po pomalom vývoji bol vydaný boobstrap v1.2 - sada nástrojov na shell POSIX na vytváranie bootovacích obrazov a jednotiek.

Boobstrap vám umožňuje vykonať iba jeden príkaz:

  • Vytvorte obraz initramfs vrátane akejkoľvek distribúcie GNU/Linux v ňom.
  • Vytvorte bootovateľné ISO obrazy s akoukoľvek distribúciou GNU/Linux.
  • Vytvorte bootovateľné USB, HDD, SSD disky s akoukoľvek distribúciou GNU/Linux.

Zvláštnosťou je, že po načítaní GNU/Linux bude fungovať buď úplne v čistom tmpfs, alebo pomocou obrázkov Overlay FS a SquashFS, podľa vášho výberu. Do adresára nainštalujete ľubovoľnú distribúciu GNU/Linux, vykonáte všetky potrebné nastavenia (prípadne v samostatnom adresári), potom jediným príkazom vytvoríte bootovacie zariadenie, či už ide o ISO obraz, USB, HDD, SSD disk, resp. môžete vytvoriť initrd obraz so systémom. Systém bude stále v rovnakom 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ého hostiteľa alebo vytvoriť systém z existujúceho kontajnera? Boobstrap to urobí.

Medzi kľúčové zmeny:

  • Pridaná podpora pre bootloader syslinux, okrem už existujúceho grub2. Teraz si môžete vybrať použitie buď grub2, syslinux, alebo oboch pri vytváraní zavádzacieho zariadenia alebo obrazu ISO s možnosťami --legacy-boot syslinux a --efi grub2, a tiež si môžete vybrať, ktoré režimy Sťahovanie bude podporovať ISO obrázok.
  • Pridaná možnosť --bootable, vďaka ktorej je možné zaviesť akékoľvek blokové zariadenie. Ak chcete vytvoriť obrazy ISO, musíte použiť možnosť --iso-9660.
  • Pridané možnosti zavádzania jadra boobs.use-shmfs na skopírovanie obsahu všetkých prekrytí do tmpfs, boobs.use-overlayfs na zavedenie pomocou Overlay FS, boobs.search-rootfs na výber zdroja so systémom, boobs.copy-to-ram na skopírovanie systému do pamäte a následné vypnutie zariadenia.
  • Jediná požadovaná závislosť na fungovanie boobstrap je cpio. Ostatné závislosti sú voliteľné: grub2, syslinux - potrebné na vytvorenie zavádzacieho média, na výber cdrkit alebo xorriso - na vytvorenie ISO, squashfs-tools na vytvorenie SquashFS, ale nič vám nebráni použiť možnosť -cpio namiesto - squashfs na zabalenie vašej distribúcie do archívu. busybox sa použije iba vtedy, ak je nainštalovaný, ale ak nie, skopírujú sa všetky potrebné nástroje z vášho systému. Boobstrap teda zaručene funguje takmer všade.

Napríklad nasledujúci príkaz vytvorí obraz initrd vrátane gentoo-chroot/systému zabaleného ako obraz SquashFS, ktorý sa úspešne zavedie po načítaní samotného initrd. Dovoľte mi pripomenúť, že ak chcete použiť Overlay FS v spojení so SquashFS, musíte prejsť voľbou jadra boobs.use-overlayfs, inak sa systém rozbalí do tmpfs. Všetky dodatočné nastavenia je možné vykonať v samostatnom adresári, napríklad gentoo-settings/

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

Obraz initrd so systémom vo vnútri je vhodný, keď potrebujete rýchlo nasadiť systém, napríklad cez PXE, alebo na načítanom systéme prepnúť na initrd pomocou príkazu kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, alebo, keďže ste v rozhraní virtuálneho stroja QEMU (možno aj Proxmox), zaveďte systém zo 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á mnoho využití.

Na vytvorenie zavádzacích jednotiek a obrazov sa používa príkaz mkbootisofs, napríklad takto vyzerá vytvorenie obrazu ISO s voľbou -iso-9660 pomocou syslinuxu na zavedenie do Legacy-mode (BIOS) a grub2 na zavedenie do EFI- režim (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 určiť jeden z režimov zavádzania alebo ich nešpecifikovať vôbec, zodpovedajúci obraz ISO sa úspešne vytvorí.

Inštalácia na ľubovoľný disk a následné zavedenie z neho sa vykonáva pomocou voľby --bootable. Musíte vytvoriť oddiely na disku sami (fdisk) a naformátovať ich (mkdosfs, mke2fs atď.) a potom 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

Pozor! Voľba --bootable určuje, z ktorého blokového zariadenia je adresár pripojený a na toto zariadenie nainštaluje bootloader. Ak zabudnete pripojiť zariadenie alebo omylom určíte adresár, ktorý sa nachádza napríklad na /dev/sda, bootloader na /dev/sda sa zodpovedajúcim spôsobom prepíše. --bootable používajte opatrne.

Inštalácia akéhokoľvek systému GNU/Linux je zredukovaná na jeden príkaz. Inštaláciu je možné vykonať na akýkoľvek HDD, SSD atď. Stojí za to pripomenúť, že toto je stále systém, ktorý beží z Overlay FS / SquashFS alebo sa načítava úplne do tmpfs, podľa vášho výberu.

Boobstrap má okrem iného množstvo zaujímavých funkcií a doplnkových možností!

Napríklad môžete vytvoriť vlastný boobstrap initrd pomocou príkazu mkinitramfs `mktemp -d` > /boot/initrd a zaviesť systém pomocou tohto initrd, špecifikujúc možnosti jadra boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. V tomto prípade bude /dev/sda1, kde je nainštalovaný váš domáci systém, pripojený ako vrstva Overlay FS určená len na čítanie a všetky zmeny, ktoré vykonáte, sa zapíšu len dočasne do tmpfs. Môžete pridať možnosť boobs.copy-to-ram a potom sa celý váš systém skopíruje do pamäte RAM a pevný disk sa dá odpojiť od počítača. Pohodlné, keď potrebujete niečo pokaziť, a zmeny môžete vrátiť späť jednoduchým reštartom. 🙂

Čo ak však stále potrebujete 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 je to bohužiaľ nemožné, ale ak ste zaviedli systém pomocou Overlay FS, všetky zmeny, ktoré sa vyskytnú v systéme, sa uložia do samostatného adresára tmpfs: /mnt/overlayfs/rootfs-changes! Scenár použitia je veľmi jednoduchý. Zaviedli ste systém zo zariadenia USB, vykonali ste nejakú prácu a chceli ste uložiť všetko, čo sa zmenilo, potom ste vytvorili archív cpio a umiestnili ho sem, na rovnaké zariadenie USB.

# cd /mnt/overlayfs/rootfs-changes
# Nájsť . -tlač0 | cpio --create --format "newc" --null --quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Archív môžete umiestniť vedľa iných vrstiev SquashFS a cpio, po následnom načítaní bude archív pripojený ako ďalšia vrstva iba na čítanie. Ak chcete pokračovať v práci so zmenami, použite voľbu nahrávania boobs.rootfs-changes=/rootfs-changes.cpio. Voľba boobs.rootfs-changes povolí zadanú vrstvu s prístupom na zmeny. Vrstva môže byť blokové zariadenie, napríklad môžete zadať /dev/sdb1, potom sa všetky zmeny vykonané v Overlay FS jednoducho uložia do /dev/sdb1.

Boobstrap, napriek širokým dostupným možnostiam, je stále vo fáze vývoja, všetky vaše pripomienky a návrhy sú brané do úvahy!

Zdroj: linux.org.ru

Pridať komentár