غنيمة - أداة مساعدة لإنشاء صور التمهيد ومحركات الأقراص

البرنامج المقدم غنيمة، والذي يسمح لك بإنشاء صور initrd قابلة للتمهيد أو ملفات ISO أو محركات أقراص تحتوي على أي توزيعة GNU/Linux بأمر واحد. الكود مكتوب في POSIX Shell و وزعت من خلال مرخص بموجب GPLv3.

تعمل جميع التوزيعات التي تم تشغيلها باستخدام Booty إما على تشغيل SHMFS (tmpfs) أو SquashFS + Overlay FS، حسب اختيار المستخدم. يتم إنشاء التوزيع مرة واحدة، وأثناء عملية التمهيد، يتم تحديد المعلمات التي تسمح لك باستخدام tmpfs خالصًا للجذر، أو مزيج من Overlay FS + SquashFS مع تسجيل التغييرات على tmpfs. من الممكن نسخ مجموعة التوزيع القابلة للتنزيل مسبقًا إلى ذاكرة الوصول العشوائي (RAM)، مما يسمح لك بفصل محرك أقراص USB بعد تنزيل مجموعة التوزيع ونسخها إلى الذاكرة.

بادئ ذي بدء، يقوم Booty بإنشاء صورة initrd الخاصة به، والتي يمكنها استخدام الأدوات المساعدة الأصلية من النظام الحالي أو Busybox. من الممكن تضمين (حزمة) مجموعة التوزيع الكاملة المثبتة في الدليل (chroot) في initramfs. يمكن أن يكون هذا مفيدًا عندما تحتاج إلى ترقية نظام باستخدام kexec: ما عليك سوى إعادة تحميل initrd بنواة جديدة ونظام جديد داخل initrd.

إنشاء صورة initrd خاصة بالغنيمة:

مكدير initramfs/
mkinitramfs initramfs/ --output initrd

إنشاء صورة initrd تتضمن التوزيعة من دليل "gentoo/":

مكدير initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd

وبعد ذلك تصبح هذه الصورة initrd جاهزة تمامًا للتحميل، على سبيل المثال، عبر PXE أو عبر kexec.

بعد ذلك، يقوم Booty بإنشاء صور باستخدام النظام المحدد كـ "تراكبات". على سبيل المثال، يمكنك تثبيت (فك ضغط الأرشيف) Gentoo الشرطي في دليل منفصل، وبعد ذلك سيتم إنشاء أرشيف cpio أو صورة SquashFS مع هذا النظام باستخدام Booty. يمكنك أيضًا تكوين التوزيع في دليل منفصل، ونسخ إعداداتك الشخصية إلى دليل آخر. سيتم تحميل كل هذه "الطبقات" بالتتابع فوق بعضها البعض وإنشاء نظام عمل واحد.

مكدير initramfs/
mkinitramfs initramfs/ --تراكب gentoo/ --إعدادات التراكب/ --مستندات التراكب/ --squashfs --إخراج initrd

في النهاية، يتيح لك Booty إنشاء صور ISO قابلة للتمهيد ومحركات أقراص USB وHDD وSSD ومحركات أقراص أخرى عن طريق تثبيت النظام أعلاه من الصور. غنيمة يدعم إنشاء أنظمة التمهيد BIOS وUEFI. يتم دعم أدوات تحميل التشغيل GRUB2 وSYSLINUX. يمكن دمج أدوات تحميل التشغيل، على سبيل المثال، استخدام SYSLINUX للتمهيد في BIOS، وGRUB2 لـ UEFI. لإنشاء صور ISO، ستحتاج أيضًا إلى حزمة cdrkit (genisoimage) أو xorriso (xorrisofs)، للاختيار من بينها.

الإجراء الإضافي الوحيد المطلوب هو إعداد النواة (vmlinuz) للتمهيد مسبقًا. يوصي المؤلف (الانتحال) باستخدام "make defconfig". قبل إنشاء الصورة، تحتاج إلى إعداد دليل عن طريق وضع نواة vmlinuz وinitrd "الفارغ" المُعد مسبقًا والذي تم إنشاؤه في المثال الأول.

مكدير ايزو /
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd

وبهذا اكتمال الإعداد، يمكننا الآن إنشاء صور ISO من هذا الدليل.

سيقوم الأمر التالي بإنشاء صورة ISO، وليست صورة قابلة للتشغيل، بل صورة ISO فقط:

مكدير ايزو /
mkbootisofs iso/ --output archive.iso

لإنشاء صورة تمهيد، تحتاج إلى تحديد خيار "--legacy-boot" لنظام BIOS و"--efi" لـ UEFI، على التوالي؛ تأخذ الخيارات إما grub2 أو syslinux كمعلمات؛ ويمكنك أيضًا تحديد خيار واحد فقط ( على سبيل المثال، ليس هناك حاجة إلى دعم تمهيد UEFI، وقد لا يكون محددًا).

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

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output 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 لتخزين البيانات. يجب أن يتم إنشاء النواة بدعم Overlay FS مع SquashFS. ومع ذلك، إذا لم يكن ذلك مطلوبًا لسبب ما، فيمكنك استخدام خيار "-cpio" بدلاً من -squashfs لحزم gentoo/ كأرشيف cpio، وفي هذه الحالة سيتم تفريغ الأرشيف مباشرة في tmpfs عند التمهيد، الشيء الرئيسي هو أنه لتفريغ نظام tmpfs كان لديه ذاكرة وصول عشوائي كافية.

حقيقة مثيرة للاهتمام: إذا تم تفريغ صورة ISO تم إنشاؤها باستخدام خيار "—efi" على محرك أقراص فلاش FAT32 بمجرد نسخ الملفات (cp -r)، فسيتم تشغيل محرك الأقراص المحمول في وضع UEFI دون أي تحضير أولي، وذلك بفضل التفاصيل من UEFI- التنزيلات.

بالإضافة إلى ISO القابلة للتشغيل، يمكن إنشاء أي محرك أقراص قابل للتمهيد بنفس المعلمات: USB، وHDD، وSSD، وما إلى ذلك، ويمكن الاستمرار في استخدام محرك الأقراص هذا للغرض المقصود منه. للقيام بذلك، تحتاج إلى تثبيت جهاز USB، على سبيل المثال، وتشغيل mkbootisofs عليه. ما عليك سوى إضافة خيار واحد "—قابل للتمهيد" حتى يصبح محرك الأقراص الذي يوجد عليه الدليل المحدد قابلاً للتمهيد.

جبل / ديف / sdb1 / mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

بعد ذلك، سيصبح جهاز USB قابلاً للتمهيد باستخدام الملف gentoo/ overlay (لا تنس نسخ الملفات /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

إضافة تعليق