booty - yuklash tasvirlari va disklarini yaratish uchun yordamchi dastur

Dastur taqdimoti o'lja, bu sizga bitta buyruq bilan yuklanadigan initrd tasvirlari, ISO fayllari yoki har qanday GNU/Linux tarqatilishini o'z ichiga olgan drayverlarni yaratish imkonini beradi. Kod POSIX qobig'ida yozilgan va tarqaladi GPLv3 ostida litsenziyalangan.

Booty yordamida yuklangan barcha distributivlar SHMFS (tmpfs) yoki SquashFS + Overlay FS bilan ishlaydi, bu foydalanuvchining tanlovi. Tarqatish bir marta yaratiladi va yuklash jarayonida ildiz uchun sof tmpf-lardan yoki tmpf-ga o'zgarishlarni yozib olish bilan Overlay FS + SquashFS kombinatsiyasidan foydalanishga imkon beruvchi parametrlar tanlanadi. Yuklab olinadigan tarqatish to'plamini RAMga oldindan nusxalash mumkin, bu tarqatish to'plamini yuklab olish va xotiraga nusxalashdan keyin USB drayverini uzish imkonini beradi.

Avvalo, Booty o'zining initrd imidjini yaratadi, u joriy tizim yoki busybox-dan mahalliy yordamchi dasturlardan foydalanishi mumkin. Katalogda (chroot) o'rnatilgan butun tarqatish to'plamini initramfs ichiga qo'shish (paketlash) mumkin. Bu tizimni kexec yordamida yangilashingiz kerak bo'lganda foydali bo'lishi mumkin: shunchaki initrd-ni yangi yadro va initrd ichidagi yangi tizim bilan qayta yuklang.

Booty-ga xos initrd tasvirini yaratish:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Initrd tasvirini yaratish, shu jumladan “gentoo/” katalogidan tarqatish:

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

Shundan so'ng, ushbu initrd tasviri, masalan, PXE yoki kexec orqali yuklashga to'liq tayyor.

Keyinchalik, Booty "qoplamalar" sifatida belgilangan tizim bilan tasvirlarni yaratadi. Misol uchun, shartli Gentoo-ni alohida katalogga o'rnatishingiz (arxivni ochishingiz) mumkin, shundan so'ng Booty yordamida cpio arxivi yoki ushbu tizim bilan SquashFS tasviri yaratiladi. Shuningdek, siz tarqatishni alohida katalogda sozlashingiz va shaxsiy sozlamalaringizni boshqa katalogga nusxalashingiz mumkin. Bu barcha "qatlamlar" ketma-ket bir-birining ustiga yuklanadi va yagona ish tizimini yaratadi.

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

Oxir-oqibat, Booty yuqoridagi tizimni tasvirlardan o'rnatish orqali yuklanadigan ISO tasvirlari va USB, HDD, SSD va boshqa drayverlarni yaratishga imkon beradi. o'lja BIOS va UEFI yuklash tizimlarini yaratishni qo'llab-quvvatlaydi. GRUB2 va SYSLINUX yuklash moslamalari qo'llab-quvvatlanadi. Bootloaderlar birlashtirilishi mumkin, masalan, BIOS-ga yuklash uchun SYSLINUX-dan va UEFI uchun GRUB2-dan foydalaning. ISO tasvirlarini yaratish uchun sizga qo'shimcha ravishda cdrkit (genisoimage) yoki xorriso (xorrisofs) to'plami kerak bo'ladi.

Zarur bo'lgan yagona qo'shimcha harakat yadroni (vmlinuz) yuklash uchun oldindan tayyorlashdir. Muallif (Spoofing) "make defconfig" dan foydalanishni tavsiya qiladi. Tasvirni yaratishdan oldin siz vmlinuz yadrosini va birinchi misolda yaratilgan oldindan tayyorlangan "bo'sh" initrdni joylashtirish orqali katalog tayyorlashingiz kerak.

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

Bu bilan tayyorgarlik tugallandi, endi biz ushbu katalogdan ISO tasvirlarini yaratishimiz mumkin.

