Membuat gambar bootstrap v1.0


Membuat gambar bootstrap v1.0

Saya ingin menyampaikan kepada Anda sebuah kerangka kerja yang disebut chesttrap, yang ditulis dalam shell POSIX, untuk membuat image boot dengan distribusi GNU/Linux. Kerangka kerja ini memungkinkan Anda menjalani seluruh proses hanya dalam tiga langkah sederhana: mulai dari menerapkan sistem dalam chroot, membuat image initramfs yang menyertakan sistem yang di-chroot, dan pada akhirnya image ISO yang dapat di-boot. chesttrap mencakup tiga utilitas masing-masing mkbootstrap, mkinitramfs dan mkbootisofs.

mkbootstrap menginstal sistem dalam direktori terpisah, ada dukungan asli untuk CRUX, dan dalam kasus distribusi berbasis Arch Linux / Manjaro dan Debian, utilitas pihak ketiga pacstrap, basestrap dan debootstrap harus digunakan masing-masing.

mkinitramfs membuat image initramfs, Anda dapat menggunakan sistem yang terinstal di direktori sebagai "overlay", dikompresi menggunakan SquashFS, atau setelah boot ke sistem, bekerja langsung di tmpfs. Jadi misalnya, perintah mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd akan membuat file initrd, termasuk dua overlay dengan "arch- sistem chroot/" dan "/home" Anda, dikompresi menggunakan SquashFS, yang kemudian dapat Anda boot melalui PXE ke tmpfs, atau membuat image ISO yang dapat di-boot dengan initrd ini.

mkbootisofs membuat image ISO BIOS/UEFI yang dapat di-boot dari direktori yang ditentukan. Letakkan saja /boot/vmlinuz dan /boot/initrd di direktori.

chesttrap tidak menggunakan busybox, dan untuk menciptakan lingkungan initramfs yang berfungsi, serangkaian program minimal disalin menggunakan ldd, yang diperlukan untuk boot dan beralih ke sistem. Daftar program yang akan disalin, seperti yang lainnya, dapat dikonfigurasi melalui file konfigurasi /etc/boobstrap/boobstrap.conf. Selain itu, Anda dapat menginstal distribusi minimalis apa pun ke dalam chroot/ terpisah, yang darinya Anda dapat membuat lingkungan initramfs yang lengkap. Sebagai lingkungan yang minimalis, tetapi pada saat yang sama lengkap, diusulkan untuk menggunakan templat "crux_gnulinux-embedded", yang setelah xz membutuhkan kompromi sebesar 37 MB. busybox, selain ukurannya, 3-5 MB dibandingkan 30-50 MB pada lingkungan GNU/Linux yang lengkap, tidak lagi menawarkan keuntungan apa pun, jadi menggunakan busybox dalam sebuah proyek sepertinya tidak tepat.

Bagaimana cara cepat memeriksa fungsionalitas dan memulai? Instal dan jalankan.

# git clone https://github.com/sp00f1ng/boobstrap.git
#cd tali payudara
# make install# breasttrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Anda juga perlu menginstal dependensi yaitu: cpio, grub, grub-efi, dosfstools, xorriso. Tidak perlu menggunakan squashfs-tools; Anda dapat bekerja di tmpfs dengan jumlah RAM yang sesuai. Jika ada sesuatu yang hilang dalam sistem, breasttrap akan melaporkannya saat startup.

Untuk menyederhanakan pembuatan konfigurasi, breasttrap menyarankan penggunaan "template" dan "sistem", yang intinya adalah menggunakan "template" (bootstrap-templates/) untuk menginstal sistem dengan cepat dari file, dan langsung "sistem" (bootstrap- sistem/) digunakan untuk mengatur konfigurasi akhir.

Jadi misalnya menjalankan skrip breasttrap/bootstrap-templates/crux_gnulinux-embedded.bbuild akan menginstal konfigurasi minimum sistem CRUX GNU/Linux dan menyimpannya di file crux_gnulinux-embedded.rootfs, lalu Anda menjalankan breasttrap/bootstrap-systems /default/crux_gnulinux.bbuild yang akan memuat konfigurasi utama dari file yang disebutkan, melakukan semua konfigurasi yang diperlukan dan menyiapkan ISO yang dapat di-boot. Hal ini berguna ketika, misalnya, banyak sistem menggunakan jenis konfigurasi yang sama: agar tidak mendeskripsikan kumpulan paket yang sama setiap kali, Anda menggunakan satu templat, yang menjadi dasar pembuatan image booting sistem dengan konfigurasi akhir.

Di mana saya bisa menggunakan semua ini?

Anda mengonfigurasi sistem dalam sebuah file satu kali dan dengan menjalankannya, Anda membangun dan/atau memperbaruinya. Sistem ini berjalan di tmpfs, sehingga pada dasarnya dapat dibuang. Jika sistem gagal, Anda dapat kembali ke keadaan semula dengan satu klik tombol Reset. Anda dapat menjalankan rm -rf / dengan aman.

Anda dapat mengonfigurasi konfigurasi semua sistem Anda secara lokal, membuat gambar, mengujinya di mesin virtual atau perangkat keras terpisah, lalu mengunggahnya ke server jarak jauh dan menjalankan hanya dua perintah kexec -l /vmlinuz —initrd=/initrd && kexec -e untuk memperbarui keseluruhan sistem, reboot ke tmpfs.

Dengan cara yang sama, Anda dapat mentransfer semua sistem, misalnya di VDS, untuk bekerja di tmpfs, dan mengenkripsi disk /dev/vda dan menggunakannya hanya untuk data, tanpa perlu menyimpan sistem operasi di dalamnya. Satu-satunya "titik kebocoran informasi" dalam hal ini hanyalah "cold dump" dari memori mesin virtual Anda, dan jika terjadi kompromi pada sistem (misalnya, dengan menebak kata sandi ssh atau kerentanan di Exim), Anda dapat mengunduh ISO baru melalui "panel kontrol" penyedia Anda, untuk menjalankan kembali VDS, tanpa lupa mengedit konfigurasi sistem untuk menutup semua kerentanan. Ini lebih cepat daripada menginstal ulang, konfigurasi selanjutnya, dan/atau memulihkan dari cadangan, karena pada dasarnya, ISO yang dapat diunduh dengan sistem Anda adalah cadangan Anda. "Tujuh masalah - satu reset."

Pada akhirnya, Anda dapat membuat distribusi apa pun untuk kebutuhan Anda, menulisnya ke drive USB dan mengerjakannya, memperbaruinya sesuai kebutuhan dan menulis ulang ke drive USB lagi. Semua data disimpan di awan. Anda tidak perlu lagi mengkhawatirkan keamanan sistem dan membuat cadangan ketika sistem, saya ulangi, pada dasarnya sudah menjadi “sekali pakai”.

Keinginan, saran dan komentar Anda dipersilakan.

Dalam repositori di tautan di bawah terdapat file README terperinci (dalam bahasa Inggris) dengan deskripsi setiap utilitas dan contoh penggunaan, ada juga dokumentasi terperinci dalam bahasa Rusia dan riwayat pengembangan tersedia di tautan: Kompleks skrip boot Boobstrap.

Sumber: linux.org.ru

Tambah komentar