rampasan - utilitas untuk membuat image dan drive boot

Program disajikan Barang rampasan, yang memungkinkan Anda membuat image initrd, file ISO, atau drive yang dapat di-boot yang berisi distribusi GNU/Linux apa pun dengan satu perintah. Kode ini ditulis dalam shell POSIX dan didistribusikan oleh berlisensi di bawah GPLv3.

Semua distribusi yang di-boot menggunakan Booty menjalankan SHMFS (tmpfs) atau SquashFS + Overlay FS, pilihan pengguna. Distribusi dibuat satu kali, dan selama proses boot, parameter dipilih yang memungkinkan Anda menggunakan tmpfs murni untuk root, atau kombinasi Overlay FS + SquashFS dengan pencatatan perubahan ke tmpfs. Dimungkinkan untuk menyalin terlebih dahulu kit distribusi yang dapat diunduh ke dalam RAM, yang memungkinkan Anda melepaskan drive USB setelah mengunduh dan menyalin kit distribusi ke dalam memori.

Pertama-tama, Booty menghasilkan image initrdnya sendiri, yang dapat menggunakan utilitas asli dari sistem saat ini atau busybox. Dimungkinkan untuk memasukkan (mengemas) seluruh kit distribusi yang diinstal di direktori (chroot) ke dalam initramfs. Ini dapat berguna ketika Anda perlu memutakhirkan sistem menggunakan kexec: cukup muat ulang initrd dengan kernel baru dan sistem baru di dalam initrd.

Membuat image initrd khusus Booty:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Membuat image initrd termasuk distribusinya dari direktori “gentoo/”:

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd

Setelah itu gambar initrd ini benar-benar siap untuk dimuat, misalnya melalui PXE atau melalui kexec.

Selanjutnya, Booty menghasilkan gambar dengan sistem yang ditentukan sebagai “overlay”. Misalnya, Anda dapat menginstal (membongkar arsip) Gentoo bersyarat di direktori terpisah, setelah itu arsip cpio atau image SquashFS dengan sistem ini akan dibuat menggunakan Booty. Anda juga dapat mengonfigurasi distribusi di direktori terpisah, dan menyalin pengaturan pribadi Anda ke direktori lain. Semua “lapisan” ini akan dimuat secara berurutan di atas satu sama lain dan menciptakan satu sistem kerja.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --pengaturan overlay/ --overlay dokumen/ --squashfs --output initrd

Pada akhirnya, Booty memungkinkan Anda membuat image ISO yang dapat di-boot dan USB, HDD, SSD, dan drive lain dengan menginstal sistem di atas dari image. Barang rampasan mendukung pembuatan sistem boot BIOS dan UEFI. Bootloader GRUB2 dan SYSLINUX didukung. Bootloader bisa digabungkan, misalnya menggunakan SYSLINUX untuk boot ke BIOS, dan GRUB2 untuk UEFI. Untuk membuat image ISO, Anda juga memerlukan paket cdrkit (genisoimage) atau xorriso (xorrisofs), untuk dipilih.

Satu-satunya tindakan tambahan yang diperlukan adalah mempersiapkan kernel (vmlinuz) untuk boot terlebih dahulu. Penulis (Spoofing) merekomendasikan penggunaan "make defconfig". Sebelum membuat image, Anda perlu menyiapkan direktori dengan menempatkan kernel vmlinuz dan initrd “kosong” yang telah disiapkan sebelumnya yang dibuat pada contoh pertama.

mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd

Setelah persiapan selesai, sekarang kita dapat membuat image ISO dari direktori ini.

Perintah berikut akan membuat image ISO, bukan image yang dapat di-boot, hanya ISO:

mkdir iso/
mkbootisofs iso/ --arsip keluaran.iso

Untuk membuat image boot, Anda perlu menentukan opsi “--legacy-boot” untuk BIOS dan “--efi” untuk UEFI; opsi tersebut menggunakan grub2 atau syslinux sebagai parameter; Anda juga dapat menentukan hanya satu opsi ( misalnya, dukungan boot UEFI tidak diperlukan, mungkin tidak ditentukan).

mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso

Dan sama seperti sebelumnya, gambar dengan sistem disertakan dalam initrd, Anda dapat memasukkannya ke dalam ISO.

mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso

Setelah perintah ini, image ISO BIOS/UEFI yang dapat di-boot akan dibuat yang memuat Gentoo ke dalam image SquashFS menggunakan Overlay FS, menggunakan tmpfs untuk penyimpanan data. Kernel harus dibangun dengan dukungan Overlay FS dengan SquashFS. Namun, jika karena alasan tertentu hal ini tidak diperlukan, Anda dapat menggunakan opsi “—cpio” alih-alih —squashfs untuk mengemas gentoo/ sebagai arsip cpio, dalam hal ini arsip akan dibongkar langsung ke tmpfs saat boot, yang utama adalah adalah untuk membongkar sistem tmpfs memiliki cukup RAM.

Fakta menarik: jika image ISO yang dibuat menggunakan opsi “—efi” dibongkar ke flash drive FAT32 hanya dengan menyalin file (cp -r), maka Flash drive akan boot dalam mode UEFI tanpa persiapan awal apa pun, berkat spesifikasinya dari UEFI- pengunduh.

Selain ISO yang dapat di-boot, drive apa pun yang dapat di-boot dapat dibuat dengan parameter yang sama: USB, HDD, SSD, dan sebagainya, dan drive ini dapat terus digunakan untuk tujuan yang dimaksudkan. Untuk melakukan ini, Anda perlu memasang, misalnya, perangkat USB dan menjalankan mkbootisofs di dalamnya. Cukup tambahkan satu opsi “—bootable” sehingga drive tempat direktori tertentu berada menjadi dapat di-boot.

pasang /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

Setelah itu, perangkat USB akan menjadi bootable dengan gentoo/overlay (jangan lupa untuk menyalin file /boot/vmlinuz dan /boot/initrd ke perangkat).

Jika karena alasan tertentu drive tidak dipasang di /mnt, dan ternyata /mnt terletak di perangkat utama /dev/sda, maka bootloader akan ditulis ulang ke /dev/sda. Anda harus berhati-hati saat menentukan opsi --bootable.

Selama proses boot, Booty mendukung sejumlah opsi yang dapat diteruskan ke boot loader, grub.cfg atau syslinux.cfg. Secara default, tanpa opsi apa pun, semua overlay dimuat dan dibongkar ke tmpfs (opsi default ooty.use-shmfs). Untuk menggunakan Overlay FS, opsi booty.use-overlayfs harus digunakan. Opsi booty.copy-to-ram pertama-tama menyalin overlay ke tmpfs, setelah itu hanya menghubungkannya dan memuatnya. Setelah disalin, perangkat USB (atau perangkat penyimpanan lainnya) dapat dilepas.

Sumber: opennet.ru

Tambah komentar