rampasan - utiliti untuk mencipta imej but dan pemacu

Program yang dibentangkan Barang rampasan, yang membolehkan anda mencipta imej initrd boleh boot, fail ISO atau pemacu yang mengandungi sebarang pengedaran GNU/Linux dengan satu arahan. Kod ini ditulis dalam shell POSIX dan diedarkan oleh dilesenkan di bawah GPLv3.

Semua pengedaran dibut menggunakan Booty run sama ada SHMFS (tmpfs) atau SquashFS + Overlay FS, pilihan pengguna. Pengedaran dibuat sekali, dan semasa proses but, parameter dipilih yang membolehkan anda menggunakan tmpfs tulen untuk akar, atau gabungan Overlay FS + SquashFS dengan perubahan rakaman kepada tmpfs. Anda boleh membuat pra-salinan kit pengedaran yang boleh dimuat turun ke dalam RAM, yang membolehkan anda memutuskan sambungan pemacu USB selepas memuat turun dan menyalin kit pengedaran ke dalam memori.

Pertama sekali, Booty menjana imej initrdnya sendiri, yang boleh menggunakan utiliti asli daripada sistem semasa atau kotak sibuk. Ia adalah mungkin untuk memasukkan (pek) keseluruhan kit pengedaran yang dipasang dalam direktori (chroot) ke dalam initramfs. Ini boleh berguna apabila anda perlu menaik taraf sistem menggunakan kexec: cuma muat semula initrd dengan kernel baharu dan sistem baharu di dalam initrd.

Mencipta imej initrd khusus Booty:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Mencipta imej initrd termasuk pengedaran dari direktori "gentoo/":

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

Selepas itu imej initrd ini bersedia sepenuhnya untuk dimuatkan, contohnya, melalui PXE atau melalui kexec.

Seterusnya, Booty menjana imej dengan sistem yang ditentukan sebagai "tindihan". Contohnya, anda boleh memasang (membongkar arkib) Gentoo bersyarat dalam direktori berasingan, selepas itu arkib cpio atau imej SquashFS dengan sistem ini akan dijana menggunakan Booty. Anda juga boleh mengkonfigurasi pengedaran dalam direktori yang berasingan dan menyalin tetapan peribadi anda ke direktori lain. Semua "lapisan" ini akan dimuatkan secara berurutan di atas satu sama lain dan mencipta sistem kerja tunggal.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay documents/ --squashfs --output initrd

Akhirnya, Booty membolehkan anda mencipta imej ISO boleh boot dan pemacu USB, HDD, SSD dan lain-lain dengan memasang sistem di atas daripada imej. Barang rampasan menyokong penciptaan sistem but BIOS dan UEFI. Pemuat but GRUB2 dan SYSLINUX disokong. Pemuat but boleh digabungkan, sebagai contoh, gunakan SYSLINUX untuk but ke dalam BIOS, dan GRUB2 untuk UEFI. Untuk mencipta imej ISO, anda juga memerlukan pakej cdrkit (genisoimage) atau xorriso (xorrisofs), untuk dipilih.

Satu-satunya tindakan tambahan yang diperlukan ialah menyediakan kernel (vmlinuz) untuk boot terlebih dahulu. Pengarang (Spoofing) mengesyorkan menggunakan "make defconfig". Sebelum mencipta imej, anda perlu menyediakan direktori dengan meletakkan kernel vmlinuz dan initrd "kosong" yang telah disediakan sebelum ini yang dibuat dalam contoh pertama.

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

Dengan ini penyediaan selesai, kita kini boleh mencipta imej ISO dari direktori ini.

Perintah berikut akan mencipta imej ISO, bukan yang boleh boot, hanya ISO:

mkdir iso/
mkbootisofs iso/ --output archive.iso

Untuk mencipta imej but, anda perlu menentukan pilihan "--legacy-boot" untuk BIOS dan "--efi" untuk UEFI, masing-masing; pilihan mengambil sama ada grub2 atau syslinux sebagai parameter; anda juga boleh menentukan hanya satu pilihan ( sebagai contoh, sokongan but UEFI tidak diperlukan , ia mungkin tidak dinyatakan).

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 seperti sebelum ini, imej dengan sistem telah dimasukkan ke dalam initrd, anda boleh memasukkannya ke dalam ISO.

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

Selepas arahan ini, imej BIOS/UEFI ISO boleh boot akan dihasilkan yang memuatkan Gentoo ke dalam imej SquashFS menggunakan Overlay FS, menggunakan tmpfs untuk penyimpanan data. Kernel mesti dibina dengan sokongan Overlay FS dengan SquashFS. Walau bagaimanapun, jika atas sebab tertentu ini tidak diperlukan, anda boleh menggunakan pilihan “—cpio” dan bukannya —squashfs untuk membungkus gentoo/ sebagai arkib cpio, dalam hal ini arkib akan dibongkar terus ke dalam tmpfs semasa boot, perkara utama ialah untuk membongkar sistem tmpfs mempunyai RAM yang mencukupi.

Fakta menarik: jika imej ISO yang dibuat menggunakan pilihan "—efi" dibongkar ke pemacu denyar FAT32 dengan hanya menyalin fail (cp -r), maka pemacu Denyar akan but dalam mod UEFI tanpa sebarang persediaan awal, terima kasih kepada yang khusus. daripada pemuat turun UEFI.

Selain ISO boleh boot, mana-mana pemacu boleh but boleh dibuat dengan parameter yang sama: USB, HDD, SSD dan sebagainya, dan pemacu ini boleh terus digunakan untuk tujuan yang dimaksudkan. Untuk melakukan ini, anda perlu memasang, sebagai contoh, peranti USB dan menjalankan mkbootisofs padanya. Hanya tambah satu pilihan "—boleh boot" supaya pemacu di mana direktori yang ditentukan terletak menjadi boleh boot.

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

Selepas itu, peranti USB akan menjadi boleh boot dengan gentoo/ overlay (jangan lupa untuk menyalin fail /boot/vmlinuz dan /boot/initrd ke peranti).

Jika atas sebab tertentu pemacu tidak dipasang dalam /mnt, dan ternyata /mnt terletak pada peranti utama /dev/sda, maka pemuat but akan ditulis semula ke /dev/sda. Anda harus berhati-hati apabila menentukan pilihan --bootable.

Semasa proses but, Booty menyokong beberapa pilihan yang boleh dihantar kepada pemuat but, grub.cfg atau syslinux.cfg. Secara lalai, tanpa sebarang pilihan, semua tindanan dimuatkan dan dibongkar ke dalam tmpfs (pilihan lalai ooty.use-shmfs). Untuk menggunakan Overlay FS pilihan booty.use-overlayfs mesti digunakan. Pilihan booty.copy-to-ram mula-mula menyalin tindanan kepada tmpfs, selepas itu ia hanya menyambungkannya dan memuatkannya. Setelah disalin, peranti USB (atau peranti storan lain) boleh dialih keluar.

Sumber: opennet.ru

Tambah komen