booty - gamit alang sa paghimo og mga imahe sa boot ug mga drive

Gipresentar nga programa inagaw, nga nagtugot kanimo sa paghimo sa mga bootable initrd nga mga imahe, mga file sa ISO o mga drive nga adunay bisan unsang pag-apod-apod sa GNU/Linux nga adunay usa ka mando. Ang code gisulat sa POSIX shell ug giapod-apod sa lisensyado ubos sa GPLv3.

Ang tanan nga mga distribusyon gi-boot gamit ang Booty run bisan SHMFS (tmpfs) o SquashFS + Overlay FS, ang gipili sa tiggamit. Ang pag-apod-apod gihimo kausa, ug sa panahon sa proseso sa boot, gipili ang mga parameter nga nagtugot kanimo sa paggamit sa puro nga tmpfs alang sa gamut, o kombinasyon sa Overlay FS + SquashFS nga adunay mga pagbag-o sa pagrekord sa tmpfs. Posible nga pre-kopya ang ma-download nga distribution kit ngadto sa RAM, nga nagtugot kanimo sa pagdiskonekta sa USB drive human sa pag-download ug pagkopya sa distribution kit ngadto sa memorya.

Una sa tanan, ang Booty nagmugna sa kaugalingon nga initrd nga imahe, nga makagamit sa mga native utilities gikan sa kasamtangan nga sistema o busybox. Posible nga iapil (pack) ang tibuok distribution kit nga gi-install sa direktoryo (chroot) ngadto sa initramfs. Mahimong mapuslanon kini kung kinahanglan nimo nga i-upgrade ang usa ka sistema gamit ang kexec: i-reload lang ang initrd gamit ang bag-ong kernel ug bag-ong sistema sa sulod sa initrd.

Paghimo ug Booty-specific initrd nga imahe:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Paghimo og initrd nga imahe lakip ang pag-apod-apod gikan sa direktoryo nga "gentoo/":

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

Pagkahuman nga kini nga initrd nga imahe hingpit nga andam alang sa pagkarga, pananglitan, pinaagi sa PXE o pinaagi sa kexec.

Sunod, ang Booty naghimo og mga imahe nga adunay sistema nga gipiho nga "mga overlay". Pananglitan, mahimo nimong i-install (unpack ang archive) usa ka conditional nga Gentoo sa usa ka bulag nga direktoryo, pagkahuman usa ka cpio archive o SquashFS nga imahe nga adunay kini nga sistema ang mabuhat gamit ang Booty. Mahimo usab nimo nga i-configure ang pag-apod-apod sa usa ka lahi nga direktoryo, ug kopyahon ang imong personal nga mga setting sa lain nga direktoryo. Ang tanan nga kini nga mga "layer" sunod-sunod nga ikarga sa usag usa ug maghimo usa ka sistema sa pagtrabaho.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay nga mga dokumento/ --squashfs --output initrd

Sa katapusan, ang Booty nagtugot kanimo sa paghimo sa mga bootable nga ISO nga mga imahe ug USB, HDD, SSD ug uban pang mga drive pinaagi sa pag-instalar sa sistema sa ibabaw gikan sa mga imahe. inagaw nagsuporta sa paghimo sa BIOS ug UEFI boot system. Gisuportahan ang GRUB2 ug SYSLINUX bootloader. Ang mga bootloader mahimong ikombinar, pananglitan, gamita ang SYSLINUX sa pag-boot sa BIOS, ug GRUB2 para sa UEFI. Aron makahimo og ISO nga mga hulagway, kinahanglan nimo ang cdrkit (genisoimage) o xorriso (xorrisofs) nga pakete, aron mapilian.

Ang bugtong dugang nga aksyon nga gikinahanglan mao ang pag-andam sa kernel (vmlinuz) alang sa pag-boot daan. Girekomenda sa tagsulat (Spoofing) ang paggamit sa "make defconfig". Sa wala pa paghimo sa imahe, kinahanglan nimo nga mag-andam usa ka direktoryo pinaagi sa pagbutang sa vmlinuz kernel ug ang giandam kaniadto nga "walay sulod" initrd nga gihimo sa unang pananglitan.

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

