booty - goireas airson ìomhaighean bròg agus draibhearan a chruthachadh

Prògram air a thaisbeanadh Booty, a leigeas leat ìomhaighean initrd bootable, faidhlichean ISO no draibhearan a chruthachadh anns a bheil cuairteachadh GNU / Linux sam bith le aon àithne. Tha an còd sgrìobhte ann an slige POSIX agus air a sgaoileadh le le cead fo GPLv3.

Bidh a h-uile cuairteachadh a chaidh a bhrùthadh le bhith a’ cleachdadh Booty a’ ruith an dàrna cuid SHMFS (tmpfs) no SquashFS + Overlay FS, roghainn an neach-cleachdaidh. Tha an cuairteachadh air a chruthachadh aon uair, agus tron ​​​​phròiseas tòiseachaidh, tha paramadairean air an taghadh a leigeas leat tmpfs fìor-ghlan a chleachdadh airson freumh, no measgachadh de Overlay FS + SquashFS le clàradh atharrachaidhean air tmpfs. Tha e comasach lethbhreac a dhèanamh den phasgan cuairteachaidh a ghabhas luchdachadh a-nuas gu RAM, a leigeas leat an draibhear USB a dhì-cheangal às deidh dhut an inneal cuairteachaidh a luchdachadh sìos agus a chopaigeadh gu cuimhne.

An toiseach, bidh Booty a’ gineadh an ìomhaigh initrd aige fhèin, a dh’ fhaodas goireasan dùthchasach a chleachdadh bhon t-siostam gnàthach no bhon bhogsa trang. Tha e comasach am pasgan cuairteachaidh gu lèir a chuir a-steach san eòlaire (chroot) a thoirt a-steach do initramfs. Faodaidh seo a bhith feumail nuair a dh’ fheumas tu siostam ùrachadh a’ cleachdadh kexec: dìreach ath-luchdaich an initrd le kernel ùr agus siostam ùr am broinn an initrd.

A’ cruthachadh ìomhaigh initrd sònraichte Booty:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

A’ cruthachadh ìomhaigh initrd a’ toirt a-steach an sgaoileadh bhon eòlaire “gentoo/”:

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

Às deidh sin tha an ìomhaigh initrd seo gu tur deiseil airson a luchdachadh, mar eisimpleir, tro PXE no tro kexec.

An uairsin, bidh Booty a’ gineadh ìomhaighean leis an t-siostam air a shònrachadh mar “overlays”. Mar eisimpleir, faodaidh tu Gentoo cumhach a chuir a-steach (dì-phapadh an tasglann) ann an eòlaire air leth, às deidh sin thèid tasglann cpio no ìomhaigh SquashFS leis an t-siostam seo a chruthachadh le bhith a’ cleachdadh Booty. Faodaidh tu cuideachd an cuairteachadh a rèiteachadh ann an eòlaire air leth, agus na roghainnean pearsanta agad a chopaigeadh gu eòlaire eile. Thèid na “sreathan” sin uile a luchdachadh ann an sreath air mullach a chèile agus cruthaichidh iad aon shiostam obrach.

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

Aig a 'cheann thall, leigidh Booty leat ìomhaighean ISO bootable agus USB, HDD, SSD agus dràibhearan eile a chruthachadh le bhith a' stàladh an t-siostam gu h-àrd bho ìomhaighean. Booty a’ toirt taic do chruthachadh siostaman bròg BIOS agus UEFI. Thathas a’ toirt taic do luchdan boot GRUB2 agus SYSLINUX. Faodar bootloaders a chur còmhla, mar eisimpleir, cleachd SYSLINUX gus a dhol a-steach don BIOS, agus GRUB2 airson UEFI. Gus ìomhaighean ISO a chruthachadh, feumaidh tu cuideachd am pasgan cdrkit (genisoimage) no xorriso (xorrisofs), airson taghadh.

Is e an aon ghnìomh a bharrachd a tha a dhìth a bhith ag ullachadh an kernel (vmlinuz) airson bròg ro-làimh. Tha an t-ùghdar (Spoofing) a 'moladh a bhith a' cleachdadh "dèan defconfig". Mus cruthaich thu an ìomhaigh, feumaidh tu eòlaire ullachadh le bhith a’ cur an kernel vmlinuz agus an initrd “falamh” a chaidh ullachadh roimhe seo a chaidh a chruthachadh sa chiad eisimpleir.

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

