Krijimi i imazheve të bootstrap v1.2


Krijimi i imazheve të bootstrap v1.2

pas vetëm një muaj Pas zhvillimit të ngadaltë, boobstrap v1.2 u lëshua - një grup mjetesh në guaskën POSIX për krijimin e imazheve dhe disqeve të nisjes.

Boobstrap ju lejon të bëni vetëm një komandë:

  • Krijo një imazh initramfs, duke përfshirë çdo shpërndarje GNU/Linux në të.
  • Krijoni imazhe ISO të bootable me çdo shpërndarje GNU/Linux.
  • Krijoni disqe të bootable USB, HDD, SSD me çdo shpërndarje GNU/Linux.

E veçanta është se pas ngarkimit GNU/Linux do të funksionojë ose plotësisht në tmpfs të pastër, ose duke përdorur imazhe mbivendosje FS dhe SquashFS, sipas zgjedhjes suaj. Ju instaloni çdo shpërndarje GNU/Linux në një direktori, bëni të gjitha cilësimet e nevojshme (mundësisht në një direktori të veçantë), pas së cilës krijoni një pajisje nisjeje me vetëm një komandë, qoftë imazh ISO, USB, HDD, një disk SSD, ose ju mund të krijoni një imazh initrd me sistemin. Sistemi do të jetë gjithmonë në të njëjtën gjendje dhe në rast të një avarie, mund të ktheheni në gjendjen e tij origjinale duke shtypur një buton Reset. Dëshiron ta transferosh sistemin te një host tjetër, apo të krijosh një sistem nga një kontejner ekzistues? Boobstrap do ta bëjë atë.

Ndër ndryshimet kryesore:

  • Mbështetje e shtuar për ngarkuesin syslinux, përveç grub2 tashmë ekzistues. Tani mund të zgjidhni të përdorni ose grub2, syslinux ose të dyja kur krijoni një pajisje boot ose imazh ISO me opsionet --legacy-boot syslinux dhe --efi grub2 respektivisht, dhe gjithashtu mund të zgjidhni se cilat mënyra Shkarkimi do të mbështesë ISO imazh.
  • U shtua opsioni --bootable, i cili e bën çdo pajisje bllok të bootable. Për të krijuar imazhe ISO, duhet të përdoret opsioni --iso-9660.
  • U shtuan opsionet e nisjes së kernelit boobs.use-shmfs për të kopjuar përmbajtjen e të gjitha mbivendosjeve në tmpfs, boobs.use-overlayfs për të nisur duke përdorur Overlay FS, boobs.search-rootfs për të zgjedhur një burim me sistemin, boobs.copy-to-ram për të kopjuar sistemin në memorie dhe më pas për të fikur pajisjen.
  • Varësia e vetme e nevojshme që boobstrap të funksionojë është cpio. Pjesa tjetër e varësive janë opsionale: grub2, syslinux - kërkohet për të krijuar media bootable, cdrkit ose xorriso për të zgjedhur - për të krijuar një ISO, squashfs-tools për të krijuar SquashFS, por asgjë nuk ju pengon të përdorni opsionin -cpio në vend të - squashfs për të paketuar shpërndarjen tuaj në një arkiv. busybox do të përdoret vetëm nëse është i instaluar, por nëse jo, të gjitha shërbimet e nevojshme nga sistemi juaj do të kopjohen. Kështu, rripi i krahut është i garantuar të funksionojë pothuajse kudo.

Për shembull, komanda e mëposhtme do të krijojë një imazh initrd duke përfshirë një sistem gentoo-chroot/ të paketuar si imazh SquashFS, i cili do të niset me sukses pasi të jetë ngarkuar vetë initrd. Më lejoni t'ju kujtoj se për të përdorur Overlay FS në lidhje me SquashFS, duhet të kaloni opsionin e kernelit boobs.use-overlayfs, përndryshe sistemi do të shpaketohet në tmpfs. Të gjitha cilësimet shtesë mund të bëhen në një drejtori të veçantë, për shembull gentoo-settings/

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

Një imazh initrd me një sistem brenda është i përshtatshëm kur ju duhet të vendosni shpejt një sistem, për shembull, nëpërmjet PXE, ose në një ndërprerës të ngarkuar të sistemit në initrd duke përdorur komandën kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, mirë ose, duke qenë në ndërfaqen e makinës virtuale QEMU (ndoshta edhe Proxmox), niseni nga një burim i largët duke përdorur tre komanda IPXE: kernel http://[...]/vmlinuz, initrd http://[ ...]/initrd, boot. Siç mund ta shihni, edhe një initrd i rregullt me ​​sistemin tuaj brenda ka shumë përdorime.

