Boobstrap v1.2 ачаалах дүрсийг үүсгэж байна


Boobstrap v1.2 ачаалах дүрсийг үүсгэж байна

Дараа нь ердөө сар Удаан хөгжүүлсний дараа boobstrap v1.2 гарсан - ачаалах дүрс болон хөтчүүдийг үүсгэх POSIX бүрхүүл дээрх хэрэгслүүдийн багц.

Boobstrap нь танд зөвхөн нэг тушаалыг хийх боломжийг олгодог:

  • GNU/Linux түгээлтийг оруулаад initramfs дүрс үүсгэ.
  • Ямар ч GNU/Linux түгээлтээр ачаалах боломжтой ISO дүрсийг үүсгэ.
  • Ямар ч GNU/Linux түгээлттэй ачаалах боломжтой USB, HDD, SSD хөтчүүдийг үүсгэ.

Онцлог нь GNU/Linux-ийг ачаалсны дараа бүрэн цэвэр tmpfs дээр ажиллах юм уу эсвэл Overlay FS болон SquashFS зургуудыг ашиглан таны сонголтоор ажиллах болно. Та ямар ч GNU/Linux түгээлтийг директорт суулгаж, шаардлагатай бүх тохиргоог (магадгүй тусдаа директор дотор) хийж, үүний дараа та ISO дүрс, USB, HDD, SSD диск гэх мэт ганцхан тушаалаар ачаалах төхөөрөмжийг үүсгэнэ. системтэй initrd дүрс үүсгэж болно. Систем үргэлж ижил төлөвт байх бөгөөд эвдэрсэн тохиолдолд та нэг Reset товчийг дарж анхны төлөв рүүгээ буцаж болно. Та системийг өөр хост руу шилжүүлэх эсвэл одоо байгаа контейнерээс систем үүсгэхийг хүсч байна уу? Boobstrap үүнийг хийх болно.

Гол өөрчлөлтүүдийн дунд:

  • Одоо байгаа grub2-оос гадна syslinux ачаалагчийн дэмжлэгийг нэмсэн. Та одоо ачаалах төхөөрөмж эсвэл ISO дүрс үүсгэхдээ --legacy-boot syslinux болон --efi grub2 сонголтуудыг ашиглахдаа grub2, syslinux эсвэл хоёуланг нь сонгох боломжтой бөгөөд та татаж авах нь ISO-г дэмжих ямар горимыг сонгох боломжтой. зураг.
  • Ямар ч блок төхөөрөмжийг ачаалах боломжтой болгодог --bootable сонголтыг нэмсэн. ISO дүрс үүсгэхийн тулд --iso-9660 сонголтыг ашиглах ёстой.
  • Бүх давхаргын агуулгыг tmpfs рүү хуулах boobs.use-shmfs, Overlay FS ашиглан ачаалах boobs.use-overlayfs, системтэй эх сурвалжийг сонгох boobs.search-rootfs, boobs.copy-to-ram зэрэг цөмийн ачаалах сонголтуудыг нэмсэн. системийг санах ой руу хуулж, дараа нь төхөөрөмжийг унтраа.
  • Boobstrap ажиллахад шаардлагатай цорын ганц хамааралтай зүйл бол cpio юм. Үлдсэн хамаарлууд нь сонголттой: grub2, syslinux - ачаалагдах боломжтой медиа, cdrkit эсвэл xorriso-г сонгох шаардлагатай - ISO үүсгэх, SquashFS үүсгэх squashfs-tools, гэхдээ --ийн оронд -cpio сонголтыг ашиглахад юу ч саад болохгүй. squashfs нь таны түгээлтийг архивт багцлах болно. busybox нь зөвхөн суулгасан тохиолдолд л ашиглагдах ба суулгаагүй тохиолдолд таны системээс шаардлагатай бүх хэрэгслийг хуулах болно. Тиймээс boobstrap нь бараг хаа сайгүй ажиллах баталгаатай байдаг.

Жишээлбэл, дараах тушаал нь SquashFS дүрс хэлбэрээр багцлагдсан gentoo-chroot/ системийг агуулсан initrd дүрсийг үүсгэх бөгөөд initrd өөрөө ачаалагдсаны дараа амжилттай ачаалах болно. Overlay FS-ийг SquashFS-тэй хамт ашиглахын тулд та boobs.use-overlayfs цөмийн сонголтыг дамжуулах ёстой, эс тэгвээс системийг tmpfs руу задлах болно гэдгийг сануулъя. Бүх нэмэлт тохиргоог тусдаа санд хийж болно, жишээ нь gentoo-settings/

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

Дотор системтэй initrd дүрс нь системийг хурдан байрлуулах, жишээлбэл, PXE-ээр дамжуулан эсвэл ачаалагдсан систем дээр kexec -l /boot/vmlinuz-* —initrd=./initrd командыг ашиглан initrd руу шилжихэд тохиромжтой. && kexec -e, эсвэл QEMU виртуал машины интерфэйс (магадгүй Proxmox ч байж магадгүй) гурван IPXE командыг ашиглан алсын эх сурвалжаас ачаална уу: цөм http://[...]/vmlinuz, initrd http://[ ...]/initrd, ачаалах. Таны харж байгаагаар, дотор нь системтэй ердийн initrd хүртэл олон хэрэглээтэй байдаг.

Ачаалах боломжтой хөтчүүд болон зургуудыг үүсгэхийн тулд mkbootisofs командыг ашигладаг, жишээлбэл, -iso-9660 сонголтоор ISO дүрс үүсгэх нь Legacy горимд (BIOS) ачаалахын тулд syslinux, EFI руу ачаалахын тулд grub2-г ашиглахтай адил юм. горим (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 — boot.iso гаралт
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs

Та ачаалах горимуудын аль нэгийг зааж өгч болно, эсвэл огт зааж өгөхгүй бол тохирох ISO дүрсийг амжилттай үүсгэх болно.

Аливаа диск дээр суулгаж, дараа нь ачаалах нь --bootable сонголтыг ашиглан хийгддэг. Та диск дээрээ хуваалтуудыг өөрөө (fdisk) үүсгэж, форматлах (mkdosfs, mke2fs гэх мэт), дараа нь төхөөрөмжийг директорт холбох хэрэгтэй.

# холбох /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ --bootable --legacy-boot grub2 --efi grub2
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs

Анхааруулга --bootable сонголт нь лавлахыг аль блок төхөөрөмжөөс холбож байгааг тодорхойлж, энэ төхөөрөмж дээр ачаалагчийг суулгадаг. Хэрэв та төхөөрөмжийг холбохоо мартсан эсвэл жишээлбэл, /dev/sda дээр байгаа лавлахыг андуурч зааж өгсөн бол /dev/sda дээрх ачаалагчийг зохих ёсоор дарж бичих болно. --bootable-г болгоомжтой хэрэглээрэй.

Аливаа GNU/Linux системийг суулгах нь зөвхөн нэг команд болж хувирдаг. Суулгацыг ямар ч HDD, SSD гэх мэт дээр хийж болно. Энэ нь Overlay FS / SquashFS дээр ажилладаг, эсвэл tmpfs руу бүхэлд нь ачаалдаг систем хэвээр байгаа гэдгийг санах нь зүйтэй.

Бусад зүйлсийн дотор boobstrap нь хэд хэдэн сонирхолтой функц, нэмэлт боломжуудтай!

Жишээлбэл, та mkinitramfs `mktemp -d` > /boot/initrd командын тусламжтайгаар өмчийн boobstrap initrd үүсгэж, boobs.use-overlayfs boobs.search-rootfs=/dev цөмийн сонголтуудыг зааж өгч, энэ initrd-ээр системдээ ачаалж болно. /sda1. Энэ тохиолдолд таны гэрийн систем суулгасан /dev/sda1 нь зөвхөн уншигдахуйц Overlay FS давхарга хэлбэрээр холбогдох бөгөөд таны хийсэн бүх өөрчлөлтийг зөвхөн tmpfs-д түр хугацаагаар бичих болно. Та boobs.copy-to-ram гэсэн сонголтыг нэмж, дараа нь таны системийг бүхэлд нь RAM-д хуулж, хатуу дискийг компьютерээс салгаж болно. Та ямар нэг зүйлийг эвдэх шаардлагатай үед тохиромжтой бөгөөд та зүгээр л дахин ачаалснаар өөрчлөлтүүдийг буцааж болно. 🙂

Гэхдээ та систем дэх бүх өөрчлөлтийг хадгалах шаардлагатай хэвээр байвал яах вэ? Жишээлбэл, та програм хангамж эсвэл өөр зүйл суулгасан. Цэвэр tmpfs дээр ажиллах үед энэ нь харамсалтай нь боломжгүй юм, гэхдээ хэрэв та Overlay FS ашиглан ачаалсан бол системд гарсан бүх өөрчлөлтийг тусдаа tmpfs санд хадгална: /mnt/overlayfs/rootfs-changes! Ашиглалтын хувилбар нь маш энгийн. Та USB төхөөрөмжөөс системээ ачаалж, зарим ажил хийж, өөрчлөгдсөн бүх зүйлээ хадгалахыг хүссэн бөгөөд дараа нь cpio архив үүсгээд энд, ижил USB төхөөрөмж дээр байрлуулахыг хүссэн.

# cd /mnt/overlayfs/rootfs-өөрчлөлтүүд
#олох. -хэвлэх0 | cpio --create --format "newc" --null --quiet > /mnt/drive/rootfs-changes.cpio
# CD $OLDPWD

Та архивыг бусад SquashFS болон cpio "давхаргууд"-ын хажууд байрлуулж болно, дараа нь ачаалах үед архив нь зөвхөн унших боломжтой өөр давхарга болж холбогдоно. Өөрчлөлттэй үргэлжлүүлэн ажиллахын тулд boobs.rootfs-changes=/rootfs-changes.cpio байршуулах сонголтыг ашиглана уу. boobs.rootfs-changes сонголт нь өөрчлөлтийн хандалттай заасан давхаргыг идэвхжүүлдэг. Давхарга нь блок төхөөрөмж байж болно, жишээ нь та /dev/sdb1 гэж зааж өгвөл Overlay FS-д хийсэн бүх өөрчлөлтийг зүгээр л /dev/sdb1 рүү хадгална.

Boobstrap нь өргөн боломжуудтай хэдий ч хөгжлийн шатандаа байгаа бөгөөд таны бүх санал хүсэлтийг харгалзан үзэх болно!

Эх сурвалж: linux.org.ru

сэтгэгдэл нэмэх