Quyidagi buyruq yuklanadigan emas, faqat ISO tasvirini yaratadi:

mkdir iso/
mkbootisofs iso/ --chiqish arxivi.iso

Yuklash tasvirini yaratish uchun mos ravishda BIOS uchun "--legacy-boot" va UEFI uchun "--efi" parametrlarini belgilashingiz kerak; parametrlar parametr sifatida grub2 yoki syslinux-ni oladi; siz faqat bitta variantni ham belgilashingiz mumkin ( masalan, UEFI yuklashni qo'llab-quvvatlash kerak emas , u ko'rsatilmagan bo'lishi mumkin).

mkbootisofs iso/ --legacy-boot syslinux --chiqish boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --chiqish boot-bios-uefi.iso

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

Ilgari bo'lgani kabi, tizim bilan tasvirlar initrd-ga kiritilgan, siz ularni ISO-ga kiritishingiz mumkin.

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

Ushbu buyruqdan so'ng, Gentoo-ni SquashFS tasviriga ma'lumotlarni saqlash uchun tmpfs-dan foydalangan holda Overlay FS yordamida yuklaydigan yuklanadigan BIOS/UEFI ISO tasviri yaratiladi. Yadro SquashFS bilan Overlay FS qo'llab-quvvatlashi bilan qurilgan bo'lishi kerak. Ammo, agar biron sababga ko'ra bu talab qilinmasa, gentoo/ ni cpio arxivi sifatida to'plash uchun -squashfs o'rniga "-cpio" opsiyasidan foydalanishingiz mumkin, bu holda arxiv yuklangandan so'ng to'g'ridan-to'g'ri tmpfs-ga ochiladi, asosiysi. Tizimni ochish uchun tmpfs etarli RAMga ega edi.

Qiziqarli fakt: agar “—efi” opsiyasi yordamida yaratilgan ISO tasviri oddiygina fayllarni nusxalash (cp -r) orqali FAT32 flesh-diskiga ochilsa, u holda flesh-disk hech qanday oldindan tayyorgarliksiz UEFI rejimida ishga tushadi. UEFI-yuklab oluvchilar.

Yuklanadigan ISO-larga qo'shimcha ravishda, har qanday yuklanadigan disk bir xil parametrlar bilan yaratilishi mumkin: USB, HDD, SSD va boshqalar va bu diskni o'z maqsadi uchun ishlatishda davom etishi mumkin. Buni amalga oshirish uchun, masalan, USB qurilmasini o'rnatishingiz va unga mkbootisofs dasturini ishga tushirishingiz kerak. Ko'rsatilgan katalog joylashgan disk yuklanishi mumkin bo'lishi uchun "-bootable" variantini qo'shing.

o'rnatish /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

Shundan so'ng, USB qurilmasi gentoo/overlay bilan yuklanishi mumkin bo'ladi (qurilmaga /boot/vmlinuz va /boot/initrd fayllarini nusxalashni unutmang).

Agar biron sababga ko'ra drayver /mnt-ga o'rnatilmagan bo'lsa va /mnt asosiy qurilma /dev/sda joylashganligi aniqlansa, yuklash moslamasi /dev/sda ga qayta yoziladi. --bootable opsiyasini belgilashda ehtiyot bo'lishingiz kerak.

Yuklash jarayonida Booty yuklash yuklagichiga, grub.cfg yoki syslinux.cfg ga uzatilishi mumkin bo'lgan bir qator variantlarni qo'llab-quvvatlaydi. Odatiy bo'lib, hech qanday opsiyasiz, barcha qoplamalar tmpfs-ga yuklanadi va ochiladi (odatiy variant ooty.use-shmfs). Overlay FS dan foydalanish uchun booty.use-overlayfs opsiyasidan foydalanish kerak. Booty.copy-to-ram opsiyasi birinchi navbatda qoplamalarni tmpfs-ga ko'chiradi, shundan so'ng u faqat ularni bog'laydi va yuklaydi. Nusxa olingandan so'ng, USB qurilmasi (yoki boshqa xotira qurilmasi) olib tashlanishi mumkin.

Manba: opennet.ru

a Izoh qo'shish