booty - nut vir die skep van selflaaibeelde en aandrywers

Program aangebied Booty, wat jou toelaat om selflaaibare initrd-beelde, ISO-lêers of aandrywers te skep wat enige GNU/Linux-verspreiding bevat met een opdrag. Die kode is geskryf in POSIX dop en versprei deur gelisensieer onder GPLv3.

Alle verspreidings wat met Booty gelaai is, loop óf SHMFS (tmpfs) óf SquashFS + Overlay FS, die gebruiker se keuse. Die verspreiding word een keer geskep, en tydens die selflaaiproses word parameters gekies wat jou toelaat om suiwer tmpfs vir die wortel te gebruik, of 'n kombinasie van Overlay FS + SquashFS met opname veranderinge aan tmpfs. Dit is moontlik om die aflaaibare verspreidingskit vooraf te kopieer na RAM, wat jou toelaat om die USB-stasie te ontkoppel nadat jy die verspreidingstel afgelaai en na die geheue gekopieer het.

Eerstens genereer Booty sy eie initrd-beeld, wat inheemse nutsprogramme van die huidige stelsel of busybox kan gebruik. Dit is moontlik om die hele verspreidingskit wat in die gids (chroot) geïnstalleer is, in initramfs in te sluit (verpak). Dit kan nuttig wees wanneer jy 'n stelsel met behulp van kexec moet opgradeer: herlaai eenvoudig die initrd met 'n nuwe kern en 'n nuwe stelsel binne die initrd.

Skep 'n Booty-spesifieke initrd-beeld:

mkdir initramfs/
mkinitramfs initramfs/ --uitvoer initrd

Skep 'n initrd beeld insluitend die verspreiding van die "gentoo/" gids:

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

Daarna is hierdie initrd-beeld heeltemal gereed vir laai, byvoorbeeld via PXE of via kexec.

Vervolgens genereer Booty beelde met die stelsel gespesifiseer as "overlays". U kan byvoorbeeld 'n voorwaardelike Gentoo in 'n aparte gids installeer (uitpak die argief), waarna 'n cpio-argief of SquashFS-beeld met hierdie stelsel met behulp van Booty gegenereer sal word. Jy kan ook die verspreiding in 'n aparte gids opstel, en jou persoonlike instellings na 'n ander gids kopieer. Al hierdie "lae" sal opeenvolgend bo-op mekaar gelaai word en 'n enkele werkende stelsel skep.

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

Uiteindelik laat Booty u toe om selflaaibare ISO-beelde en USB, HDD, SSD en ander aandrywers te skep deur die bogenoemde stelsel vanaf beelde te installeer. Booty ondersteun die skepping van BIOS- en UEFI-selflaaistelsels. GRUB2- en SYSLINUX-selflaaiers word ondersteun. Selflaailaaiers kan gekombineer word, gebruik byvoorbeeld SYSLINUX om in die BIOS te begin, en GRUB2 vir UEFI. Om ISO-beelde te skep, sal jy ook die cdrkit (genisoimage) of xorriso (xorrisofs) pakket nodig hê om van te kies.

Die enigste bykomende aksie wat nodig is, is om die kern (vmlinuz) vooraf voor te berei vir opstart. Die skrywer (Spoofing) beveel aan om "make defconfig" te gebruik. Voordat u die prent skep, moet u 'n gids voorberei deur die vmlinuz-kern en die voorheen voorbereide "leë" initrd wat in die eerste voorbeeld geskep is, te plaas.

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

Hiermee is die voorbereiding voltooi, ons kan nou ISO-beelde uit hierdie gids skep.

Die volgende opdrag sal 'n ISO-beeld skep, nie 'n selflaaibare een nie, net 'n ISO:

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

Om 'n selflaaiprent te skep, moet jy die "--legacy-boot"-opsie vir onderskeidelik BIOS en "--efi" vir UEFI spesifiseer; die opsies neem óf grub2 óf syslinux as parameters; jy kan ook net een opsie spesifiseer ( byvoorbeeld, UEFI-selflaaiondersteuning is nie nodig nie, dit is dalk nie gespesifiseer nie).

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

En net soos voorheen is beelde met die stelsel by die initrd ingesluit, jy kan dit by die ISO insluit.

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

Na hierdie opdrag sal 'n selflaaibare BIOS/UEFI ISO-beeld gegenereer word wat Gentoo in die SquashFS-beeld laai met behulp van Overlay FS, met tmpfs vir databerging. Die kern moet gebou word met Overlay FS ondersteuning met SquashFS. As dit egter om een ​​of ander rede nie nodig is nie, kan jy die “—cpio”-opsie in plaas van —squashfs gebruik om gentoo/ as 'n cpio-argief te verpak, in welke geval die argief direk in tmpfs uitgepak sal word by opstart, die belangrikste ding is dat vir die uitpak van die stelsel tmpfs genoeg RAM gehad het.

Interessante feit: as 'n ISO-beeld wat met die "—efi"-opsie geskep is, op 'n FAT32-flitsskyf uitgepak word deur bloot lêers (cp -r) te kopieer, sal die flitsaandrywing in UEFI-modus selflaai sonder enige voorlopige voorbereiding, danksy die besonderhede van UEFI- aflaaiers.

Benewens selflaaibare ISO's, kan enige selflaaibare aandrywer met dieselfde parameters geskep word: USB, HDD, SSD, ensovoorts, en hierdie aandrywer kan voortgaan om vir sy beoogde doel gebruik te word. Om dit te doen, moet jy byvoorbeeld 'n USB-toestel monteer en mkbootisofs daarop laat loop. Voeg net een opsie "-bootable" by sodat die aandrywer waarop die gespesifiseerde gids geleë is, selflaaibaar word.

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

Daarna sal die USB-toestel selflaaibaar word met die gentoo/-oorleg (moenie vergeet om die /boot/vmlinuz- en /boot/initrd-lêers na die toestel te kopieer nie).

As die aandrywer om een ​​of ander rede nie in /mnt gemonteer is nie, en dit blyk dat /mnt op die hooftoestel /dev/sda geleë is, dan sal die selflaaiprogram herskryf word na /dev/sda. Jy moet versigtig wees wanneer jy die --bootable opsie spesifiseer.

Tydens die selflaaiproses ondersteun Booty 'n aantal opsies wat na die selflaailaaier, grub.cfg of syslinux.cfg, oorgedra kan word. By verstek, sonder enige opsies, word alle oorlegsels gelaai en uitgepak in tmpfs (verstek opsie ooty.use-shmfs). Om Overlay FS te gebruik moet die booty.use-overlayfs opsie gebruik word. Die booty.copy-to-ram opsie kopieer eers oorleggings na tmpfs, waarna dit hulle net verbind en laai. Sodra dit gekopieer is, kan die USB-toestel (of ander stoortoestel) verwyder word.

Bron: opennet.ru

Voeg 'n opmerking