Uban niini kompleto na ang pagpangandam, makahimo na kita og ISO nga mga hulagway gikan niini nga direktoryo.

Ang mosunud nga mando maghimo usa ka imahe sa ISO, dili usa ka bootable, usa ra ka ISO:

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

Aron makahimo usa ka imahe sa boot, kinahanglan nimo nga ipiho ang kapilian nga "--legacy-boot" alang sa BIOS ug "--efi" alang sa UEFI, matag usa; ang mga kapilian magkuha bisan grub2 o syslinux ingon mga parameter; mahimo usab nimo ipiho ang usa ka kapilian ( pananglitan, dili kinahanglan ang suporta sa boot sa UEFI, dili kini matino).

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

Ug sama kaniadto, ang mga imahe nga adunay sistema gilakip sa initrd, mahimo nimong ilakip kini sa ISO.

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

Human niini nga sugo, usa ka bootable BIOS/UEFI ISO image ang mamugna nga mokarga sa Gentoo ngadto sa SquashFS image gamit ang Overlay FS, gamit ang tmpfs para sa data storage. Ang kernel kinahanglan nga matukod nga adunay suporta sa Overlay FS nga adunay SquashFS. Bisan pa, kung sa usa ka hinungdan dili kini kinahanglan, mahimo nimong gamiton ang kapilian nga "—cpio" imbis nga —mga squashfs aron i-package ang gentoo/ ingon usa ka archive sa cpio, kung diin ang archive direkta nga i-unpack sa tmpfs sa pag-boot, ang panguna nga butang. mao nga alang sa pag-unpack sa sistema tmpfs adunay igo nga RAM.

Makapaikag nga kamatuoran: kung ang usa ka ISO nga imahe nga gihimo gamit ang "—efi" nga kapilian ma-unpack sa usa ka FAT32 flash drive pinaagi lamang sa pagkopya sa mga file (cp -r), nan ang Flash drive mag-boot sa UEFI mode nga wala’y preliminary nga pagpangandam, salamat sa mga detalye. sa UEFI- downloaders.

Gawas pa sa mga bootable nga ISO, ang bisan unsang bootable drive mahimo nga adunay parehas nga mga parameter: USB, HDD, SSD, ug uban pa, ug kini nga drive mahimong magpadayon nga magamit alang sa katuyoan niini. Aron mahimo kini, kinahanglan nimo nga i-mount, pananglitan, usa ka USB device ug ipadagan ang mkbootisofs niini. Pagdugang lang og usa ka opsyon nga "-bootable" aron ang drive diin nahimutang ang gipiho nga direktoryo mahimong bootable.

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

Human niana, ang USB device mahimong bootable sa gentoo/ overlay (ayaw kalimti ang pagkopya sa /boot/vmlinuz ug /boot/initrd files ngadto sa device).

Kung sa usa ka hinungdan ang drive wala ma-mount sa / mnt, ug kini nahimo nga / mnt nahimutang sa panguna nga aparato / dev / sda, nan ang bootloader isulat pag-usab sa / dev / sda. Kinahanglan nga mag-amping ka kung ipiho ang --bootable nga kapilian.

Atol sa proseso sa boot, ang Booty nagsuporta sa daghang mga kapilian nga mahimong ipasa sa boot loader, grub.cfg o syslinux.cfg. Sa kasagaran, nga walay bisan unsa nga kapilian, ang tanan nga mga overlay gikarga ug gi-unpack sa tmpfs (default nga kapilian ooty.use-shmfs). Aron magamit ang Overlay FS kinahanglan gamiton ang booty.use-overlayfs nga opsyon. Ang booty.copy-to-ram nga opsyon una nga nagkopya sa mga overlay ngadto sa tmpfs, human niini kini nagkonektar lamang kanila ug nagkarga niini. Sa higayon nga makopya, ang USB device (o ubang storage device) mahimong tangtangon.

Source: opennet.ru

Idugang sa usa ka comment