Le seo tha an ullachadh deiseil, is urrainn dhuinn a-nis ìomhaighean ISO a chruthachadh bhon eòlaire seo.

Cruthaichidh an àithne a leanas ìomhaigh ISO, chan e fear bootable, dìreach ISO:

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

Gus ìomhaigh bròg a chruthachadh, feumaidh tu an roghainn “-legacy-boot” a shònrachadh airson BIOS agus “--efi” airson UEFI, fa leth; bidh na roghainnean a’ gabhail an dàrna cuid grub2 no syslinux mar pharamadairean; chan urrainn dhut ach aon roghainn a shònrachadh ( mar eisimpleir, chan eil feum air taic bròg UEFI , is dòcha nach bi e air a shònrachadh).

mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --toradh boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso

Agus dìreach mar a bha e roimhe, chaidh ìomhaighean leis an t-siostam a thoirt a-steach don initrd, faodaidh tu an toirt a-steach don ISO.

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

Às deidh an àithne seo, thèid ìomhaigh bootable BIOS / UEFI ISO a chruthachadh a bhios a ’luchdachadh Gentoo a-steach don ìomhaigh SquashFS a’ cleachdadh Overlay FS, a ’cleachdadh tmpfs airson stòradh dàta. Feumaidh an kernel a bhith air a thogail le taic Overlay FS le SquashFS. Ach, mura h-eil seo riatanach airson adhbhar air choireigin, faodaidh tu an roghainn “-cpio” a chleachdadh an àite -squashfs gus gentoo / a phacadh mar thasglann cpio, agus sa chùis sin thèid an tasglann a dhì-phapadh gu dìreach ann an tmpfs nuair a thòisicheas tu, am prìomh rud is e sin airson an siostam a dhì-phapadh bha RAM gu leòr aig tmpfs.

Fìrinn inntinneach: ma thèid ìomhaigh ISO a chaidh a chruthachadh a’ cleachdadh an roghainn “—efi” a dhì-phapadh air draibhear flash FAT32 le bhith dìreach a’ dèanamh lethbhreac de fhaidhlichean (cp -r), an uairsin tòisichidh an draibhear Flash ann am modh UEFI gun ullachadh ro-làimh sam bith, le taing dha na mion-fhiosrachadh de luchd-luchdachadh sìos UEFI.

A bharrachd air ISOan bootable, faodar draibhear bootable sam bith a chruthachadh leis na h-aon pharaimearan: USB, HDD, SSD, agus mar sin air adhart, agus faodar an draibhear seo a chleachdadh airson an adhbhar a tha san amharc. Gus seo a dhèanamh, feumaidh tu, mar eisimpleir, inneal USB a chuir suas agus mkbootisofs a ruith air. Dìreach cuir a-steach aon roghainn “-bootable” gus am bi an draibhear air a bheil an eòlaire ainmichte suidhichte bootable.

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

Às deidh sin, thèid an inneal USB a thòiseachadh leis an gentoo / overlay (na dìochuimhnich lethbhreac a dhèanamh de na faidhlichean / boot / vmlinuz agus / boot / initrd chun inneal).

Mura deach an draibhear a chuir a-steach ann an / mnt airson adhbhar air choireigin, agus gu bheil e a-mach gu bheil / mnt suidhichte air a’ phrìomh inneal / dev/sda, thèid an bootloader ath-sgrìobhadh gu / dev/sda. Bu chòir dhut a bhith faiceallach nuair a tha thu a’ sònrachadh an roghainn --bootable.

Rè a 'phròiseas bròg, tha Booty a' toirt taic do ghrunn roghainnean a dh'fhaodar a thoirt don boot loader, grub.cfg no syslinux.cfg. Gu gnàthach, às aonais roghainnean sam bith, bidh a h-uile ath-chòmhdach air a luchdachadh agus air a phacadh a-steach do tmpfs (roghainn bunaiteach ooty.use-shmfs). Gus Overlay FS a chleachdadh feumar an roghainn booty.use-overlayfs a chleachdadh. Bidh an roghainn booty.copy-to-ram an-toiseach a’ dèanamh lethbhreac de ath-chòmhdach gu tmpfs, às deidh sin cha bhith e gan ceangal ach agus gan luchdachadh. Aon uair ‘s gu bheil e air a chopaigeadh, faodar an inneal USB (no inneal stòraidh eile) a thoirt air falbh.

Source: fosgailtenet.ru

Cuir beachd ann