Bootolható képek létrehozása boobstrap v1.2


Bootolható képek létrehozása boobstrap v1.2

Egy hónap után lassú fejlesztés után megjelent a boobstrap v1.2 - egy POSIX shellre épülő eszközkészlet, amely lehetővé teszi indító képek és tárolók létrehozását. A Boobstrap segítségével mindezt egy parancs képes elvégezni:

Initramfs képet készíthet, bármely GNU/Linux disztribúciót beépítve.

  • Indító ISO képeket készíthet bármely GNU/Linux disztribúcióval.
  • Indító USB, HDD, SSD tárolókat készíthet bármely GNU/Linux disztribúcióval.
  • A különlegessége abban rejlik, hogy a GNU/Linux indulása után vagy teljesen tiszta tmpfs-ben, vagy Overlay FS és SquashFS képek használatával működik, az Ön választása szerint. Bármely GNU/Linux disztribúciót egy könyvtárba telepít, elvégzi az összes szükséges beállítást (külön könyvtárban is), majd egy parancs segítségével létrehozza az indító eszközt, legyen az ISO kép, USB, HDD, SSD tároló, vagy akár initrd képet is készíthet a rendszerrel. A rendszer mindig egy állapotban marad, és hiba esetén egy Reset gomb megnyomásával visszatérhet az eredeti állapotba. Szeretné a rendszert egy másik hosztra áthelyezni, vagy egy meglévő konténerből létrehozni egy rendszert? A Boobstrap ezt megteszi.

A legfontosabb változások közé tartozik:

Hozzáadtuk a syslinux betöltő támogatását, az már meglévő grub2 mellett. Most választása szerint használhatja a grub2-t, a syslinux-t vagy akár mindkettőt együtt, amikor indító eszközt vagy ISO képet készít, ezzel a —legacy-boot syslinux és —efi grub2 opciókkal különböző indítási módokat támogathat az ISO képben.

  • Hozzáadtunk egy —bootable opciót, amely bármely blokkos eszközt indítóvá tesz. ISO képek létrehozásakor a —iso-9660 opciót kell használni.
  • Új boot opciók kerültek bevezetésre: boobs.use-shmfs az összes átlapolt tartalom tmpfs-be másolásához, boobs.use-overlayfs az Overlay FS használatával történő indításhoz, boobs.search-rootfs a rendszer forrását választható meg, boobs.copy-to-ram a rendszer memóriába másolásához, majd az eszköz kikapcsolásához.
  • Hozzáadtunk opciókat a kernel indításához, illetve az indításhoz.
  • A boobstrap működéséhez elengedhetetlen egyetlen kötelező függőség a cpio. A többi függőség opcionális: a grub2 és a syslinux a bootolható adathordozók létrehozásához szükséges, a cdrkit vagy az xorriso választás szerint az ISO-k létrehozásához, a squashfs-tools a SquashFS létrehozásához, azonban semmi nem akadályozza meg, hogy a —cpio opciót használjuk a disztribúció archiválásához —squashfs helyett. A busybox csak akkor kerül felhasználásra, ha telepítve van, de ha nincs, az összes szükséges segédprogramot a rendszeréből másolják át. Így a boobstrap működése szinte mindenhol garantált.

Például a következő parancs egy initrd képet hoz létre, amelybe belekerül a gentoo-chroot/ rendszer, mint SquashFS kép csomagolva, amely sikeresen betöltődik az initrd betöltése után. Emlékeztetnék arra, hogy az Overlay FS SquashFS-zel történő használatához át kell adni a boobs.use-overlayfs opciót a kernelnek, különben a rendszer tmpfs-be lesz kicsomagolva. Minden további beállítást egy külön könyvtárban végezhet, például gentoo-settings/

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

Az initrd kép a rendszerrel belül kényelmes, amikor gyorsan szeretne rendszert telepíteni, például PXE-n keresztül, vagy amikor egy betöltött rendszeren az initrd-be szeretne váltani a következő paranccsal: kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, vagy akár a QEMU virtuális gép felületén (esetleg Proxmoxban) egy távoli forrásból betölteni három IPXE parancs használatával: kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Ahogy látja, még egy egyszerű initrd is a rendszerével számos felhasználási lehetőséget kínál.

Bootolható adathordozók és képek létrehozásához a mkbootisofs parancsot használják, például így néz ki egy ISO kép létrehozása a —iso-9660 opcióval, syslinux használatával Legacy-mode (BIOS) bootoláshoz és grub2 UEFI-mode bootoláshoz.

# 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

Megadhat egy bootolási módot, vagy akár egyáltalán nem is adhat meg módot, az ISO kép sikeresen létrejön.

Bármely adathordozóra történő telepítés, amelyről bootolni kíván, a —bootable opcióval végezhető. Önnek saját magának kell létrehozni a partíciókat az adathordozón (fdisk), és formázni őket (mkdosfs, mke2fs stb.), majd a készüléket egy könyvtárba kell csatolnia.

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

Óvatosan! A bootable option defines from which block device the directory is mounted and installs the bootloader onto this device. If you forget to mount the device or mistakenly specify a directory located, for example, on /dev/sda, the bootloader on /dev/sda will be overwritten accordingly. Use bootable with caution.

Installing any GNU/Linux system boils down to a single command. Installation can be done on any HDD, SSD, etc. It is worth mentioning that this is still a system running from Overlay FS / SquashFS, or fully booting into tmpfs, at your choice.

In addition to everything, boobstrap has several interesting features and additional capabilities!

For example, you can create a custom boobstrap initrd with the command mkinitramfs `mktemp -d` > /boot/initrd and boot into your system with this initrd by specifying the kernel options boobs.use-overlayfs boobs.search-rootfs=/dev/sda1. In this case, /dev/sda1, where your home system is installed, will be connected as a read-only layer of Overlay FS, and all changes you make will only be temporarily recorded in tmpfs. You can add the option boobs.copy-to-ram, and then your entire system will be copied into RAM, allowing you to disconnect the hard drive from the computer. This is convenient when you need to break something, as you can easily revert the changes simply by rebooting. 🙂

But what if you need to save all changes in the system? For example, you installed software or something else. When working in a clean tmpfs, unfortunately, this is not possible, but if you booted using Overlay FS, all changes occurring in the system are saved in a separate tmpfs directory: /mnt/overlayfs/rootfs-changes! The usage scenario is very simple. You booted into your system from a USB device, did some work, and wanted to save everything that changed, then create a cpio archive and place it here as well, on the same USB device.

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

Az archívot elhelyezheti más SquashFS és cpio „rétegek” mellett, így a következő indításkor az archívum egyszerűen egy újabb csak olvasható rétegként csatlakozik. A módosításokkal való további munkához használja a boobs.rootfs-changes=\/rootfs-changes.cpio betöltési opciót. A boobs.rootfs-changes opció lehetővé teszi, hogy a megadott réteget írási hozzáféréssel csatlakoztassa. A réteg blokkeszközként is szolgálhat, például megadhatja a \/dev\sdb1-et, így minden Overlay FS-ben végzett módosítás egyszerűen a \/dev\/sdb1-en kerül mentésre.

A Boobstrap, annak széles lehetőségei ellenére, még mindig fejlesztés alatt áll, minden megjegyzését és javaslatát figyelembe vesszük!

Forrás: linux.org.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster