Bootstrap v1.2 tasvirlarini yaratish


Bootstrap v1.2 tasvirlarini yaratish

Keyin faqat bir oy Sekin rivojlanishdan so'ng, boobstrap v1.2 chiqarildi - yuklash tasvirlari va disklarini yaratish uchun POSIX qobig'idagi asboblar to'plami.

Boobstrap faqat bitta buyruqni bajarishga imkon beradi:

  • Initramfs tasvirini, shu jumladan undagi har qanday GNU/Linux distributivini yarating.
  • Har qanday GNU/Linux tarqatish bilan yuklanadigan ISO tasvirlarini yarating.
  • Har qanday GNU/Linux tarqatish bilan yuklanadigan USB, HDD, SSD drayverlarini yarating.

O'ziga xos jihati shundaki, GNU/Linux yuklangandan so'ng to'liq tmpf formatida yoki Overlay FS va SquashFS rasmlari yordamida siz tanlagan holda ishlaydi. Siz har qanday GNU/Linux distributivini katalogga o'rnatasiz, barcha kerakli sozlamalarni (ehtimol alohida katalogda) o'rnatasiz, shundan so'ng faqat bitta buyruq bilan yuklash qurilmasini yaratasiz, xoh u ISO tasviri, USB, HDD, SSD diski yoki tizim bilan initrd tasvirini yaratishingiz mumkin. Tizim har doim bir xil holatda bo'ladi va buzilish holatlarida siz bitta Reset tugmasini bosish orqali asl holatiga qaytishingiz mumkin. Tizimni boshqa xostga o'tkazmoqchimisiz yoki mavjud konteynerdan tizim yaratmoqchimisiz? Boobstrap buni amalga oshiradi.

Asosiy o'zgarishlar orasida:

  • Mavjud grub2 ga qo'shimcha ravishda syslinux bootloader uchun qo'shimcha yordam. Endi siz yuklash qurilmasi yoki ISO tasvirini yaratishda mos ravishda --legacy-boot syslinux va --efi grub2 opsiyalari bilan grub2, syslinux yoki ikkalasidan ham foydalanishni tanlashingiz mumkin, shuningdek, yuklash ISO-ni qo'llab-quvvatlashini tanlashingiz mumkin. tasvir.
  • Har qanday blokli qurilmani yuklanishi mumkin bo'lgan --bootable opsiyasi qo'shildi. ISO tasvirlarini yaratish uchun --iso-9660 parametridan foydalanish kerak.
  • Yadro yuklash opsiyalari qo‘shildi boobs.use-shmfs barcha qoplamalar mazmunini tmpf-ga nusxalash, boobs.use-overlayfs Overlay FS yordamida yuklash, tizim bilan manba tanlash uchun boobs.search-rootfs, boobs.copy-to-ram tizimni xotiraga nusxalash va keyin qurilmani o'chirish.
  • Boobstrap ishlashi uchun zarur bo'lgan yagona bog'liqlik bu cpio. Qolgan bog'liqliklar ixtiyoriydir: grub2, syslinux - yuklanadigan media yaratish uchun zarur, cdrkit yoki xorriso tanlash uchun - ISO yaratish, SquashFS yaratish uchun squashfs-tools, lekin hech narsa sizni -cpio opsiyasidan foydalanishga to'sqinlik qilmaydi - squashfs sizning tarqatishingizni arxivga to'plash uchun. busybox faqat o'rnatilgan bo'lsa ishlatiladi, lekin agar bo'lmasa, tizimingizdan barcha kerakli yordam dasturlari nusxalanadi. Shunday qilib, boobstrap deyarli hamma joyda ishlashi kafolatlanadi.

Masalan, quyidagi buyruq SquashFS tasviri sifatida paketlangan gentoo-chroot/tizimini o'z ichiga olgan initrd tasvirini yaratadi va initrd o'zi yuklangandan so'ng muvaffaqiyatli yuklanadi. Sizga eslatib o'tamanki, Overlay FS-dan SquashFS bilan birgalikda foydalanish uchun siz boobs.use-overlayfs yadro opsiyasidan o'tishingiz kerak, aks holda tizim tmpfs-ga o'chiriladi. Barcha qo'shimcha sozlamalar alohida katalogda amalga oshirilishi mumkin, masalan, gentoo-settings/

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

Ichkarida tizim bo'lgan initrd tasviri, masalan, PXE orqali tizimni tezda joylashtirish kerak bo'lganda yoki yuklangan tizimda kexec -l /boot/vmlinuz-* —initrd=./initrd buyrug'i yordamida initrd-ga o'tish uchun qulaydir. && kexec -e, yaxshi yoki QEMU virtual mashinasi interfeysida (ehtimol hatto Proxmox) bo'lgan holda, uchta IPXE buyrug'i yordamida masofaviy manbadan yuklash: yadro http://[...]/vmlinuz, initrd http://[ ...]/initrd, yuklash. Ko'rib turganingizdek, tizimingiz ichida bo'lgan oddiy initrd ham juda ko'p foydalanishga ega.

