booty - uslužni program za stvaranje slika za pokretanje i pogona

Predstavljen program Plijen, koji vam omogućuje da jednom naredbom stvorite bootable initrd slike, ISO datoteke ili pogone koji sadrže bilo koju GNU/Linux distribuciju. Kod je napisan u POSIX ljusci i distribuira licenciran pod GPLv3.

Sve distribucije pokrenute korištenjem Bootyja pokreću SHMFS (tmpfs) ili SquashFS + Overlay FS, po izboru korisnika. Distribucija se kreira jednom, a tijekom procesa dizanja se odabiru parametri koji omogućuju korištenje čistog tmpfs-a za root ili kombinaciju Overlay FS + SquashFS sa snimanjem promjena u tmpfs. Moguće je unaprijed kopirati komplet distribucije za preuzimanje u RAM, što vam omogućuje odspajanje USB pogona nakon preuzimanja i kopiranja kompleta distribucije u memoriju.

Prije svega, Booty generira vlastitu initrd sliku, koja može koristiti izvorne pomoćne programe iz trenutnog sustava ili busyboxa. Moguće je uključiti (pakirati) cijeli distribucijski komplet instaliran u direktoriju (chroot) u initramfs. Ovo može biti korisno kada trebate nadograditi sustav koristeći kexec: jednostavno ponovno učitajte initrd s novim kernelom i novim sustavom unutar initrd-a.

Stvaranje initrd slike specifične za Booty:

mkdir initramfs/
mkinitramfs initramfs/ --izlaz initrd

Stvaranje initrd slike uključujući distribuciju iz direktorija “gentoo/”:

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

Nakon čega je ova initrd slika potpuno spremna za učitavanje, na primjer, putem PXE ili putem kexeca.

Zatim, Booty generira slike sa sustavom navedenim kao "slojevi". Na primjer, možete instalirati (raspakirati arhivu) uvjetni Gentoo u zasebnom direktoriju, nakon čega će cpio arhiva ili SquashFS slika s ovim sustavom biti generirana pomoću Bootyja. Također možete konfigurirati distribuciju u zasebnom direktoriju i kopirati svoje osobne postavke u drugi direktorij. Svi ti "slojevi" će se uzastopno učitavati jedan na drugi i stvarati jedan radni sustav.

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

U konačnici, Booty vam omogućuje stvaranje ISO slika za pokretanje i USB, HDD, SSD i drugih pogona instaliranjem gornjeg sustava iz slika. Plijen podržava stvaranje BIOS i UEFI sustava za pokretanje. Podržani su GRUB2 i SYSLINUX bootloaderi. Bootloaderi se mogu kombinirati, na primjer, koristiti SYSLINUX za dizanje u BIOS i GRUB2 za UEFI. Za izradu ISO slika dodatno će vam trebati cdrkit (genisoimage) ili xorriso (xorrisofs) paket, na izbor.

Jedina potrebna dodatna radnja je priprema kernela (vmlinuz) za dizanje unaprijed. Autor (Spoofing) preporučuje korištenje "make defconfig". Prije stvaranja slike morate pripremiti direktorij postavljanjem vmlinuz kernela i prethodno pripremljenog "praznog" initrd-a stvorenog u prvom primjeru.

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

Ovime je priprema završena, sada možemo kreirati ISO slike iz ovog direktorija.

Sljedeća naredba će stvoriti ISO sliku, ne onu za pokretanje, samo ISO:

mkdir iso/
mkbootisofs iso/ --izlazna arhiva.iso

Da biste stvorili sliku za pokretanje, trebate navesti opciju "--legacy-boot" za BIOS odnosno "--efi" za UEFI; opcije uzimaju grub2 ili syslinux kao parametre; također možete navesti samo jednu opciju ( na primjer, UEFI podrška za pokretanje nije potrebna, možda nije navedena).

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

Kao i prije, slike sa sustavom bile su uključene u initrd, možete ih uključiti u ISO.

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

Nakon ove naredbe, bit će generirana BIOS/UEFI ISO slika za pokretanje koja učitava Gentoo u SquashFS sliku koristeći Overlay FS, koristeći tmpfs za pohranu podataka. Kernel mora biti izgrađen s podrškom za Overlay FS sa SquashFS-om. Međutim, ako iz nekog razloga to nije potrebno, možete koristiti opciju “—cpio” umjesto —squashfs za pakiranje gentoo/ kao cpio arhive, u kojem će slučaju arhiva biti raspakirana izravno u tmpfs nakon dizanja, glavna stvar je da je za raspakiranje sustava tmpfs imao dovoljno RAM-a.

Zanimljiva činjenica: ako se ISO slika stvorena pomoću opcije “—efi” raspakira na FAT32 flash pogon jednostavnim kopiranjem datoteka (cp -r), tada će se Flash pogon pokrenuti u UEFI modu bez ikakve prethodne pripreme, zahvaljujući specifičnostima UEFI programa za preuzimanje.

Osim ISO-ova za podizanje sustava, bilo koji pogon za podizanje sustava može se stvoriti s istim parametrima: USB, HDD, SSD i tako dalje, a ovaj se pogon može nastaviti koristiti za namjeravanu svrhu. Da biste to učinili, morate montirati, na primjer, USB uređaj i pokrenuti mkbootisofs na njemu. Samo dodajte jednu opciju “—bootable” tako da disk na kojem se nalazi navedeni direktorij postane bootable.

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

Nakon toga, USB uređaj će se moći pokrenuti s gentoo/ slojem (ne zaboravite kopirati datoteke /boot/vmlinuz i /boot/initrd na uređaj).

Ako iz nekog razloga pogon nije montiran u /mnt, a ispostavi se da se /mnt nalazi na glavnom uređaju /dev/sda, tada će se bootloader prepisati u /dev/sda. Trebali biste biti oprezni kada navodite opciju --bootable.

Tijekom procesa dizanja, Booty podržava niz opcija koje se mogu proslijediti boot loaderu, grub.cfg ili syslinux.cfg. Prema zadanim postavkama, bez ikakvih opcija, svi slojevi se učitavaju i raspakiraju u tmpfs (zadana opcija ooty.use-shmfs). Za korištenje Overlay FS mora se koristiti opcija booty.use-overlayfs. Booty.copy-to-ram opcija prvo kopira overlaye u tmpfs, nakon čega ih samo povezuje i učitava. Nakon kopiranja, USB uređaj (ili drugi uređaj za pohranu) može se ukloniti.

Izvor: opennet.ru

Dodajte komentar