Mencipta imej bootstrap v1.0


Mencipta imej bootstrap v1.0

Saya ingin memperkenalkan kepada anda satu rangka kerja yang dipanggil boobstrap, yang ditulis dalam shell POSIX, untuk mencipta imej yang boleh di-boot dengan pengedaran GNU/Linux.LinuxRangka kerja ini membolehkan anda menyelesaikan keseluruhan proses dalam tiga langkah mudah: daripada menggunakan sistem dalam chroot, mencipta imej initramfs yang mengandungi sistem yang di-chroot, dan akhirnya, imej ISO yang boleh di-boot. Boostrap merangkumi tiga utiliti: mkbootstrap, mkinitramfs dan mkbootisofs, masing-masing.

mkbootstrap memasang sistem dalam direktori berasingan, terdapat sokongan asli untuk CRUX, dan dalam kes Arch Linux / Manjaro dan pengedaran berdasarkannya Debian Utiliti pihak ketiga seperti pacstrap, basestrap dan debootstrap harus digunakan masing-masing.

mkinitramfs mencipta imej initramfs, anda boleh menggunakan sistem yang dipasang dalam direktori sebagai "tindihan", dimampatkan menggunakan SquashFS, atau selepas boot ke dalam sistem, berfungsi secara langsung dalam tmpfs. Jadi sebagai contoh, perintah mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd akan mencipta fail initrd, termasuk dua tindanan dengan "arch- sistem chroot/" dan "/home" anda, dimampatkan menggunakan SquashFS, yang kemudiannya anda boleh boot melalui PXE ke dalam tmpfs, atau buat imej ISO boleh boot dengan initrd ini.

mkbootisofs mencipta imej ISO boleh boot BIOS/UEFI daripada direktori yang ditentukan. Hanya letakkan /boot/vmlinuz dan /boot/initrd dalam direktori.

Boobstrap tidak menggunakan busybox. Untuk mencipta persekitaran initramfs yang berfungsi, ia menyalin set program minimum menggunakan ldd, yang diperlukan untuk but dan log masuk ke sistem. Senarai program untuk disalin, seperti semua program lain, boleh dikonfigurasikan melalui fail konfigurasi /etc/boobstrap/boobstrap.conf. Anda juga boleh memasang sebarang pengedaran minimalis dalam chroot/ yang berasingan, yang kemudiannya boleh mencipta persekitaran initramfs yang lengkap. Templat "crux_gnulinux-embedded" dicadangkan untuk persekitaran minimalis namun lengkap sedemikian; selepas xz, ia mengambil masa 37 MB yang terjejas. Busybox, sebaliknya, ialah 3-5 MB, berbanding 30-50 MB untuk GNU/.Linux persekitaran, tidak menawarkan sebarang kelebihan lain, jadi penggunaan busybox dalam projek itu nampaknya tidak sesuai.

Bagaimana dengan cepat menyemak fungsi dan bermula? Pasang dan jalankan.

# git klon https://github.com/sp00f1ng/boobstrap.git
# cd tali dada
# buat pemasangan# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Anda juga perlu memasang kebergantungan, iaitu: cpio, grub, grub-efi, dosfstools, xorriso. Menggunakan squashfs-tools tidak perlu; anda boleh bekerja dalam tmpfs dengan jumlah RAM yang sesuai. Jika ada sesuatu yang hilang dalam sistem, boobstrap akan melaporkannya semasa dimulakan.

Untuk memudahkan penciptaan konfigurasi, boobstrap mencadangkan menggunakan "templat" dan "sistem", yang intipatinya adalah menggunakan "template" (bootstrap-templates/) untuk memasang sistem dengan cepat daripada fail, dan terus "sistem" (bootstrap- sistem/) digunakan untuk menyediakan konfigurasi akhir.

Contohnya, menjalankan skrip boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild akan memasang konfigurasi minimum sistem CRUX GNU/Linux dan menyimpannya ke fail crux_gnulinux-embedded.rootfs. Kemudian, anda jalankan bootstrap/bootstrap-systems/default/crux_gnulinux.bbuild, yang akan memuatkan konfigurasi awal daripada fail yang dinyatakan di atas, melaksanakan semua konfigurasi yang diperlukan dan menyediakan ISO yang boleh di-boot. Ini mudah, contohnya, apabila berbilang sistem menggunakan konfigurasi yang sama: untuk mengelakkan daripada menerangkan set pakej yang sama setiap kali, anda menggunakan templat tunggal, yang kemudiannya anda cipta imej sistem yang boleh di-boot dengan konfigurasi akhir.

Di mana saya boleh menggunakan semua ini?

Anda mengkonfigurasi sistem dalam fail sekali dan dengan menjalankannya anda membina dan/atau mengemas kininya. Sistem ini berjalan dalam tmpfs, yang menjadikannya pada asasnya boleh guna. Jika sistem gagal, anda boleh kembali ke keadaan asalnya dengan satu klik butang Reset. Anda boleh menjalankan rm -rf / dengan selamat.

Anda boleh mengkonfigurasi konfigurasi semua sistem anda secara setempat, mencipta imej, mengujinya dalam mesin maya atau perkakasan berasingan, kemudian memuat naiknya ke pelayan jauh dan menjalankan hanya dua arahan kexec -l /vmlinuz β€”initrd=/initrd && kexec -e untuk mengemas kini keseluruhan keseluruhan sistem, but semula ke tmpfs.

Dengan cara yang sama, anda boleh memindahkan semua sistem, contohnya pada VDS, untuk berfungsi dalam tmpfs, dan menyulitkan cakera /dev/vda dan menggunakannya hanya untuk data, tanpa perlu mengekalkan sistem pengendalian padanya. Satu-satunya "titik kebocoran maklumat" dalam kes ini hanyalah "cold dump" memori mesin maya anda, dan sekiranya berlaku kompromi sistem (contohnya, dengan meneka kata laluan ssh atau kelemahan dalam Exim), anda boleh memuat turun ISO baharu melalui "panel kawalan" pembekal anda, untuk menghidupkan semula VDS, tanpa lupa mengedit konfigurasi sistem untuk menutup semua kelemahan. Ini lebih pantas daripada memasang semula, konfigurasi seterusnya dan/atau memulihkan daripada sandaran, kerana pada dasarnya, ISO yang boleh dimuat turun dengan sistem anda ialah sandaran anda. β€œTujuh masalah - satu set semula.”

Pada akhirnya, anda boleh membuat sebarang pengedaran untuk keperluan anda, tuliskannya ke pemacu USB dan kerjakan di dalamnya, mengemas kininya mengikut keperluan dan menulis semula ke pemacu USB sekali lagi. Semua data disimpan di awan. Anda tidak perlu lagi bimbang tentang keselamatan sistem dan membuat sandaran apabila sistem, saya ulangi, pada dasarnya telah menjadi "boleh guna".

Harapan, cadangan dan komen anda dialu-alukan.

Dalam repositori di pautan di bawah terdapat fail README terperinci (dalam bahasa Inggeris) dengan penerangan setiap utiliti dan contoh penggunaan, terdapat juga dokumentasi terperinci dalam bahasa Rusia dan sejarah pembangunan tersedia di pautan: Kompleks skrip but boobstrap.

Sumber: linux.org.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS πŸ”₯ Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster