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


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

أود أن أقدم انتباهكم إلى إطار عمل يسمى boobstrap، مكتوب في غلاف POSIX، لإنشاء صور تمهيد مع توزيعات GNU/Linux. يسمح لك إطار العمل بمتابعة العملية بأكملها في ثلاث خطوات بسيطة فقط: بدءًا من نشر النظام في جذر، وإنشاء صورة initramfs تتضمن النظام الذي تم جذره، وفي النهاية صورة ISO قابلة للتمهيد. يتضمن boobstrap ثلاث أدوات مساعدة mkbootstrap وmkinitramfs وmkbootisofs على التوالي.

يقوم mkbootstrap بتثبيت النظام في دليل منفصل، ويوجد دعم أصلي لـ CRUX، وفي حالة التوزيعات المستندة إلى Arch Linux / Manjaro وDebian، يجب استخدام الأدوات المساعدة pacstrap وbasestrap وdebootstrap على التوالي.

يقوم mkinitramfs بإنشاء صورة initramfs، ويمكنك استخدام النظام المثبت في الدليل كـ "تراكب"، أو ضغطه باستخدام SquashFS، أو بعد التشغيل في النظام، العمل مباشرة في tmpfs. على سبيل المثال، الأمر mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd سينشئ ملف initrd، يتضمن تراكبين مع "arch-" نظام chroot/" و"/home" الخاص بك، مضغوطين باستخدام SquashFS، والذي يمكنك بعد ذلك تشغيله عبر PXE في tmpfs، أو إنشاء صورة ISO قابلة للتمهيد باستخدام ملف initrd هذا.

يقوم mkbootisofs بإنشاء صورة ISO قابلة للتشغيل من BIOS/UEFI من الدليل المحدد. فقط ضع /boot/vmlinuz و /boot/initrd في الدليل.

لا يستخدم boobstrap Busbox، ولإنشاء بيئة عمل initramfs، يتم نسخ مجموعة صغيرة من البرامج باستخدام ldd، وهو أمر ضروري للتمهيد والتبديل إلى النظام. يمكن تكوين قائمة البرامج المراد نسخها، مثل أي شيء آخر، من خلال ملف التكوين /etc/boobstrap/boobstrap.conf. يمكنك أيضًا تثبيت أي توزيع بسيط في chroot/ منفصل، والذي يمكنك من خلاله إنشاء بيئة initramfs كاملة. على هذا النحو، بيئة أضيق الحدود، ولكن في نفس الوقت كاملة، يُقترح استخدام القالب "crux_gnulinux-embedded"، والذي يستغرق بعد xz حلاً وسطًا قدره 37 ميجابايت. لم يعد Busybox، إلى جانب حجمه، 3-5 ميجابايت مقابل 30-50 ميجابايت لبيئة GNU/Linux الكاملة، يقدم أي مزايا، لذا فإن استخدام Busbox في المشروع لا يبدو مناسبًا.

كيف تتحقق بسرعة من الوظيفة وتبدأ؟ التثبيت والتشغيل.

# استنساخ البوابة https://github.com/sp00f1ng/boobstrap.git
# سي دي بوبستراب
# إجراء التثبيت # boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

تحتاج أيضًا إلى تثبيت التبعيات، وهي: cpio، grub، grub-efi، dosfstools، xorriso. ليس من الضروري استخدام أدوات squashfs، حيث يمكنك العمل في tmpfs باستخدام المقدار المناسب من ذاكرة الوصول العشوائي (RAM). إذا كان هناك شيء مفقود في النظام، فسيقوم boobstrap بالإبلاغ عن ذلك عند بدء التشغيل.

لتبسيط عملية إنشاء التكوينات، يقترح boobstrap استخدام "القوالب" و"الأنظمة"، وجوهرها هو استخدام "القوالب" (bootstrap-templates/) لتثبيت الأنظمة بسرعة من ملف، و"الأنظمة" مباشرة (bootstrap- Systems/) يستخدم لإعداد التكوينات النهائية.

