booty - ачаалах дүрс болон хөтчүүдийг үүсгэх хэрэгсэл

Хөтөлбөрийг танилцуулав олз, энэ нь танд ачаалагдах боломжтой initrd зураг, ISO файл эсвэл GNU/Linux түгээлтийг агуулсан хөтчүүдийг нэг тушаалаар үүсгэх боломжийг олгодог. Код нь POSIX бүрхүүлд бичигдсэн бөгөөд тараасан GPLv3 дагуу лицензтэй.

Booty ашиглан ачаалагдсан бүх түгээлтүүд нь хэрэглэгчийн сонголт болох SHMFS (tmpfs) эсвэл SquashFS + Overlay FS-ийг ажиллуулдаг. Түгээлт нь нэг удаа үүсгэгддэг бөгөөд ачаалах явцад root-д зориулж цэвэр tmpfs ашиглах боломжтой параметрүүд эсвэл tmpfs-д өөрчлөлт оруулах бичлэг бүхий Overlay FS + SquashFS-ийн хослолыг сонгох боломжтой. Татаж авах боломжтой түгээлтийн иж бүрдлийг RAM-д урьдчилан хуулах боломжтой бөгөөд энэ нь түгээлтийн иж бүрдлийг санах ойд татаж аваад хуулж авсны дараа USB дискийг салгах боломжийг олгодог.

Юуны өмнө, Booty нь өөрийн initrd дүрсийг үүсгэдэг бөгөөд энэ нь одоогийн систем эсвэл busybox-ын эх хэрэгслүүдийг ашиглах боломжтой. Лавлахад (chroot) суулгасан түгээлтийн иж бүрдлийг бүхэлд нь initramfs-д оруулах (баглах) боломжтой. Энэ нь таныг kexec ашиглан системийг шинэчлэх шаардлагатай үед хэрэг болно: initrd-г шинэ цөм болон initrd доторх шинэ системээр дахин ачааллахад л хангалттай.

Booty-д зориулсан initrd дүрс үүсгэх:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

“gentoo/” лавлахаас түгээлтийг багтаасан initrd дүрс үүсгэх:

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

Үүний дараа энэ initrd дүрсийг жишээ нь PXE эсвэл kexec-ээр ачаалахад бүрэн бэлэн болно.

Дараа нь Booty нь "давхцах" гэж заасан системээр дүрс үүсгэдэг. Жишээлбэл, та нөхцөлт Gentoo-г тусдаа санд суулгаж (архивыг задлах) боломжтой бөгөөд үүний дараа Booty ашиглан cpio архив эсвэл энэ системтэй SquashFS дүрсийг үүсгэх болно. Та мөн түгээлтийг тусдаа санд тохируулж, хувийн тохиргоогоо өөр директор руу хуулж болно. Эдгээр бүх "давхарга" нь бие биенийхээ дээр дараалан ачаалагдаж, нэг ажлын системийг бий болгоно.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay document/ --squashfs --output initrd

Эцэст нь Booty нь дээрх системийг зургуудаас суулгаснаар ачаалах боломжтой ISO дүрс болон USB, HDD, SSD болон бусад хөтчүүдийг үүсгэх боломжийг олгодог. олз BIOS болон UEFI ачаалах системийг бий болгохыг дэмждэг. GRUB2 болон SYSLINUX ачаалагчийг дэмждэг. Ачаалагчийг нэгтгэж болно, жишээлбэл, BIOS-д ачаалахдаа SYSLINUX, UEFI-д GRUB2 ашиглах боломжтой. ISO дүрс үүсгэхийн тулд танд cdrkit (genisoimage) эсвэл xorriso (xorrisofs) багц хэрэгтэй болно.

Шаардлагатай цорын ганц нэмэлт үйлдэл бол цөмийг (vmlinuz) ачаалахад урьдчилан бэлтгэх явдал юм. Зохиогч (Spoofing) "make defconfig" ашиглахыг зөвлөж байна. Зургийг үүсгэхээсээ өмнө эхний жишээнд үүсгэсэн vmlinuz цөм болон өмнө нь бэлтгэсэн "хоосон" initrd-ийг байрлуулж лавлах бэлтгэх хэрэгтэй.

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

Бэлтгэл ажил дууссан тул бид энэ лавлахаас ISO дүрс үүсгэх боломжтой боллоо.

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

mkdir iso/
mkbootisofs iso/ --гаралтын архив.iso

Ачаалах дүрс үүсгэхийн тулд та BIOS-д "--legacy-boot" болон UEFI-д "--efi"-г тус тус зааж өгөх хэрэгтэй; сонголтууд нь grub2 эсвэл syslinux-ийн аль нэгийг параметр болгон авдаг; та зөвхөн нэг сонголтыг зааж өгч болно ( жишээлбэл, UEFI ачаалах дэмжлэг шаардлагагүй, үүнийг зааж өгөөгүй байж болно).

mkbootisofs iso/ --legacy-boot syslinux --гаралт boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --гаралт boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso

Өмнө нь системтэй зургуудыг initrd-д оруулсан байсан тул та тэдгээрийг ISO-д оруулж болно.

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

Энэ командын дараа ачаалах боломжтой BIOS/UEFI ISO дүрс үүсэх бөгөөд Gentoo-г SquashFS дүрс рүү Overlay FS, өгөгдөл хадгалахад tmpfs ашиглан ачаална. Цөмийг SquashFS-тэй Overlay FS дэмжлэгтэйгээр бүтээсэн байх ёстой. Гэхдээ ямар нэг шалтгаанаар үүнийг хийх шаардлагагүй бол gentoo/-г cpio архив болгон багцлахын тулд -squashfs-ийн оронд "—cpio" сонголтыг ашиглаж болох бөгөөд энэ тохиолдолд архивыг ачаалах үед шууд tmpfs руу задлах болно. Энэ нь системийг задлахад tmpf-д хангалттай RAM байсан.

Сонирхолтой баримт: Хэрэв "-efi" сонголтыг ашиглан бүтээсэн ISO дүрсийг файлуудыг (cp -r) хуулж аваад FAT32 флаш диск рүү задлах юм бол флэш диск нь ямар ч урьдчилсан бэлтгэлгүйгээр UEFI горимд ачаалах болно. UEFI- татаж авагчдын.

Ачаалах боломжтой ISO-аас гадна USB, HDD, SSD гэх мэт ижил параметрээр ачаалагдах ямар ч дискийг үүсгэж болох бөгөөд энэ дискийг зориулалтын дагуу үргэлжлүүлэн ашиглах боломжтой. Үүнийг хийхийн тулд та жишээ нь USB төхөөрөмжийг холбож, mkbootisofs програмыг ажиллуулах хэрэгтэй. Зүгээр л нэг "-ачаалах" сонголтыг нэмснээр заасан лавлах байрлах диск ачаалах боломжтой болно.

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

Үүний дараа USB төхөөрөмж нь gentoo/ давхаргын тусламжтайгаар ачаалах боломжтой болно (төхөөрөмж рүү /boot/vmlinuz болон /boot/initrd файлуудыг хуулахаа бүү мартаарай).

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

Ачаалах явцад Booty нь ачаалагч, grub.cfg эсвэл syslinux.cfg руу дамжуулж болох хэд хэдэн сонголтыг дэмждэг. Анхдагч байдлаар, ямар ч сонголтгүйгээр бүх давхаргыг tmpfs-д ачаалж, задалдаг (өгөгдмөл сонголт ooty.use-shmfs). Overlay FS-г ашиглахын тулд booty.use-overlayfs сонголтыг ашиглах шаардлагатай. booty.copy-to-ram сонголт нь эхлээд давхаргыг tmpfs рүү хуулж, дараа нь зөвхөн тэдгээрийг холбож ачаална. Хуулсны дараа USB төхөөрөмжийг (эсвэл бусад хадгалах төхөөрөмжийг) салгаж болно.

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

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