Për të krijuar disqe dhe imazhe të bootueshme, përdoret komanda mkbootisofs, për shembull, kjo është ajo që krijimi i një imazhi ISO me opsionin -iso-9660 duket si përdorimi i syslinux për të nisur në modalitetin Legacy (BIOS) dhe grub2 për të nisur në EFI- modaliteti (UEFI).

# 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

Mund të specifikoni një nga mënyrat e nisjes, ose të mos i specifikoni fare, imazhi përkatës ISO do të krijohet me sukses.

Instalimi në çdo disk dhe nisja pasuese prej tij kryhet duke përdorur opsionin --bootable. Ju duhet të krijoni vetë ndarje në disk (fdisk) dhe t'i formatoni ato (mkdosfs, mke2fs, etj.), dhe më pas ta montoni pajisjen në një direktori.

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

Kujdes! Opsioni --bootable përcakton se nga cila pajisje bllok është montuar drejtoria dhe instalon ngarkuesin në këtë pajisje. Nëse harroni të montoni pajisjen ose specifikoni gabimisht një drejtori që ndodhet, për shembull, në /dev/sda, ngarkuesi i ngarkimit në /dev/sda do të mbishkruhet në përputhje me rrethanat. Përdorni --bootable me kujdes.

Instalimi i çdo sistemi GNU/Linux reduktohet në vetëm një komandë. Instalimi mund të bëhet në çdo HDD, SSD, etj. Vlen të kujtojmë se ky është ende një sistem që funksionon nga Overlay FS / SquashFS, ose ngarkohet tërësisht në tmpfs, sipas zgjedhjes suaj.

Ndër të tjera, boobstrap ka një sërë veçorish interesante dhe aftësish shtesë!

Për shembull, mund të krijoni një boobstrap të pronarit initrd me komandën mkinitramfs `mktemp -d` > /boot/initrd dhe të nisni në sistemin tuaj me këtë initrd, duke specifikuar opsionet e kernelit boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. Në këtë rast, /dev/sda1, ku është instaluar sistemi juaj i shtëpisë, do të lidhet si një shtresë "Overlay FS" vetëm për lexim dhe të gjitha ndryshimet që bëni do të shkruhen vetëm përkohësisht në tmpfs. Mund të shtoni opsionin boobs.copy-to-ram dhe më pas i gjithë sistemi juaj do të kopjohet në RAM dhe hard disku mund të shkëputet nga kompjuteri. I përshtatshëm kur duhet të prishni diçka dhe mund t'i ktheni ndryshimet thjesht duke rindezur. 🙂

Por, çka nëse ende duhet të ruani të gjitha ndryshimet në sistem? Për shembull, keni instaluar softuer ose diçka tjetër. Kur punoni në tmpfs të pastër, kjo është për fat të keq e pamundur, por nëse keni nisur duke përdorur Overlay FS, atëherë të gjitha ndryshimet që ndodhin në sistem ruhen në një direktori të veçantë tmpfs: /mnt/overlayfs/rootfs-changes! Skenari i përdorimit është shumë i thjeshtë. Jeni nisur në sistemin tuaj nga një pajisje USB, keni bërë disa punë dhe keni dashur të ruani gjithçka që është ndryshuar, më pas krijoni një arkiv cpio dhe e vendosni këtu, në të njëjtën pajisje USB.

# cd /mnt/overlayfs/rootfs-changes
# Gjej . -print0 | cpio --krijo --format "newc" --null --qetë > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Mund ta vendosni arkivin pranë "shtresave" të tjera SquashFS dhe cpio, më pas me ngarkimin e mëvonshëm arkivi do të lidhet si një shtresë tjetër vetëm për lexim. Për të vazhduar punën me ndryshimet, përdorni opsionin e ngarkimit boobs.rootfs-changes=/rootfs-changes.cpio. Opsioni boobs.rootfs-changes mundëson shtresën e specifikuar me akses ndryshimi. Shtresa mund të jetë një pajisje bllok, për shembull mund të specifikoni /dev/sdb1, atëherë të gjitha ndryshimet e bëra në Overlay FS thjesht do të ruhen në /dev/sdb1.

Boobstrap, megjithë mundësitë e gjera në dispozicion, është ende në fazën e zhvillimit, të gjitha komentet dhe sugjerimet tuaja merren parasysh!

Burimi: linux.org.ru

Shto një koment