ผมขอแนะนำเฟรมเวิร์กที่ชื่อว่า boobstrap ซึ่งเขียนด้วย POSIX shell สำหรับสร้างอิมเมจบูตได้ด้วยระบบปฏิบัติการ GNU/LinuxLinux. Фреймворк позволяет пройти весь пусть в три простых шага: от развёртывания системы в chroot, создания initramfs-образа включающего в себя систему из chroot, и в конечном счёте загрузочного 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 จากนั้นคุณสามารถบูต initrd เข้าสู่ tmpfs ด้วย PXE หรือสร้างอิมเมจ ISO ที่สามารถบูตได้ด้วย initrd นี้
mkbootisofs สร้างอิมเมจ ISO ที่สามารถบูตได้สำหรับ BIOS/UEFI จากไดเร็กทอรีที่ระบุ เพียงใส่ /boot/vmlinuz และ /boot/initrd ลงในไดเร็กทอรี
boobstrap не использует busybox, а для создания рабочего окружения initramfs копируется минимальный набор программ с использованием ldd, необходимых для загрузки и переключения в систему. Список программ для копирования, как и всё остальное, можно настроить через файл конфигурации /etc/boobstrap/boobstrap.conf. Так же, вы можете установить любой минималистичный дистрибутив в отдельный chroot/, из которого далее создать уже полноценное initramfs окружение. В качестве такого минималистичного, но при этом полноценного окружения предлагается использовать шаблон «crux_gnulinux-embedded», который после xz занимает компромиссные 37мб. busybox же, кроме своего размера, 3-5мб против 30-50мб полноценного GNU/Linux окружения, никаких преимуществ более не предлагает, таким образом использование busybox в проекте не видится целесообразным.
จะตรวจสอบฟังก์ชันการทำงานและเริ่มต้นใช้งานได้อย่างรวดเร็วได้อย่างไร? ติดตั้งและรัน
# โคลน git https://github.com/sp00f1ng/boobstrap.git
# ซีดี บ็อกสแตรป
# ทำการติดตั้ง# boobstrap/tests/crux_gnulinux-download-and-build
คุณต้องติดตั้ง dependencies เพิ่มเติมด้วย ได้แก่ cpio, grub, grub-efi, dosfstools และ xorriso การใช้ squashfs-tools เป็นทางเลือก คุณสามารถทำงานใน tmpfs ด้วย RAM ในปริมาณที่เหมาะสม หากระบบของคุณขาดสิ่งใดไป boobstrap จะแจ้งเตือนคุณเมื่อเริ่มต้นระบบ
เพื่อลดความยุ่งยากในการสร้างการกำหนดค่า bootstrap แนะนำให้ใช้ "เทมเพลต" และ "ระบบ" โดยที่เนื้อหาหลักคือการใช้ "เทมเพลต" (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 ทำให้สามารถทิ้งระบบได้ หากระบบขัดข้อง คุณสามารถกลับสู่สถานะเดิมได้ด้วยการกดปุ่ม Reset เพียงครั้งเดียว คุณสามารถรันคำสั่ง rm -rf / ได้อย่างง่ายดาย
คุณสามารถกำหนดค่าระบบทั้งหมดของคุณภายในเครื่อง สร้างอิมเมจ ทดสอบในเครื่องเสมือนหรือฮาร์ดแวร์แยกกัน จากนั้นอัปโหลดไปยังเซิร์ฟเวอร์ระยะไกลและอัปเดตระบบทั้งหมดโดยรันเพียงสองคำสั่ง: kexec -l /vmlinuz --initrd=/initrd && kexec -e จากนั้นรีบูตเข้าสู่ tmpfs
ในทำนองเดียวกัน คุณสามารถย้ายระบบทั้งหมด เช่น บน VDS ไปยัง tmpfs และเข้ารหัสไดรฟ์ /dev/vda และใช้งานเฉพาะข้อมูลเท่านั้น จึงไม่จำเป็นต้องเก็บระบบปฏิบัติการไว้ "จุดรั่วไหลของข้อมูล" เพียงอย่างเดียวในกรณีนี้คือ "การดัมพ์ข้อมูลแบบเย็น" (cold dump) ของหน่วยความจำของเครื่องเสมือนของคุณ และหากระบบถูกบุกรุก (เช่น โดยการบังคับด้วยรหัสผ่าน SSH หรือการใช้ช่องโหว่ Exim) คุณสามารถดาวน์โหลดไฟล์ ISO ใหม่ผ่านแผงควบคุมของผู้ให้บริการเพื่อกู้คืน VDS ให้กลับมาใช้งานได้ ขณะเดียวกันก็แก้ไขการกำหนดค่าระบบเพื่อแก้ไขช่องโหว่ทั้งหมด วิธีนี้เร็วกว่าการติดตั้งใหม่ กำหนดค่า และ/หรือกู้คืนจากข้อมูลสำรอง เพราะไฟล์ ISO ที่ดาวน์โหลดมาพร้อมกับระบบของคุณนั้นเปรียบเสมือนข้อมูลสำรองของคุณ "เจ็ดปัญหา รีเซ็ตครั้งเดียว"
สุดท้ายนี้ คุณสามารถสร้างระบบการแจกจ่ายใดๆ ก็ได้ตามความต้องการ เบิร์นลงไดรฟ์ USB แล้วนำไปใช้งานได้ อัปเดตตามต้องการ แล้วเขียนข้อมูลใหม่ลงในไดรฟ์ USB อีกครั้ง ข้อมูลทั้งหมดจะถูกเก็บไว้ในคลาวด์ ไม่ต้องกังวลเรื่องความสมบูรณ์ของระบบหรือการสำรองข้อมูลอีกต่อไป เพราะระบบได้กลายเป็น "แบบใช้แล้วทิ้ง" ไปแล้ว
ความปรารถนา ข้อเสนอแนะ และความคิดเห็นของคุณเรายินดีรับ
ลิงก์คลังข้อมูลด้านล่างนี้ประกอบด้วยไฟล์ README โดยละเอียด (ภาษาอังกฤษ) พร้อมคำอธิบายของแต่ละยูทิลิตี้และตัวอย่างการใช้งาน นอกจากนี้ยังมีเอกสารประกอบโดยละเอียดเป็นภาษารัสเซียและประวัติการพัฒนาที่ลิงก์นี้: บูสท์แรป บูต สคริปต์ คอมเพล็กซ์.
ที่มา: linux.org.ru

