Program disajikan
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.
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