Oprettelse af bootable images boobstrap v1.2


Oprettelse af bootable images boobstrap v1.2

Efter kun en måned af afslappet udvikling blev der udgivet boobstrap v1.2 - et værktøjssæt til POSIX-shell til oprettelse af bootbare billeder og lagerenheder.

Boobstrap gør det muligt med kun én kommando:

  • At oprette initramfs-billeder, der inkluderer enhver GNU/Linux-distribution.
  • At oprette bootbare ISO-billeder med enhver GNU/Linux-distribution.
  • At oprette bootbare USB-, HDD- og SSD-lagerenheder med enhver GNU/Linux-distribution.

Funktionaliteten ligger i, at efter opstart vil GNU/Linux enten køre helt i et rent tmpfs eller ved hjælp af Overlay FS og SquashFS-billeder, alt efter dit valg. Du installerer enhver GNU/Linux-distribution i en mappe, foretager alle nødvendige indstillinger (kan være i en separat mappe), hvorefter du med kun én kommando opretter en bootbar enhed, hvad enten det er et ISO-billede, USB, HDD eller SSD-lager, og du kan også oprette et initrd-billede med systemet. Systemet vil altid være i en fast tilstand, og i tilfælde af fejl kan du vende tilbage til den oprindelige tilstand ved at trykke på én reset-knap. Ønsker du at flytte systemet til en anden vært, eller skabe et system ud fra en eksisterende container? Boobstrap gør det.

Nogle af de vigtigste ændringer:

  • Understøttelse af bootloader syslinux er tilføjet, ud over den allerede eksisterende grub2. Nu kan du vælge enten grub2, syslinux, eller begge dele sammen, når du opretter en bootbar enhed eller ISO-billede, hvilket styres af indstillingerne —legacy-boot syslinux og —efi grub2, og du kan også vælge, hvilke boottilstande der skal understøttes af ISO-billedet.
  • Muligheden —bootable er tilføjet, som gør enhver blokenhed bootbar. For at oprette ISO-billeder skal indstillingen —iso-9660 bruges.
  • Tilføjet indstillinger til kernel-boot boobs.use-shmfs til at kopiere indholdet af alle overlay til tmpfs, boobs.use-overlayfs til at starte med Overlay FS, boobs.search-rootfs til at vælge kilden med systemet, boobs.copy-to-ram til at kopiere systemet til hukommelsen med efterfølgende frakobling af enheden.
  • Den eneste obligatoriske afhængighed for at arbejde med boobstrap er kun cpio. De andre afhængigheder er valgfrie: grub2, syslinux - nødvendige for at skabe bootbare medier, cdrkit eller xorriso efter valg - til at oprette ISO, squashfs-tools til at skabe SquashFS, men intet forhindrer brugen af ​​indstillingen --cpio i stedet for --squashfs til at pakke din distribution i et arkiv. busybox vil kun blive brugt, hvis det er installeret, men hvis ikke, vil alle nødvendige værktøjer blive kopieret fra dit system. På den måde er arbejdet med boobstrap garanteret næsten overalt.

For eksempel vil følgende kommando oprette et initrd-billede ved at inkludere gentoo-chroot/ systemet, pakket som et SquashFS-billede, som vil blive indlæst efter indlæsning af selve initrd. Jeg minder om, at for at bruge Overlay FS sammen med SquashFS skal du videregive indstillingen til kernen boobs.use-overlayfs, ellers vil systemet blive udpakket i tmpfs. Alle yderligere indstillinger kan foretages i et separat bibliotek, f.eks. gentoo-settings/

# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd

Et initrd-billede med systemet indeni er praktisk, når du hurtigt skal implementere et system, f.eks. via PXE, eller på en indlæst system skifte til initrd ved hjælp af kommandoen kexec -l /boot/vmlinuz-* --initrd=./initrd && kexec -e, eller befindende i QEMU-virtuelle maskine (måske endda Proxmox), indlæse fra en fjernkilde ved hjælp af tre IPXE-kommandoer: kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Som du kan se, har selv et almindeligt initrd med dit system indeni mange anvendelsesmuligheder.

Til oprettelse af bootbare medier og billeder bruges kommandoen mkbootisofs, for eksempel ser oprettelsen af et ISO-billede med indstillingen --iso-9660 ved hjælp af syslinux til indlæsning i Legacy-mode (BIOS) og grub2 til indlæsning i EFI-mode (UEFI) således ud.

# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir isoimage/
# mkdir isoimage/boot
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ —iso-9660 —legacy-boot syslinux —efi grub2 —output boot.iso
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs

Du kan angive en af de bootmetoder eller slet ikke angive dem, det tilsvarende ISO-billede vil blive oprettet med succes.

Installation på ethvert medie med efterfølgende indlæsning fra det udføres med indstillingen --bootable. Du skal selv oprette partitioner på mediet (fdisk) og formatere dem (mkdosfs, mke2fs osv.), hvorefter du monterer enheden i biblioteket.

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

Pas på! Muligheden —bootable definerer, hvilket bloklagermedie der er monteret i biblioteket og sætter bootloaderen til dette medie. Hvis du glemmer at montere mediet eller angiver et bibliotek, der ligger på f.eks. /dev/sda, vil bootloaderen på /dev/sda blive overskrevet. Brug —bootable med forsigtighed.

Installation af ethvert GNU/Linux-system kan reduceres til én kommando. Installation kan foretages på enhver HDD, SSD osv. Det er vigtigt at minde om, at dette stadig er et system, der fungerer fra Overlay FS / SquashFS, eller der helt oplades i tmpfs, efter eget valg.

Derudover har boobstrap en række interessante funktioner og ekstra muligheder!

For eksempel kan du danne et branding bootstrapped initrd med kommandoen mkinitramfs `mktemp -d` > /boot/initrd og starte dit system med dette initrd ved at angive kerneloptionerne boobs.use-overlayfs boobs.search-rootfs=/dev/sda1. I så fald vil /dev/sda1, hvor dit hjemsystem er installeret, blive tilsluttet som et read-only lag Overlay FS, og alle ændringer, du foretager, vil kun midlertidigt blive gemt i tmpfs. Du kan tilføje optionen boobs.copy-to-ram, og så vil hele dit system blive kopieret til RAM, hvorefter harddisken kan frakobles computeren. Det er praktisk, når du skal lave noget kaput, og ændringerne kan nemt fortrydes ved at genstarte. 🙂

Men hvad hvis det er nødvendigt at gemme alle ændringer i systemet? For eksempel, hvis du har installeret software eller noget andet. I brug med et rent tmpfs er dette desværre ikke muligt, men hvis du er startet med Overlay FS, gemmes alle ændringer, der sker i systemet, i et separat tmpfs-bibliotek: /mnt/overlayfs/rootfs-changes! Brugen er meget enkel. Du startede i dit system fra USB-enheden, arbejdede et stykke tid og ønskede at gemme alt, hvad der er ændret, så opret et cpio-archive og læg det her, på denne USB-enhed.

# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Du kan placere arkivet ved siden af andre SquashFS- og cpio "lag", så arkivet ved den følgende opstart vil blive tilsluttet som endnu et read-only lag. For at fortsætte med at arbejde med ændringerne, skal du bruge indstillingen for indlæsning af boobs.rootfs-changes=\/rootfs-changes.cpio. Indstillingen boobs.rootfs-changes tilslutter det angivne lag med adgang til ændringer. Laget kan være en blokenhed; for eksempel kan du angive \/dev\/sdb1, så alle ændringer foretaget i Overlay FS blot vil blive gemt på \/dev\/sdb1.

Boobstrap er stadig under udvikling på trods af de bredde muligheder, og alle dine kommentarer og forslag tages i betragtning!

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster