booty - nástroj na vytváranie zavádzacích obrazov a jednotiek

Prezentovaný program korisť, ktorý vám umožňuje vytvárať zavádzacie obrazy initrd, súbory ISO alebo jednotky obsahujúce ľubovoľnú distribúciu GNU/Linux jedným príkazom. Kód je napísaný v POSIX shell a distribuovaný pod licenciou GPLv3.

Všetky distribúcie spustené pomocou Booty bežia buď SHMFS (tmpfs) alebo SquashFS + Overlay FS, podľa voľby používateľa. Distribúcia sa vytvorí raz a počas bootovacieho procesu sa vyberú parametre, ktoré umožňujú použiť čisté tmpfs pre root, alebo kombináciu Overlay FS + SquashFS so zaznamenávaním zmien do tmpfs. Stiahnuteľný distribučný kit je možné vopred skopírovať do RAM, čo umožňuje odpojiť USB disk po stiahnutí a skopírovaní distribučného kitu do pamäte.

V prvom rade si Booty vygeneruje svoj vlastný initrd image, ktorý môže využívať natívne utility z aktuálneho systému alebo busyboxu. Do initramfs je možné zahrnúť (zabaliť) celý distribučný kit nainštalovaný v adresári (chroot). To môže byť užitočné, keď potrebujete aktualizovať systém pomocou kexec: jednoducho znova načítajte initrd s novým jadrom a novým systémom v initrd.

Vytvorenie initrd obrazu špecifického pre Booty:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Vytvorenie obrazu initrd vrátane distribúcie z adresára „gentoo/“:

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd

Potom je tento initrd obraz úplne pripravený na načítanie, napríklad cez PXE alebo cez kexec.

Potom Booty generuje obrázky so systémom špecifikovaným ako „overlays“. Napríklad môžete nainštalovať (rozbaliť archív) podmienené Gentoo do samostatného adresára, po ktorom sa pomocou Booty vygeneruje cpio archív alebo obraz SquashFS s týmto systémom. Môžete tiež nakonfigurovať distribúciu v samostatnom adresári a skopírovať svoje osobné nastavenia do iného adresára. Všetky tieto „vrstvy“ sa postupne načítajú jedna na druhú a vytvoria jeden pracovný systém.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay documents/ --squashfs --output initrd

V konečnom dôsledku vám Booty umožňuje vytvárať bootovateľné ISO obrazy a USB, HDD, SSD a ďalšie disky inštaláciou vyššie uvedeného systému z obrazov. korisť podporuje vytváranie zavádzacích systémov BIOS a UEFI. Podporované sú zavádzače GRUB2 a SYSLINUX. Bootloadery je možné kombinovať, napríklad použite SYSLINUX na zavedenie systému BIOS a GRUB2 pre UEFI. Na vytvorenie ISO obrazov budete navyše potrebovať balík cdrkit (genisoimage) alebo xorriso (xorrisofs), z ktorého si môžete vybrať.

Jedinou dodatočnou požadovanou akciou je pripraviť jadro (vmlinuz) na zavedenie vopred. Autor (Spoofing) odporúča použiť "make defconfig". Pred vytvorením obrazu si musíte pripraviť adresár umiestnením jadra vmlinuz a predtým pripraveného „prázdneho“ initrd vytvoreného v prvom príklade.

mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd

Tým je príprava dokončená, teraz môžeme z tohto adresára vytvárať obrazy ISO.

Nasledujúci príkaz vytvorí obraz ISO, nie bootovateľný, iba ISO:

mkdir iso/
mkbootisofs iso/ --output archive.iso

Ak chcete vytvoriť zavádzací obraz, musíte zadať možnosť „--legacy-boot“ pre BIOS a „--efi“ pre UEFI; tieto možnosti majú ako parametre buď grub2 alebo syslinux; môžete tiež zadať iba jednu možnosť ( napríklad podpora zavádzania UEFI nie je potrebná, nemusí byť špecifikovaná).

mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso

A rovnako ako predtým, obrázky so systémom boli zahrnuté v initrd, môžete ich zahrnúť do ISO.

mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso

Po tomto príkaze sa vygeneruje bootovateľný BIOS/UEFI ISO obraz, ktorý načíta Gentoo do obrazu SquashFS pomocou Overlay FS s použitím tmpfs na ukladanie dát. Jadro musí byť zostavené s podporou Overlay FS s SquashFS. Ak to však z nejakého dôvodu nie je potrebné, môžete použiť možnosť „—cpio“ namiesto —squashfs na zabalenie gentoo/ ako archív cpio, v takom prípade sa archív rozbalí priamo do tmpfs pri zavádzaní, čo je hlavné je, že na rozbalenie systému mal tmpfs dostatok pamäte RAM.

Zaujímavý fakt: ak sa obraz ISO vytvorený pomocou možnosti „—efi“ rozbalí na flash disk FAT32 jednoduchým skopírovaním súborov (cp -r), potom sa disk Flash spustí v režime UEFI bez akejkoľvek predbežnej prípravy vďaka špecifikám sťahovačov UEFI.

Okrem zavádzacích ISO je možné vytvoriť ľubovoľnú zavádzaciu jednotku s rovnakými parametrami: USB, HDD, SSD atď., A táto jednotka sa môže naďalej používať na určený účel. Na to je potrebné pripojiť napríklad USB zariadenie a spustiť na ňom mkbootisofs. Stačí pridať jednu možnosť „—bootable“, aby sa jednotka, na ktorej sa nachádza zadaný adresár, stala bootovateľnou.

mount /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

Potom sa USB zariadenie stane bootovateľným s prekrytím gentoo/ (nezabudnite do zariadenia skopírovať súbory /boot/vmlinuz a /boot/initrd).

Ak z nejakého dôvodu nebol disk pripojený do /mnt a ukáže sa, že /mnt sa nachádza na hlavnom zariadení /dev/sda, bootloader sa prepíše na /dev/sda. Pri zadávaní voľby --bootable by ste mali byť opatrní.

Počas procesu zavádzania podporuje Booty množstvo možností, ktoré možno odovzdať zavádzaču, grub.cfg alebo syslinux.cfg. V predvolenom nastavení, bez akýchkoľvek možností, sa všetky prekrytia načítajú a rozbalia do tmpfs (predvolená možnosť ooty.use-shmfs). Ak chcete použiť Overlay FS, musíte použiť voľbu booty.use-overlayfs. Voľba booty.copy-to-ram najskôr skopíruje prekrytia do tmpfs, potom ich iba spojí a načíta. Po skopírovaní je možné USB zariadenie (alebo iné úložné zariadenie) odstrániť.

Zdroj: opennet.ru

Pridať komentár