میخواهم چارچوبی به نام boobstrap را که در پوسته POSIX نوشته شده است، برای ایجاد تصاویر قابل بوت با توزیعهای گنو/لینوکس به شما معرفی کنم.Linux. Фреймворк позволяет пройти весь пусть в три простых шага: от развёртывания системы в 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 را به صورت PXE در tmpfs بوت کنید، یا یک تصویر 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 в проекте не видится целесообразным.
چگونه به سرعت عملکرد را بررسی کرده و شروع به کار کنیم؟ نصب و اجرا کنید.
# گیت کلون https://github.com/sp00f1ng/boobstrap.git
# بند سینه سی دی
# نصب را انجام دهید# boobstrap/tests/crux_gnulinux-download-and-build
همچنین باید وابستگیهای اضافی، یعنی: cpio، grub، grub-efi، dosfstools و xorriso را نصب کنید. استفاده از squashfs-tools اختیاری است؛ میتوانید با مقدار رم مناسب در tmpfs کار کنید. اگر سیستم شما چیزی کم داشته باشد، boobstrap هنگام راهاندازی به شما اطلاع میدهد.
برای سادهسازی ایجاد پیکربندیها، بوتاسترپ استفاده از «templates» و «systems» را پیشنهاد میدهد که اساس آن استفاده از «templates» (bootstrap-templates/) برای نصب سریع سیستمها از یک فایل و استفاده مستقیم از «systems» (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 را رمزگذاری کنید و فقط برای دادهها از آن استفاده کنید و نیاز به نگه داشتن سیستم عامل روی آن را از بین ببرید. تنها "نقطه نشت اطلاعات" در این حالت، "ذخیره سرد" حافظه ماشین مجازی شما خواهد بود. و اگر سیستم به خطر بیفتد (مثلاً با حمله جستجوی فراگیر رمز عبور SSH یا سوءاستفاده از آسیبپذیری Exim)، میتوانید یک فایل ISO جدید را از طریق کنترل پنل ارائه دهنده خود دانلود کنید تا VDS را به حالت کار برگردانید، ضمن اینکه پیکربندی سیستم را نیز ویرایش کنید تا همه آسیبپذیریها را وصله کنید. این کار سریعتر از نصب مجدد، پیکربندی و/یا بازیابی از یک نسخه پشتیبان است، زیرا فایل ISO دانلود شده با سیستم شما اساساً نسخه پشتیبان شماست. "هفت مشکل، یک تنظیم مجدد."
در نهایت، شما میتوانید هر توزیعی را متناسب با نیازهای خود ایجاد کنید، آن را روی یک درایو USB رایت کنید و با آن کار کنید، در صورت نیاز آن را بهروزرسانی کنید و سپس دوباره آن را روی درایو USB بازنویسی کنید. تمام دادهها در فضای ابری ذخیره میشوند. دیگر نیازی نیست نگران یکپارچگی سیستم یا پشتیبانگیری از آن باشید، زیرا سیستم، تکرار میکنم، اساساً «یکبار مصرف» شده است.
آرزوها، پیشنهادات و نظرات شما مورد استقبال قرار میگیرد.
لینک مخزن زیر شامل یک فایل README مفصل (به زبان انگلیسی) با توضیحات مربوط به هر ابزار و مثالهای استفاده است. همچنین مستندات مفصلی به زبان روسی و تاریخچه توسعه در این لینک موجود است: مجموعه اسکریپت بوت بوسترپ.
منبع: linux.org.ru