على سبيل المثال، سيؤدي تشغيل البرنامج النصي boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild إلى تثبيت الحد الأدنى من التكوين لنظام CRUX GNU/Linux وحفظه في الملف Crux_gnulinux-embedded.rootfs، ثم تقوم بتشغيل boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild الذي سيقوم بتحميل التكوين الأساسي من الملف المذكور، وإجراء جميع التكوينات اللازمة وإعداد ملف ISO قابل للتمهيد. يكون هذا مناسبًا، على سبيل المثال، عندما تستخدم العديد من الأنظمة نفس نوع التكوين: لكي لا تصف نفس مجموعة الحزم في كل مرة، يمكنك استخدام قالب واحد، تقوم على أساسه بإنشاء صور تمهيد للأنظمة ذات التكوين النهائي.

أين يمكنني استخدام كل هذا؟

يمكنك تكوين النظام في ملف مرة واحدة، ومن خلال تشغيله تقوم بإنشائه و/أو تحديثه. يعمل النظام في tmpfs، مما يجعله يمكن التخلص منه بشكل أساسي. إذا فشل النظام، يمكنك العودة إلى حالته الأصلية بنقرة واحدة على زر إعادة الضبط. يمكنك تشغيل rm -rf / بأمان.

يمكنك تكوين تكوينات جميع أنظمتك محليًا، وإنشاء صور، واختبارها في جهاز افتراضي أو جهاز منفصل، ثم تحميلها إلى خادم بعيد وتشغيل أمرين فقط kexec -l /vmlinuz —initrd=/initrd && kexec -e لتحديث النظام بأكمله، وإعادة تشغيله في tmpfs.

وبنفس الطريقة يمكنك نقل كافة الأنظمة مثلاً على VDS لتعمل في tmpfs وتشفير القرص /dev/vda واستخدامه فقط للبيانات دون الحاجة إلى إبقاء نظام التشغيل عليه. "نقطة تسرب المعلومات" الوحيدة في هذه الحالة ستكون فقط "التفريغ البارد" لذاكرة جهازك الظاهري، وفي حالة اختراق النظام (على سبيل المثال، عن طريق تخمين كلمة مرور ssh أو ثغرة أمنية في Exim)، يمكنك تنزيل ISO جديد من خلال "لوحة التحكم" الخاصة بموفر الخدمة الخاص بك، لإعادة تشغيل VDS مرة أخرى، دون أن تنسى تعديل تكوين النظام لإغلاق جميع نقاط الضعف. يعد هذا أسرع من إعادة التثبيت والتكوين اللاحق و/أو الاستعادة من نسخة احتياطية، لأنه في جوهر الأمر، فإن ملف ISO القابل للتنزيل مع نظامك هو النسخة الاحتياطية الخاصة بك. "سبع مشاكل - إعادة ضبط واحدة."

في النهاية، يمكنك إنشاء أي توزيعة تناسب احتياجاتك وكتابتها على محرك أقراص USB والعمل فيها وتحديثها حسب الحاجة وإعادة كتابتها على محرك أقراص USB مرة أخرى. يتم تخزين كافة البيانات في السحب. لم تعد هناك حاجة للقلق بشأن سلامة النظام وإجراء نسخة احتياطية عندما يصبح النظام، وأكرر، "يمكن التخلص منه" بشكل أساسي.

رغباتكم واقتراحاتكم وتعليقاتكم هي موضع ترحيب.

يوجد في المستودع الموجود على الرابط أدناه ملف README مفصل (باللغة الإنجليزية) مع وصف لكل أداة مساعدة وأمثلة للاستخدام، وهناك أيضًا وثائق مفصلة باللغة الروسية وتاريخ التطوير متاح على الرابط: مجمع البرنامج النصي للتمهيد Boobstrap.

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

إضافة تعليق