إنشاء صور bootstrap v1.2


إنشاء صور bootstrap v1.2

بعد شهر واحد فقط بعد التطوير البطيء، تم إصدار boobstrap v1.2 - وهي مجموعة من الأدوات الموجودة على غلاف POSIX لإنشاء صور التمهيد ومحركات الأقراص.

يسمح لك Boobstrap بتنفيذ أمر واحد فقط:

  • قم بإنشاء صورة initramfs، متضمنة أي توزيعة GNU/Linux فيها.
  • قم بإنشاء صور ISO قابلة للتمهيد باستخدام أي توزيعة GNU/Linux.
  • أنشئ محركات أقراص USB وHDD وSSD قابلة للتمهيد باستخدام أي توزيعة GNU/Linux.

تكمن الخصوصية في أنه بعد تحميل GNU/Linux، سيعمل إما بشكل كامل في ملفات tmpfs خالصة، أو باستخدام صور Overlay FS وSquashFS، حسب اختيارك. تقوم بتثبيت أي توزيعة GNU/Linux في دليل، وإجراء جميع الإعدادات الضرورية (ربما في دليل منفصل)، وبعد ذلك تقوم بإنشاء جهاز تمهيد بأمر واحد فقط، سواء كان صورة ISO، أو USB، أو HDD، أو محرك أقراص SSD، أو يمكنك إنشاء صورة initrd مع النظام. سيكون النظام دائمًا في نفس الحالة وفي حالة حدوث عطل، يمكنك العودة إلى حالته الأصلية بالضغط على زر إعادة الضبط. هل تريد نقل النظام إلى مضيف آخر، أو إنشاء نظام من حاوية موجودة؟ سوف يقوم Boobstrap بذلك.

ومن بين التغييرات الرئيسية:

  • تمت إضافة دعم لمحمل التشغيل syslinux، بالإضافة إلى grub2 الموجود بالفعل. يمكنك الآن اختيار استخدام إما grub2 أو syslinux أو كليهما عند إنشاء جهاز تمهيد أو صورة ISO باستخدام خيارات --legacy-boot syslinux و --efi grub2 على التوالي، ويمكنك أيضًا اختيار أوضاع التنزيل التي ستدعم ISO صورة.
  • تمت إضافة خيار --bootable، الذي يجعل أي جهاز محظور قابلاً للتمهيد. لإنشاء صور ISO، يجب استخدام خيار --iso-9660.
  • تمت إضافة خيارات تمهيد kernel boobs.use-shmfs لنسخ محتويات جميع التراكبات إلى tmpfs، وboobs.use-overlayfs للتمهيد باستخدام Overlay FS، وboobs.search-rootfs لتحديد مصدر مع النظام، وboobs.copy-to-ram لنسخ النظام إلى الذاكرة ثم إيقاف تشغيل الجهاز.
  • التبعية الوحيدة المطلوبة لكي يعمل boobstrap هي cpio. باقي التبعيات اختيارية: grub2، syslinux - مطلوبة لإنشاء وسائط قابلة للتشغيل، cdrkit أو xorriso للاختيار من بينها - لإنشاء ISO، وأدوات squashfs لإنشاء SquashFS، ولكن لا شيء يمنعك من استخدام خيار -cpio بدلاً من - squashfs لحزم التوزيع الخاص بك في الأرشيف. لن يتم استخدام Busybox إلا إذا كان مثبتًا، ولكن إذا لم يكن الأمر كذلك، فسيتم نسخ جميع الأدوات المساعدة الضرورية من نظامك. وبالتالي، فإن boobstrap مضمون للعمل في كل مكان تقريبًا.

على سبيل المثال، سيقوم الأمر التالي بإنشاء صورة initrd تتضمن نظام gentoo-chroot/ المعبأ كصورة SquashFS، والتي سيتم تشغيلها بنجاح بعد تحميل initrd نفسه. اسمحوا لي أن أذكرك أنه لاستخدام Overlay FS بالتزامن مع SquashFS، يجب عليك تمرير خيار boobs.use-overlayfs kernel، وإلا فسيتم تفكيك النظام إلى tmpfs. يمكن إجراء جميع الإعدادات الإضافية في دليل منفصل، على سبيل المثال gentoo-settings/

# مكدير initramfs/
# mkinitramfs initramfs/ --overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs > initrd

تكون صورة initrd التي تحتوي على نظام بداخلها ملائمة عندما تحتاج إلى نشر النظام بسرعة، على سبيل المثال، عبر PXE، أو على مفتاح نظام محمل إلى initrd باستخدام الأمر kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e، حسنًا، أو، أثناء وجودك في واجهة الجهاز الظاهري QEMU (ربما حتى Proxmox)، قم بالتمهيد من مصدر بعيد باستخدام ثلاثة أوامر IPXE: kernel http://[...]/vmlinuz، initrd http://[ ...]/initrd، التمهيد. كما ترون، حتى initrd العادي مع نظامك بداخله له العديد من الاستخدامات.

لإنشاء محركات أقراص وصور قابلة للتمهيد، يتم استخدام الأمر mkbootisofs، على سبيل المثال، هذا ما يبدو عليه إنشاء صورة ISO باستخدام الخيار -iso-9660 باستخدام syslinux للتمهيد في الوضع القديم (BIOS) وgrub2 للتمهيد في EFI- الوضع (UEFI).

#مكدير initrd/
# mkinitramfs initrd/ > initrd
#مكدير 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

يمكنك تحديد أحد أوضاع التمهيد، أو عدم تحديدها على الإطلاق، سيتم إنشاء صورة 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 إلى أمر واحد فقط. يمكن إجراء التثبيت على أي محرك أقراص ثابتة أو SSD وما إلى ذلك. تجدر الإشارة إلى أن هذا لا يزال نظامًا يعمل من Overlay FS / SquashFS، أو يتم تحميله بالكامل إلى tmpfs، وهو اختيارك.

من بين أشياء أخرى، يحتوي boobstrap على عدد من الميزات المثيرة للاهتمام والقدرات الإضافية!

على سبيل المثال، يمكنك إنشاء boobstrap initrd خاص باستخدام الأمر mkinitramfs `mktemp -d` > /boot/initrd والتمهيد إلى نظامك باستخدام هذا initrd، مع تحديد خيارات kernel boobs.use-overlayfs boobs.search-rootfs=/dev /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-changes
# يجد . -طباعة0 | cpio --إنشاء --تنسيق "newc" --null --quiet> /mnt/drive/rootfs-changes.cpio
# قرص مضغوط $OLDPWD

يمكنك وضع الأرشيف بجوار "طبقات" SquashFS وcpio الأخرى، ثم عند التحميل اللاحق سيتم توصيل الأرشيف كطبقة أخرى للقراءة فقط. لمواصلة العمل مع التغييرات، استخدم خيار التحميل boobs.rootfs-changes=/rootfs-changes.cpio. يتيح خيار boobs.rootfs-changes للطبقة المحددة الوصول إلى التغيير. يمكن أن تكون الطبقة عبارة عن جهاز كتلة، على سبيل المثال يمكنك تحديد /dev/sdb1، ثم سيتم حفظ جميع التغييرات التي تم إجراؤها في Overlay FS إلى /dev/sdb1.

Boobstrap، على الرغم من الإمكانيات الواسعة المتاحة، لا يزال في مرحلة التطوير، ويتم أخذ جميع تعليقاتكم واقتراحاتكم بعين الاعتبار!

المصدر: linux.org.ru

إضافة تعليق