jarahan - sarana kanggo nggawe gambar boot lan drive

Program sing diwenehi jarahan, sing ngidini sampeyan nggawe gambar initrd bootable, file ISO utawa drive sing ngemot distribusi GNU/Linux kanthi siji printah. Kode kasebut ditulis ing cangkang POSIX lan disebarake dening dilisensi ing GPLv3.

Kabeh distribusi booted nggunakake Booty mbukak salah siji SHMFS (tmpfs) utawa SquashFS + Overlay FS, pilihan pangguna. Distribusi digawe sapisan, lan sajrone proses boot, paramèter dipilih sing ngidini sampeyan nggunakake tmpfs murni kanggo oyod, utawa kombinasi Overlay FS + SquashFS kanthi owah-owahan rekaman menyang tmpfs. Sampeyan bisa uga wis nyalin kit distribusi sing bisa didownload menyang RAM, sing ngidini sampeyan medhot drive USB sawise ndownload lan nyalin kit distribusi menyang memori.

Kaping pisanan, Booty ngasilake gambar initrd dhewe, sing bisa nggunakake utilitas asli saka sistem saiki utawa busybox. Sampeyan bisa uga kalebu (pack) kabeh kit distribusi sing diinstal ing direktori (chroot) menyang initramfs. Iki bisa migunani yen sampeyan kudu nganyarke sistem nggunakake kexec: mung muat ulang initrd nganggo kernel anyar lan sistem anyar ing njero initrd.

Nggawe gambar initrd khusus Booty:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Nggawe gambar initrd kalebu distribusi saka direktori "gentoo/":

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

Sawisé iku gambar initrd iki rampung siap kanggo loading, contone, liwat PXE utawa liwat kexec.

Sabanjure, Booty ngasilake gambar kanthi sistem sing ditemtokake minangka "overlay". Contone, sampeyan bisa nginstal (unpack arsip) Gentoo kondisional ing direktori kapisah, sawise arsip cpio utawa gambar SquashFS karo sistem iki bakal kui nggunakake jarahan. Sampeyan uga bisa ngatur distribusi ing direktori kapisah, lan nyalin setelan pribadhi menyang direktori liyane. Kabeh "lapisan" iki bakal dimuat kanthi urutan ing ndhuwur saben liyane lan nggawe sistem kerja siji.

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

Pungkasane, Booty ngidini sampeyan nggawe gambar ISO bootable lan USB, HDD, SSD lan drive liyane kanthi nginstal sistem ing ndhuwur saka gambar. jarahan ndhukung nggawe sistem boot BIOS lan UEFI. Bootloader GRUB2 lan SYSLINUX didhukung. Bootloaders bisa digabungake, contone, nggunakake SYSLINUX kanggo boot menyang BIOS, lan GRUB2 kanggo UEFI. Kanggo nggawe gambar ISO, sampeyan uga mbutuhake paket cdrkit (genisoimage) utawa xorriso (xorrisofs).

Mung tumindak tambahan sing dibutuhake yaiku nyiyapake kernel (vmlinuz) kanggo boot luwih dhisik. Penulis (Spoofing) nyaranake nggunakake "make defconfig". Sadurunge nggawe gambar, sampeyan kudu nyiapake direktori kanthi nyelehake kernel vmlinuz lan initrd "kosong" sing wis disiapake sadurunge digawe ing conto pisanan.

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

Kanthi persiapan rampung, saiki kita bisa nggawe gambar ISO saka direktori iki.

Printah ing ngisor iki bakal nggawe gambar ISO, dudu bootable, mung ISO:

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

Kanggo nggawe gambar boot, sampeyan kudu nemtokake pilihan "--legacy-boot" kanggo BIOS lan "--efi" kanggo UEFI, masing-masing; opsi kasebut njupuk grub2 utawa syslinux minangka parameter; sampeyan uga bisa nemtokake mung siji opsi ( contone, support boot UEFI ora perlu , bisa uga ora kasebut).

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

Lan kaya sadurunge, gambar karo sistem kalebu ing initrd, sampeyan bisa kalebu ing ISO.

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

Sawise printah iki, gambar ISO / UEFI ISO bootable bakal diasilake sing ngemot Gentoo menyang gambar SquashFS nggunakake Overlay FS, nggunakake tmpfs kanggo panyimpenan data. Kernel kudu dibangun kanthi dhukungan Overlay FS karo SquashFS. Nanging, yen ana alesan iki ora dibutuhake, sampeyan bisa nggunakake opsi "-cpio" tinimbang -squashfs kanggo paket gentoo/ minangka arsip cpio, ing kasus iki arsip bakal unpacked langsung menyang tmpfs nalika boot, bab utama iku kanggo unpacking sistem tmpfs wis cukup RAM.

Kasunyatan sing menarik: yen gambar ISO sing digawe nggunakake opsi "-efi" dibongkar menyang flash drive FAT32 kanthi mung nyalin file (cp -r), banjur Flash drive bakal boot ing mode UEFI tanpa persiapan awal, amarga spesifik. saka UEFI- downloaders.

Saliyane ISO bootable, drive bootable apa wae bisa digawe kanthi parameter sing padha: USB, HDD, SSD, lan liya-liyane, lan drive iki bisa terus digunakake kanggo tujuan sing dikarepake. Kanggo nindakake iki, sampeyan kudu masang, contone, piranti USB lan mbukak mkbootisofs ing. Cukup tambahake siji pilihan "-bootable" supaya drive ing ngendi direktori kasebut bisa di-boot.

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

Sawisé iku, piranti USB bakal bisa di-boot nganggo gentoo/ overlay (aja lali nyalin file /boot/vmlinuz lan /boot/initrd menyang piranti).

Yen sakperangan alesan drive ora dipasang ing / mnt, lan dadi metu sing / mnt dumunung ing piranti utama / dev / sda, banjur bootloader bakal ditulis maneh kanggo / dev / sda. Sampeyan kudu ati-ati nalika nemtokake pilihan --bootable.

Sajrone proses boot, Booty ndhukung sawetara opsi sing bisa dikirim menyang boot loader, grub.cfg utawa syslinux.cfg. Kanthi gawan, tanpa opsi, kabeh overlay dimuat lan dibongkar menyang tmpfs (pilihan standar ooty.use-shmfs). Kanggo nggunakake Overlay FS pilihan booty.use-overlayfs kudu digunakake. Opsi booty.copy-to-ram pisanan nyalin overlay menyang tmpfs, sawise iku mung nyambungake lan mbukak. Sawise disalin, piranti USB (utawa piranti panyimpenan liyane) bisa dicopot.

Source: opennet.ru

Add a comment