Yuklanadigan drayvlar va tasvirlarni yaratish uchun mkbootisofs buyrug'i ishlatiladi, masalan, -iso-9660 opsiyasi bilan ISO tasvirini yaratish Legacy-rejimga (BIOS) yuklash uchun syslinux va EFI-ga yuklash uchun grub2-dan foydalanishga o'xshaydi. rejimi (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 chiqishi
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs

Yuklash rejimlaridan birini belgilashingiz yoki umuman ko'rsatmasligingiz mumkin, mos keladigan ISO tasviri muvaffaqiyatli yaratiladi.

Har qanday diskka o'rnatish va undan keyingi yuklash --bootable opsiyasi yordamida amalga oshiriladi. Diskda o'zingiz (fdisk) bo'limlarni yaratishingiz va ularni formatlashingiz (mkdosfs, mke2fs va boshqalar) va keyin qurilmani katalogga o'rnatishingiz kerak.

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

E'tibor bering! --bootable opsiyasi katalog qaysi blok qurilmadan o'rnatilganligini aniqlaydi va yuklash moslamasini ushbu qurilmaga o'rnatadi. Agar siz qurilmani o'rnatishni unutib qo'ysangiz yoki xatolik bilan, masalan, /dev/sda-da joylashgan katalogni belgilasangiz, /dev/sda-dagi yuklash moslamasining ustiga yoziladi. Ehtiyotkorlik bilan --bootable dan foydalaning.

Har qanday GNU/Linux tizimini o'rnatish faqat bitta buyruqqa qisqartiriladi. O'rnatish har qanday HDD, SSD va hokazolarda amalga oshirilishi mumkin. Shuni esda tutish kerakki, bu hali ham Overlay FS / SquashFS-dan ishlaydigan yoki butunlay tmpfs-ga yuklanadigan tizim, sizning tanlovingiz.

Boshqa narsalar qatorida, boobstrap bir qator qiziqarli xususiyatlar va qo'shimcha imkoniyatlarga ega!

Masalan, siz mkinitramfs `mktemp -d` > /boot/initrd buyrug'i bilan xususiy boobstrap initrd yaratishingiz va yadro parametrlarini boobs.use-overlayfs boobs.search-rootfs=/dev belgilab, ushbu initrd yordamida tizimingizga yuklashingiz mumkin. /sda1. Bunday holda, sizning uy tizimingiz o'rnatilgan /dev/sda1 faqat o'qish uchun Overlay FS qatlami sifatida ulanadi va siz kiritgan barcha o'zgarishlar faqat vaqtincha tmpfs-ga yoziladi. Siz boobs.copy-to-ram opsiyasini qo'shishingiz mumkin va keyin butun tizimingiz RAMga ko'chiriladi va qattiq disk kompyuterdan uzilishi mumkin. Biror narsani buzish kerak bo'lganda qulay va siz shunchaki qayta ishga tushirish orqali o'zgarishlarni orqaga qaytarishingiz mumkin. 🙂

Ammo tizimdagi barcha o'zgarishlarni hali ham saqlashingiz kerak bo'lsa-chi? Masalan, siz dasturiy ta'minot yoki boshqa narsalarni o'rnatdingiz. Sof tmpf-larda ishlaganda, afsuski, bu mumkin emas, lekin agar siz Overlay FS-dan foydalanib yuklagan bo'lsangiz, tizimdagi barcha o'zgarishlar alohida tmpfs katalogida saqlanadi: /mnt/overlayfs/rootfs-changes! Foydalanish stsenariysi juda oddiy. Siz tizimingizga USB qurilmasidan yukladingiz, biroz ish qildingiz va o'zgartirilgan hamma narsani saqlamoqchi bo'ldingiz, keyin cpio arxivini yaratib, uni shu USB qurilmasiga qo'ying.

# cd /mnt/overlayfs/rootfs-o'zgarishlar
#topish. -print0 | cpio --create --format "newc" --null --quiet > /mnt/drive/rootfs-changes.cpio
# CD $OLDPWD

Siz arxivni boshqa SquashFS va cpio "qatlamlari" yoniga qo'yishingiz mumkin, keyin keyingi yuklanganda arxiv faqat o'qish uchun boshqa qatlam sifatida ulanadi. O'zgarishlar bilan ishlashni davom ettirish uchun boobs.rootfs-changes=/rootfs-changes.cpio yuklash opsiyasidan foydalaning. Boobs.rootfs-changes opsiyasi belgilangan qatlamni o'zgartirishga ruxsat beradi. Qatlam blokli qurilma bo'lishi mumkin, masalan, siz /dev/sdb1 ni belgilashingiz mumkin, keyin Overlay FS da kiritilgan barcha o'zgarishlar shunchaki /dev/sdb1 ga saqlanadi.

Boobstrap, mavjud bo'lgan keng imkoniyatlarga qaramay, hali rivojlanish bosqichida, barcha sharhlaringiz va takliflaringiz inobatga olinadi!

Manba: linux.org.ru

a Izoh qo'shish