booty - amûrek ji bo afirandina wêne û ajokarên bootê

Bername pêşkêş kirin Booty, ku destûrê dide te ku hûn bi yek fermanê wêneyên initrd-ê yên bootable, pelên ISO an ajokarên ku di nav wan de dabeşkirina GNU/Linux-ê hene biafirînin. Kod di şêlê POSIX û tê nivîsandin belav kirin ji hêla lîsansa di bin GPLv3.

Hemî belavokên ku bi karanîna Booty-ê têne boot kirin SHMFS (tmpfs) an SquashFS + Overlay FS, bijartina bikarhêner e. Dabeşkirin carekê tête çêkirin, û di dema pêvajoya bootkirinê de, pîvan têne hilbijartin ku dihêle hûn tmpfên paqij ji bo root bikar bînin, an tevliheviyek Overlay FS + SquashFS bi tomarkirina guhertinên li tmpfs. Mimkun e ku hûn kîteya belavkirinê ya dakêşandî berê-kopî bikin nav RAM-ê, ku dihêle hûn ajokera USB-yê piştî dakêşandin û kopîkirina kîta belavkirinê di bîranînê de qut bikin.

Berî her tiştî, Booty wêneya xweya initrd diafirîne, ku dikare karûbarên xwemalî ji pergala heyî an busybox bikar bîne. Mimkûn e ku tevahiya kîta belavkirinê ya ku di pelrêça (chroot) de hatî saz kirin di nav initramfs de bihewîne (pak bike). Ev dikare bikêr be dema ku hûn hewce ne ku pergalek bi karanîna kexec nûve bikin: tenê initrd-ê bi kernelek nû û pergalek nû di hundurê initrd-ê de ji nû ve dakêşin.

Afirandina wêneyek initrd-taybetî ya Booty:

mkdir initramfs/
mkinitramfs initramfs/ --derketina initrd

Afirandina wêneyek initrd tevî belavkirina ji pelrêça "gentoo/":

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

Piştî ku ev wêneya initrd bi tevahî ji bo barkirinê amade ye, mînakî, bi rêya PXE an bi rêya kexec.

Dûv re, Booty wêneyan bi pergala ku wekî "serkêşan" hatî destnîşan kirin diafirîne. Mînakî, hûn dikarin Gentoo-ya şertkirî di pelrêçek cûda de saz bikin (arşîvê vekin), piştî ku bi vê pergalê re arşîvek cpio an wêneyek SquashFS bi karanîna Booty-ê were çêkirin. Her weha hûn dikarin belavkirinê di pelrêçek cûda de mîheng bikin, û mîhengên xweyên kesane li pelrêçek din kopî bikin. Hemî van "qatan" dê bi rêzdarî li ser hev werin barkirin û pergalek xebatê ya yekane çêbikin.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --settings overlay/ --dokumentên overlay/ --squashfs --output initrd

Di dawiyê de, Booty dihêle hûn bi sazkirina pergala jorîn ji wêneyan wêneyên ISO-ya bootable û USB, HDD, SSD û ajokarên din biafirînin. Booty afirandina pergalên boot BIOS û UEFI piştgirî dike. Bootloaders GRUB2 û SYSLINUX têne piştgirî kirin. Bootloaders dikarin bêne hev kirin, mînakî, SYSLINUX-ê bikar bînin ku di BIOS-ê de, û GRUB2-ê ji bo UEFI-ê bikar bînin. Ji bo afirandina wêneyên ISO-ê, hûn ê pêvek hewceyê pakêta cdrkit (genisoimage) an xorriso (xorrisofs) bikin, ku hûn ji wan hilbijêrin.

Tekane çalakiya pêvek a ku hewce dike ev e ku meriv kernel (vmlinuz) ji bo bootê di pêş de amade bike. Nivîskar (Spoofing) karanîna "make defconfig" pêşniyar dike. Berî ku hûn wêneyê biafirînin, hûn hewce ne ku pelrêçekê amade bikin bi danîna kernelê vmlinuz û initrd-a ku berê hatî amade kirin "vala" ku di mînaka yekem de hatî afirandin.

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

Bi vê yekê amadekarî qediya, em niha dikarin ji vê pelrêçê wêneyên ISO-yê biafirînin.

Fermana jêrîn dê wêneyek ISO, ne bootable, tenê ISO-ê biafirîne:

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

Ji bo afirandina wêneyek boot, hûn hewce ne ku vebijarka "--legacy-boot" ji bo BIOS-ê û "--efi" ji bo UEFI, bi rêzê ve diyar bikin; vebijark an grub2 an syslinux wekî parametre digirin; hûn dikarin tenê vebijarkek jî diyar bikin ( Mînakî, piştgiriya bootê ya UEFI ne hewce ye, dibe ku ew neyê diyar kirin).

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

Û mîna berê, wêneyên bi pergalê re di initrd-ê de bûn, hûn dikarin wan di ISO-yê de bicîh bikin.

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

Piştî vê fermanê, dê wêneyek BIOS/UEFI ISO ya bootable were çêkirin ku Gentoo di wêneya SquashFS de bi karanîna Overlay FS-ê bar dike, tmpfs ji bo hilanîna daneyê bikar tîne. Pêdivî ye ku kernel bi piştgiriya Overlay FS bi SquashFS re were çêkirin. Lêbelê, heke ji ber hin sedeman ev ne hewce be, hûn dikarin vebijarka "-cpio" li şûna -squashfs ji bo pakêtkirina gentoo/ wekî arşîvek cpio bikar bînin, di vê rewşê de dê arşîv rasterast piştî bootkirinê di tmpfs de bê pakkirin, ya sereke. e ku ji bo venekirina sîstemê tmpfs têra xwe RAM bû.

Rastiya balkêş: heke wêneyek ISO-ya ku bi karanîna vebijarka "-efi" hatî çêkirin bi tenê kopîkirina pelan (cp -r) li ser ajokerek flash FAT32 were veqetandin, wê hingê ajokera Flash dê di moda UEFI de bêyî amadekariyek pêşîn, spas ji bo taybetmendiyan were destpêkirin. yên dakêşkerên UEFI-yê.

Ji bilî ISO-yên bootable, her ajokerek bootable dikare bi heman pîvanan were afirandin: USB, HDD, SSD, û hwd, û ev ajoker dikare ji bo armanca xwe bikar bîne berdewam bike. Ji bo kirina vê yekê, hûn hewce ne ku, mînakî, amûrek USB-ê siwar bikin û li ser wê mkbootisofs bimeşînin. Tenê vebijarkek "-bootable" lê zêde bikin da ku ajokera ku pelrêça diyarkirî tê de ye bootable bibe.

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

Piştî wê, cîhaza USB-ê dê bi gentoo/ serpêhatiya bootable bibe (ji bîr nekin ku pelên /boot/vmlinuz û /boot/initrd li ser cîhazê kopî bikin).

Ger ji ber hin sedeman ajoker li /mnt-ê nehatibe danîn, û derkeve holê ku /mnt li ser cîhaza sereke /dev/sda ye, wê hingê bootloader dê li /dev/sda ji nû ve were nivîsandin. Dema ku hûn vebijarka --bootable diyar dikin divê hûn baldar bin.

Di dema pêvajoya bootkirinê de, Booty çend vebijarkan piştgirî dike ku dikarin ji boot loader, grub.cfg an syslinux.cfg werin derbas kirin. Ji hêla xwerû, bêyî vebijarkek, hemî pêvedan di tmpfs de têne barkirin û pakkirin (vebijarka xwerû ooty.use-shmfs). Ji bo bikaranîna Overlay FS divê vebijarka booty.use-overlayfs were bikar anîn. Vebijarka booty.copy-to-ram pêşî li ser tmpfs-an kopiyan dike, piştî ku ew tenê wan girêdide û wan bar dike. Piştî kopî kirin, cîhaza USB (an cîhaza hilanînê ya din) dikare were rakirin.

Source: opennet.ru

Add a comment