booty - ilo por krei ekbildojn kaj diskojn

Programo prezentita boteto, kiu ebligas al vi krei starteblajn initrd-bildojn, ISO-dosierojn aŭ diskojn enhavantajn ajnan GNU/Linuksan distribuon per unu komando. La kodo estas skribita en POSIX-ŝelo kaj distribuita de licencita laŭ GPLv3.

Ĉiuj distribuoj ekfunkciigitaj per Booty funkcias aŭ SHMFS (tmpfs) aŭ SquashFS + Overlay FS, la elekto de la uzanto. La distribuo estas kreita unufoje, kaj dum la ekfunkciigo, parametroj estas elektitaj, kiuj ebligas al vi uzi purajn tmpfs por la radiko, aŭ kombinaĵon de Overlay FS + SquashFS kun registraj ŝanĝoj al tmpfs. Eblas antaŭkopii la elŝuteblan distribuilon en RAM, kio ebligas al vi malkonekti la USB-diskon post elŝuto kaj kopiado de la distribua ilaro en memoron.

Antaŭ ĉio, Booty generas sian propran initrd-bildon, kiu povas uzi indiĝenajn ilojn de la nuna sistemo aŭ busybox. Eblas inkluzivi (paki) la tutan distribuaron instalitan en la dosierujo (chroot) en initramfs. Ĉi tio povas esti utila kiam vi bezonas ĝisdatigi sistemon uzante kexec: simple reŝargi la initrd kun nova kerno kaj nova sistemo ene de la initrd.

Kreante Booty-specifan initrd-bildon:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Kreante initrd-bildon inkluzive de la distribuo el la dosierujo "gentoo/":

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

Post tio ĉi tiu initrd-bildo estas tute preta por ŝarĝo, ekzemple, per PXE aŭ per kexec.

Poste, Booty generas bildojn kun la sistemo specifita kiel "kovraĵoj". Ekzemple, vi povas instali (malpaki la arkivon) kondiĉan Gentoo en aparta dosierujo, post kio cpio-arkivo aŭ bildo SquashFS kun ĉi tiu sistemo estos generita uzante Booty. Vi ankaŭ povas agordi la distribuon en aparta dosierujo, kaj kopii viajn personajn agordojn al alia dosierujo. Ĉiuj ĉi tiuj "tavoloj" estos sinsekve ŝarĝitaj unu sur la alia kaj kreos ununuran laborsistemon.

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

Finfine, Booty permesas krei starteblajn ISO-bildojn kaj USB, HDD, SSD kaj aliajn diskojn instalante la supran sistemon el bildoj. boteto subtenas la kreadon de BIOS kaj UEFI-ŝargsistemoj. GRUB2 kaj SYSLINUX ekŝargiloj estas subtenataj. Ekŝargiloj povas esti kombinitaj, ekzemple, uzu SYSLINUX por ekbruligi en la BIOS, kaj GRUB2 por UEFI. Por krei ISO-bildojn, vi aldone bezonos la pakaĵon cdrkit (genisoimage) aŭ xorriso (xorrisofs), por elekti.

La nura kroma ago bezonata estas prepari la kernon (vmlinuz) por lanĉo anticipe. La aŭtoro (Spoofing) rekomendas uzi "make defconfig". Antaŭ krei la bildon, vi devas prepari dosierujon metante la vmlinuz-kernon kaj la antaŭe preparitan "malplenan" initrd kreitan en la unua ekzemplo.

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

Kun ĉi tio la preparado estas kompleta, ni nun povas krei ISO-bildojn el ĉi tiu dosierujo.

La sekva komando kreos ISO-bildon, ne starteblan, nur ISO:

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

Por krei ekbildon, vi devas specifi la opcion "--legacy-boot" por BIOS kaj "--efi" por UEFI, respektive; la opcioj prenas aŭ grub2 aŭ syslinux kiel parametrojn; vi ankaŭ povas specifi nur unu opcion ( ekzemple, UEFI-ŝargsubteno ne estas bezonata, ĝi eble ne estas specifita).

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

Kaj same kiel antaŭe, bildoj kun la sistemo estis inkluditaj en la initrd, vi povas inkluzivi ilin en la ISO.

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

Post ĉi tiu komando, startebla BIOS/UEFI ISO-bildo estos generita, kiu ŝargas Gentoo en la SquashFS-bildon uzante Overlay FS, uzante tmpfs por datumstokado. La kerno devas esti konstruita kun Overlay FS-subteno kun SquashFS. Tamen, se ial tio ne estas postulata, vi povas uzi la opcion “—cpio” anstataŭ —squashfs por paki gentoo/ kiel cpio-arkivon, en kiu kazo la arkivo estos malpakita rekte en tmpfs post ekŝargo, la ĉefa afero. estas ke por malpakigi la sistemon tmpfs havis sufiĉe da RAM.

Interesa fakto: se ISO-bildo kreita per la opcio "—efi" estas malpakita sur FAT32-memordisko per simple kopiado de dosieroj (cp -r), tiam la Flash-disko ekfunkciiĝos en UEFI-reĝimo sen ia antaŭpreparo, danke al la specifaĵoj. de UEFI- elŝutiloj.

Aldone al starteblaj ISO-oj, ajna startebla disko povas esti kreita kun la samaj parametroj: USB, HDD, SSD, kaj tiel plu, kaj ĉi tiu disko povas daŭre esti uzata por sia celita celo. Por fari tion, vi devas munti, ekzemple, USB-aparaton kaj ruli mkbootisofs sur ĝi. Nur aldonu unu opcion "—ŝargebla" por ke la disko sur kiu troviĝas la specifita dosierujo fariĝu startebla.

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

Post tio, la USB-aparato fariĝos startebla per la gentoo/overlay (ne forgesu kopii la dosierojn /boot/vmlinuz kaj /boot/initrd al la aparato).

Se ial la disko ne estis muntita en /mnt, kaj rezultas, ke /mnt troviĝas sur la ĉefa aparato /dev/sda, tiam la ekŝargilo estos reverkita al /dev/sda. Vi devus esti singarda kiam specifi la --bootable opcion.

Dum la ekfunkciigo, Booty subtenas kelkajn opciojn, kiuj povas esti transdonitaj al la ekŝargilo, grub.cfg aŭ syslinux.cfg. Defaŭlte, sen iuj opcioj, ĉiuj supermetaĵoj estas ŝarĝitaj kaj malpakitaj en tmpfs (defaŭlta opcio ooty.use-shmfs). Por uzi Overlay FS la opcio booty.use-overlayfs devas esti uzata. La opcio booty.copy-to-ram unue kopias kovraĵojn al tmpfs, post kio ĝi nur ligas ilin kaj ŝarĝas ilin. Post kiam kopiite, la USB-aparato (aŭ alia stoka aparato) povas esti forigita.

fonto: opennet.ru

Aldoni komenton