booty - verktyg för att skapa startbilder och enheter

Program presenterat Byte, som låter dig skapa startbara initrd-bilder, ISO-filer eller enheter som innehåller valfri GNU/Linux-distribution med ett kommando. Koden är skriven i POSIX-skal och levererad av licensierad under GPLv3.

Alla distributioner som startas med Booty kör antingen SHMFS (tmpfs) eller SquashFS + Overlay FS, användarens val. Distributionen skapas en gång, och under uppstartsprocessen väljs parametrar som gör att du kan använda rena tmpfs för roten, eller en kombination av Overlay FS + SquashFS med inspelningsändringar till tmpfs. Det är möjligt att förkopiera det nedladdningsbara distributionspaketet till RAM, vilket gör att du kan koppla bort USB-enheten efter nedladdning och kopiering av distributionssatsen till minnet.

Först och främst genererar Booty sin egen initrd-bild, som kan använda inbyggda verktyg från det nuvarande systemet eller busybox. Det är möjligt att inkludera (packa) hela distributionspaketet installerat i katalogen (chroot) i initramfs. Detta kan vara användbart när du behöver uppgradera ett system med kexec: ladda helt enkelt om initrd med en ny kärna och ett nytt system inuti initrd.

Skapa en Booty-specifik initrd-bild:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Skapa en initrd-bild inklusive distributionen från "gentoo/"-katalogen:

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

Därefter är denna initrd-bild helt klar för laddning, till exempel via PXE eller via kexec.

Därefter genererar Booty bilder med systemet specificerat som "överlägg". Till exempel kan du installera (packa upp arkivet) en villkorlig Gentoo i en separat katalog, varefter ett cpio-arkiv eller SquashFS-avbildning med detta system kommer att genereras med hjälp av Booty. Du kan också konfigurera distributionen i en separat katalog och kopiera dina personliga inställningar till en annan katalog. Alla dessa "lager" kommer att laddas sekventiellt ovanpå varandra och skapa ett enda fungerande system.

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

I slutändan låter Booty dig skapa startbara ISO-bilder och USB, HDD, SSD och andra enheter genom att installera ovanstående system från bilder. Byte stöder skapandet av BIOS- och UEFI-startsystem. GRUB2 och SYSLINUX bootloaders stöds. Bootloaders kan kombineras, använd till exempel SYSLINUX för att starta upp i BIOS och GRUB2 för UEFI. För att skapa ISO-bilder behöver du dessutom paketet cdrkit (genisoimage) eller xorriso (xorrisofs), att välja mellan.

Den enda ytterligare åtgärd som krävs är att förbereda kärnan (vmlinuz) för uppstart i förväg. Författaren (spoofing) rekommenderar att du använder "make defconfig". Innan du skapar bilden måste du förbereda en katalog genom att placera vmlinuz-kärnan och den tidigare förberedda "tomma" initrd skapad i det första exemplet.

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

Med detta är förberedelserna klara, vi kan nu skapa ISO-bilder från denna katalog.

Följande kommando skapar en ISO-avbild, inte en startbar, bara en ISO:

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

För att skapa en startavbildning måste du ange alternativet "--legacy-boot" för BIOS respektive "--efi" för UEFI; alternativen tar antingen grub2 eller syslinux som parametrar; du kan också ange endast ett alternativ ( UEFI-startstöd behövs till exempel inte, det kanske inte anges).

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

Och precis som tidigare ingick bilder med systemet i initrd, du kan inkludera dem i ISO.

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

Efter detta kommando kommer en startbar BIOS/UEFI ISO-bild att genereras som laddar Gentoo till SquashFS-avbildningen med hjälp av Overlay FS, med hjälp av tmpfs för datalagring. Kärnan måste byggas med Overlay FS-stöd med SquashFS. Men om detta av någon anledning inte krävs kan du använda alternativet "—cpio" istället för —squashfs för att paketera gentoo/ som ett cpio-arkiv, i vilket fall arkivet packas upp direkt i tmpfs vid uppstart, det viktigaste är att för att packa upp systemet hade tmpfs tillräckligt med RAM.

Intressant fakta: om en ISO-bild skapad med alternativet "—efi" packas upp på en FAT32-flashenhet genom att helt enkelt kopiera filer (cp -r), kommer flash-enheten att starta i UEFI-läge utan någon preliminär förberedelse, tack vare detaljerna av UEFI-nedladdare.

Förutom startbara ISO:er kan alla startbara enheter skapas med samma parametrar: USB, HDD, SSD och så vidare, och denna enhet kan fortsätta att användas för sitt avsedda syfte. För att göra detta måste du montera till exempel en USB-enhet och köra mkbootisofs på den. Lägg bara till ett alternativ "—bootable" så att enheten som den angivna katalogen finns på blir startbar.

montera /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --startbar

Efter det kommer USB-enheten att bli startbar med gentoo/-överlägget (glöm inte att kopiera filerna /boot/vmlinuz och /boot/initrd till enheten).

Om enheten av någon anledning inte var monterad i /mnt, och det visar sig att /mnt finns på huvudenheten /dev/sda, så kommer starthanteraren att skrivas om till /dev/sda. Du bör vara försiktig när du anger alternativet --bootable.

Under uppstartsprocessen stöder Booty ett antal alternativ som kan skickas till starthanteraren, grub.cfg eller syslinux.cfg. Som standard, utan några alternativ, laddas och packas alla överlägg i tmpfs (standardalternativ ooty.use-shmfs). För att använda Overlay FS måste alternativet booty.use-overlayfs användas. Alternativet booty.copy-to-ram kopierar först överlägg till tmpfs, varefter det bara kopplar ihop dem och laddar dem. När den har kopierats kan USB-enheten (eller annan lagringsenhet) tas bort.

Källa: opennet.ru

Lägg en kommentar