Booty — et vérktþj til at skabe bootable billeder og medier

Programmet er prÊsenteret Booty, som gÞr det muligt med én kommando at skabe bootable billeder af initrd, ISO-filer eller medier, der inkluderer enhver GNU/Linux distribution. Koden er skrevet i POSIX shell og distribueres under GPLv3 licens.

Alle distributioner, der bootes ved hjÊlp af Booty, fungerer enten i SHMFS (tmpfs) eller i SquashFS + Overlay FS, alt efter brugerens valg. Distributionen skabes én gang, hvorefter der vÊlges indstillinger ved boot, der muliggÞr brug af ren tmpfs som roden, eller en kombination af Overlay FS + SquashFS med Êndringer skrevet til tmpfs. Der er mulighed for at kopiere den bootbare distribution til RAM, hvilket gÞr det muligt at frakoble USB-enheden efter boot og kopiering af distributionen til hukommelsen.

FÞrst og fremmest genererer Booty sit eget initrd billede, hvor indfÞdte vÊrktÞjer fra det aktuelle system eller busybox kan anvendes. Der er mulighed for at inkludere (pakke) den installation i initramfs fra kataloget (chroot). Dette kan vÊre nyttigt, nÄr det er nÞdvendigt at opdatere systemet ved brug af kexec: blot genstart initrd med et nyt kerne og et nyt system indeni initrd.

Oprettelse af Booty-specifik initrd billede:

mkdir initramfs/
mkinitramfs initramfs/ —output initrd

Oprettelse af initrd billede med inkludering af distributionen fra kataloget «gentoo/»:

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

Herefter er dette initrd billede fuldt klar til at boote, for eksempel via PXE eller kexec.

Derefter genererer Booty billeder med systemet angivet som «overlays». For eksempel kan man installere (udpakke arkivet) en hypotetisk Gentoo i et sÊrskilt katalog, hvorefter der med Booty genereres et cpio-arkiv eller SquashFS-billede med dette system. Man kan ogsÄ foretage konfiguration af distributionen i et sÊrskilt katalog og kopiere personlige indstillinger til endnu et katalog. Alle disse «lag» vil blive indlÊst sekventielt oven pÄ hinanden og skabe et samlet fungerende system.

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

I sidste ende gþr Booty det muligt at skabe bootable ISO-billeder og USB-, HDD-, SSD- og andre medier, ved at installere det ovenfor beskrevne system fra billeder. Booty understþtter oprettelse af bootbare systemer BIOS og UEFI. Bootloadere GRUB2 og SYSLINUX understþttes. Bootloadere kan kombineres, for eksempel til boot i BIOS ved at bruge SYSLINUX, og til UEFI — GRUB2. For at oprette ISO-filer kréves yderligere pakken cdrkit (genisoimage) eller xorriso (xorrisofs), alt efter hvad der foretrékkes.

Den eneste ekstra handling, der krÊves, er at forberede kernen (vmlinuz) til boot. Forfatteren (Spoofing) anbefaler at bruge «make defconfig». FÞr oprettelsen af billedet skal du forberede en mappe, hvor du lÊgger kernen vmlinuz og en forberedt «tom» initrd, som blev oprettet i det fÞrste eksempel.

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

Forberedelsen er nu afsluttet, vi kan nu oprette ISO-billeder fra denne mappe.

Den nĂŠste kommando vil oprette et ISO-billede, som ikke er bootbart, bare et ISO:

mkdir iso/
mkbootisofs iso/ —output archive.iso

For at oprette et bootbart billede skal du angive indstillingen «—legacy-boot» til BIOS og «—efi» til UEFI, som henholdsvis tager grub2 eller syslinux som parametre, du kan ogsĂ„ angive kun Ă©n indstilling (for eksempel, hvis du ikke har brug for stĂžtte til UEFI-boot, kan den udelades).

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

Og som fĂžr, hvor billederne med systemet blev inkluderet i initrd, kan de inkluderes i ISO.

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

Efter denne kommando vil der blive dannet et bootbart BIOS/UEFI ISO-billede, der kan starte Gentoo fra et SquashFS-billede ved hjĂŠlp af Overlay FS, som bruger tmpfs til at gemme data. Kernen skal vĂŠre bygget med understĂžttelse af Overlay FS med SquashFS. Men hvis dette af en eller anden grund ikke er nĂždvendigt, kan du bruge indstillingen «—cpio» i stedet for —squashfs for at pakke gentoo/ som en cpio-arkiv, i sĂ„ fald vil arkivet blive udpakket direkte i tmpfs ved opstart, sĂ„ lĂŠnge der er tilstrĂŠkkelig RAM til at pakke systemet ud i tmpfs.

En interessant detalje: hvis ISO-billedet, der er oprettet med indstillingen «—efi», pakkes ud pĂ„ en FAT32-USB-drev ved simpelthen at kopiere filer (cp -r), vil USB-drevet kunne starte i UEFI-tilstand uden nogen forberedelse pĂ„ grund af karakteren af UEFI-bootloadere.

Ud over bootable ISO-filer med de samme parametre kan der oprettes enhver bootable enhed: USB, HDD, SSD osv. Denne enhed kan desuden fortsĂŠtte med at blive brugt til sit oprindelige formĂ„l. For at gĂžre dette, skal du montere f.eks. USB-enheden og udfĂžre mkbootisofs-kommandoen pĂ„ den. Du skal kun tilfĂžje en mulighed «—bootable», sĂ„ enheden, der indeholder den specifikere mappe, bliver bootable.

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

Efter dette vil USB-enheden blive bootable med overlay gentoo/ (huske at kopiere filer /boot/vmlinuz og /boot/initrd til enheden).

Hvis enheden af en eller anden grund ikke var blevet monteret i /mnt, og det viser sig, at /mnt ligger pĂ„ hovedenheden /dev/sda, vil bootloaderen blive overskrevet pĂ„ /dev/sda. VĂŠr forsigtig, nĂ„r du angiver indstillingen —bootable.

Under bootprocessen understĂžtter Booty en rĂŠkke muligheder, som kan angives i bootloaderen, grub.cfg eller syslinux.cfg. Som standard udfĂžres boot og udpakning af alle overlays i tmpfs (standardindstillingen ooty.use-shmfs). For at bruge Overlay FS skal indstillingen booty.use-overlayfs anvendes. Indstillingen booty.copy-to-ram kopierer fĂžrst overlays til tmpfs, hvorefter de kun tilsluttes og indlĂŠses. Efter kopiering kan USB-enheden (eller en anden enhed) fjernes.

Kilde: opennet.ru

KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster