booty — kĂ€ivituspiltide ja mĂ€luseadmete loomise utiliit

Esitleme programmi Booty, mis vĂ”imaldab ĂŒhe kĂ€su abil luua kĂ€ivituspilte initrd, ISO-faile vĂ”i mĂ€luseadmeid, mis sisaldavad mis tahes GNU/Linuxi distributsiooni. Kood on kirjutatud POSIX shellis ja GNU Üldine Avaliku litsentsi alusel. GPLv3 litsentsi alusel.

KĂ”ik distributsioonid, mis on bootitud Booty abil, töötavad kas SHMFS (tmpfs) vĂ”i SquashFS + Overlay FS reĆŸiimis, sĂ”ltuvalt kasutaja valikust. Distributsioon luuakse ĂŒks kord ning kĂ€ivitamise ajal valitakse parameetrid, mis vĂ”imaldavad kasutada puhtalt tmpfs juurena vĂ”i Overlay FS + SquashFS kombinatsiooni, kus muudatused salvestatakse tmpfs. On vĂ”imalik eelnevalt kopeerida kĂ€ivitatav distributsioon RAM-i, mis vĂ”imaldab USB-mĂ€luseadet pĂ€rast laadimist ja distributsiooni mĂ€lu kopeerimist vĂ€lja lĂŒlitada.

Esiteks genereerib Booty enda initrd-pildi, kus vĂ”ivad olla kasutusel praegusest sĂŒsteemist pĂ€rinevad utiliidid vĂ”i busybox. On vĂ”imalik lisada (pakendada) tĂ€ielikult initramfs-i installitud distributsioon, mis asub kaustas (chroot). See vĂ”ib olla kasulik, kui on vaja sĂŒsteemi uuendada kexec abil: lihtsalt taaskĂ€ivitada initrd koos uue tuumaga ja uue sĂŒsteemiga initrd sees.

Booty-spetsiifilise initrd-pildi loomine:

mkdir initramfs/
mkinitramfs initramfs/ —output initrd

Initrd-pildi loomine, mis sisaldab jaotust kaustast „gentoo/“:

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

PÀrast seda on antud initrd-pilt tÀielikult valmis laadimiseks, nÀiteks PXE vÔi kexec kaudu.

SeejĂ€rel genereerib Booty sĂŒsteemipildid, mis on mÀÀratud kui â€žĂŒlevaateid“. NĂ€iteks vĂ”ite installida (lahti pakkida arhiivi) tingimusliku Gentoo eraldi kausta, pĂ€rast mida Booty genereerib cpio-arhiivi vĂ”i SquashFS-pildi selle sĂŒsteemiga. Samuti saate eraldi kaustas seadistada jaotuse ning veel ĂŒhte kausta kopeerida isiklikud seadistused. KĂ”ik need „kihid“ laaditakse jĂ€rjestikku ĂŒksteise peale, luues ĂŒhtse tööaluse sĂŒsteemi.

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

LĂ”ppkokkuvĂ”ttes vĂ”imaldab Booty luua kĂ€ivitatavaid ISO-pilte ja USB, HDD, SSD ning teisi andmekandjaid, installides eeltoodud sĂŒsteemi piltidest. Booty toetab BIOS-i ja UEFI alglaadimise sĂŒsteemide loomist. Toetatakse GRUB2 ja SYSLINUX alglaadijaid. Alglaadijaid saab kombineerida, nĂ€iteks BIOS-i laadimiseks kasutada SYSLINUX-i ja UEFI jaoks GRUB2. ISO-pildiks loomiseks on lisaks vajalik cdrkit (genisoimage) paket vĂ”i xorriso (xorrisofs), vastavalt valikule.

Ainus tĂ€iendav tegevus, mida on vaja, on eelnevalt ette valmistada kernel (vmlinuz) laadimiseks. Autor (Spoofing) soovitab kasutada „make defconfig”. Enne pildi loomist tuleb ette valmistada kataloog, kus asub kernel vmlinuz ja eelnevalt valmistatud „tĂŒhi” initrd, mis loodi esimeses nĂ€ites.

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

Selle ettevalmistamine on nĂŒĂŒd lĂ”petatud, nĂŒĂŒd saame selle katalooge kasutades luua ISO pilte.

JÀrgmine kÀsk loob ISO pildi, mitte kÀivitatava, lihtsalt ISO:

mkdir iso/
mkbootisofs iso/ —output archive.iso

KĂ€ivitatava pildi loomine nĂ”uab —legacy-boot valiku mÀÀramist BIOS-i jaoks ja —efi UEFI jaoks, vastavalt; valida saab kas grub2 vĂ”i syslinux, samuti vĂ”ib mÀÀrata ainult ĂŒhe valiku (nĂ€iteks kui UEFI vahel ei ole vajalik, siis seda ei pea mÀÀrama).

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

Ja nagu enne olid sĂŒsteemi pildid initrd-sse, saab neid lisada ISO-sse.

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

PĂ€rast seda kĂ€sku luuakse kĂ€ivitatav BIOS/UEFI ISO-pilt, mis laadib Gentoo SquashFS-pildilt kasutades Overlay FS, kasutades tmpfs andmete salvestamiseks. Tuum peab olema kokku pandud Overlay FS-i ja SquashFS-i toega. Kui see mingil pĂ”hjusel ei ole vajalik, saab kasutada valikut „—cpio” asemele —squashfs, et pakkida gentoo/ cpio-arhiiviks, sel juhul lahutatakse arhiiv otse tmpfs-i kĂ€ivitamisel, peamine on, et sĂŒsteemi lahutamiseks tmpfs-is on piisavalt RAM-i.

Huvi fakt: kui ISO-pilt, mis on loodud valiku „—efi” abil, lahti pakkida FAT32 mĂ€lupulgale lihtsalt failide kopeerimise (cp -r) teel, siis Flash-mĂ€luseade laadib UEFI-reĆŸiimis ilma igasuguse eelneva ettevalmistuseta, tĂ€nu UEFI-laadijate eripĂ€rale.

Lisaks ISO-failide loomisele, millel on samad parameetrid, on vĂ”imalik luua iga laadimisseade: USB, HDD, SSD jne, samal ajal kui see seade vĂ”ib jĂ€tkata kasutamist oma otstarbel. Selleks tuleb, nĂ€iteks, USB-seade monteerida ja kĂ€ivitada mkbootisofs sellel. Lihtsalt lisage ĂŒks valik „—bootable”, et seade, millel asub mÀÀratud kataloog, muutuks laadimisplatvormiks.

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

PĂ€rast seda muutub USB-seade laadimisplatvormiks, millel on oeverlay gentoo/ (Ă€rge unustage kopeerida failid /boot/vmlinuz ja /boot/initrd seadmesse).

Kui mingil pĂ”hjusel seadet ei pandud monteerida /mnt ja juhtub, et /mnt asub pĂ”hiseadmest /dev/sda, siis kirjutatakse seega laadija ĂŒle /dev/sda. Oluline on olla ettevaatlik, kui mÀÀrate valiku —bootable.

Booty laadimise protsess toetab mitmeid valikuid, mida saab edastada laadijale, grub.cfg vÔi syslinux.cfg. Vaikimisi kÀivitub ja lahtipakkimine kÔikidest overlay'dest tmpfs-i (vaikimisi valik ooty.use-shmfs). Overlay FS-i kasutamiseks peab olema valitud valik booty.use-overlayfs. Valik booty.copy-to-ram kopeerib overlay'd esmalt tmpfs-i, seejÀrel mountib ja laadib need. USB-seadme (vÔi muu andmekandja) saab pÀrast kopeerimist eemaldada.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster