booty – utiliit alglaadimispiltide ja draivide loomiseks

Esitatud programm saak, mis võimaldab ühe käsuga luua buutivaid initrd-pilte, ISO-faile või draive, mis sisaldavad mis tahes GNU/Linuxi distributsiooni. Kood on kirjutatud POSIX shellis ja jaotatud litsentsitud GPLv3 alusel.

Kõik Booty abil käivitatud distributsioonid käitavad kas SHMFS-i (tmpfs) või SquashFS-i + ülekattega FS-i, kasutaja valikul. Jaotus luuakse üks kord ja alglaadimise käigus valitakse parameetrid, mis võimaldavad kasutada juurjuurena puhast tmpfs-i või Overlay FS + SquashFS kombinatsiooni koos tmpfs-i muudatuste salvestamisega. Allalaaditava jaotuskomplekti on võimalik eelkopeerida RAM-i, mis võimaldab pärast jaotuskomplekti allalaadimist ja mällu kopeerimist USB-draivi lahti ühendada.

Esiteks genereerib Booty oma initrd-pildi, mis võib kasutada praeguse süsteemi või hõivatud kasti natiivseid utiliite. Initramfs-i on võimalik kaasata (pakkida) kogu kataloogi (chroot) installitud distributsioonikomplekt. See võib olla kasulik, kui peate süsteemi kexeci abil uuendama: laadige lihtsalt initrd uuesti uue kerneliga ja uue süsteemiga initrd-is.

Booty-spetsiifilise initrd-pildi loomine:

mkdir initramfs/
mkinitramfs initramfs/ --väljund initrd

Initrd-pildi loomine, sealhulgas levitamine kataloogist "gentoo/":

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --väljund initrd

Pärast seda on see initrd-pilt täiesti valmis laadimiseks, näiteks PXE või kexeci kaudu.

Järgmisena genereerib Booty kujutised, mille süsteem on määratletud kui "ülekatted". Näiteks saate installida (arhiivi lahti pakkida) tingimusliku Gentoo eraldi kataloogi, misjärel luuakse Booty abil selle süsteemiga cpio arhiiv või SquashFS-pilt. Samuti saate konfigureerida levitamise eraldi kataloogis ja kopeerida oma isiklikud sätted teise kataloogi. Kõik need "kihid" laaditakse järjestikku üksteise peale ja luuakse ühtne töötav süsteem.

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

Lõppkokkuvõttes võimaldab Booty luua alglaaditavaid ISO-pilte ning USB-, HDD-, SSD- ja muid draive, installides ülaltoodud süsteemi piltidest. saak toetab BIOS-i ja UEFI alglaadimissüsteemide loomist. Toetatud on alglaadurid GRUB2 ja SYSLINUX. Alglaadureid saab kombineerida, näiteks kasutage BIOS-i alglaadimiseks SYSLINUXi ja UEFI jaoks GRUB2. ISO-piltide loomiseks vajate lisaks paketti cdrkit (genisoimage) või xorriso (xorrisofs), mille vahel valida.

Ainus vajalik lisategevus on kerneli (vmlinuz) eelkäivitamiseks ettevalmistamine. Autor (Spoofing) soovitab kasutada "make defconfig". Enne pildi loomist peate ette valmistama kataloogi, asetades vmlinuzi tuuma ja eelnevalt ettevalmistatud esimeses näites loodud "tühi" initrd.

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

Sellega on ettevalmistus lõppenud, saame nüüd sellest kataloogist ISO-pilte luua.

Järgmine käsk loob ISO-pildi, mitte buutiva, vaid lihtsalt ISO-pildi:

mkdir iso/
mkbootisofs iso/ --output arhiiv.iso

Alglaadimispildi loomiseks peate määrama vastavalt BIOS-i jaoks suvandi "--legacy-boot" ja UEFI jaoks "--efi"; valikud võtavad parameetritena kas grub2 või syslinux, samuti saate määrata ainult ühe võimaluse ( näiteks UEFI alglaadimise tuge pole vaja, seda ei pruugita määrata).

mkbootisofs iso/ --legacy-boot syslinux --väljund boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --väljund boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --väljund boot-uefionly.iso

Ja nagu varem, lisati süsteemiga pildid initrd-sse, saate need lisada ISO-sse.

mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --väljund gentoo.iso

Pärast seda käsku luuakse käivitatav BIOS-i/UEFI ISO-tõmmis, mis laadib ülekatte FS-i abil Gentoo SquashFS-i kujutisse, kasutades andmete salvestamiseks tmpfs-i. Kernel peab olema ehitatud Overlay FS-i toega koos SquashFS-iga. Kui see aga mingil põhjusel vajalik pole, võid kasutada cpio arhiivina —squashfs to pack gentoo/ asemel suvandit “—cpio”, mille puhul pakitakse arhiiv alglaadimisel lahti otse tmpfs-i, peaasi. on see, et süsteemi lahtipakkimiseks oli tmpfsil piisavalt RAM-i.

Huvitav fakt: kui suvandi "—efi" abil loodud ISO-pilt pakitakse lahti FAT32-mälupulgale, kopeerides lihtsalt failid (cp -r), siis tänu spetsiifikale käivitub välkmälu UEFI-režiimis ilma eelneva ettevalmistuseta. UEFI allalaadijate hulgast.

Lisaks buutitavatele ISO-dele saab luua samade parameetritega mis tahes buutiva draivi: USB, HDD, SSD ja nii edasi ning seda draivi saab edaspidigi sihtotstarbeliselt kasutada. Selleks tuleb monteerida näiteks USB-seade ja käivitada sellel mkbootisofs. Lihtsalt lisage üks suvand "—bootable", nii et draiv, millel määratud kataloog asub, muutub buutitavaks.

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

Pärast seda muutub USB-seade gentoo/ ülekattega buutitavaks (ärge unustage seadmesse kopeerida faile /boot/vmlinuz ja /boot/initrd).

Kui draivi mingil põhjusel ei ühendatud /mnt ja selgub, et /mnt asub põhiseadmes /dev/sda, kirjutatakse alglaadur ümber /dev/sda. Suvandi --bootable määramisel peaksite olema ettevaatlik.

Alglaadimisprotsessi ajal toetab Booty mitmeid valikuid, mida saab edastada alglaadurile grub.cfg või syslinux.cfg. Vaikimisi laaditakse ja pakitakse kõik ülekatted ilma suvanditeta tmpfs-i (vaikevalik ooty.use-shmfs). Overlay FS-i kasutamiseks tuleb kasutada suvandit booty.use-overlayfs. Valik booty.copy-to-ram kopeerib esmalt ülekatted tmpfs-i, misjärel ühendab need ainult ja laadib. Pärast kopeerimist saab USB-seadme (või muu salvestusseadme) eemaldada.

Allikas: opennet.ru

Lisa kommentaar