booty - cyfleustodau ar gyfer creu delweddau cist a gyriannau

Rhaglen wedi'i chyflwyno Booty, sy'n eich galluogi i greu delweddau initrd cychwynadwy, ffeiliau ISO neu yriannau sy'n cynnwys unrhyw ddosbarthiad GNU/Linux gydag un gorchymyn. Mae'r cod wedi'i ysgrifennu mewn plisgyn POSIX a dosbarthu gan trwyddedig o dan GPLv3.

Mae pob dosbarthiad wedi'i gychwyn gan ddefnyddio Booty yn rhedeg naill ai SHMFS (tmpfs) neu SquashFS + Overlay FS, dewis y defnyddiwr. Crëir y dosbarthiad unwaith, ac yn ystod y broses gychwyn, dewisir paramedrau sy'n eich galluogi i ddefnyddio tmpfs pur ar gyfer y gwraidd, neu gyfuniad o Overlay FS + SquashFS gyda chofnodi newidiadau i tmpfs. Mae'n bosibl rhag-gopïo'r pecyn dosbarthu y gellir ei lawrlwytho i RAM, sy'n eich galluogi i ddatgysylltu'r gyriant USB ar ôl lawrlwytho a chopïo'r pecyn dosbarthu i'r cof.

Yn gyntaf oll, mae Booty yn cynhyrchu ei ddelwedd initrd ei hun, a all ddefnyddio cyfleustodau brodorol o'r system gyfredol neu'r busybox. Mae'n bosibl cynnwys (pecyn) y pecyn dosbarthu cyfan sydd wedi'i osod yn y cyfeiriadur (chroot) mewn initramfs. Gall hyn fod yn ddefnyddiol pan fydd angen i chi uwchraddio system gan ddefnyddio kexec: yn syml, ail-lwythwch yr initrd gyda chnewyllyn newydd a system newydd y tu mewn i'r initrd.

Creu delwedd initrd benodol i Booty:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Creu delwedd initrd gan gynnwys y dosbarthiad o'r cyfeiriadur “gentoo/”:

mkdir initramfs/
mkinitramfs initramfs/ -- gentoo troshaen/ --cpio -- allbwn initrd

Ar ôl hynny mae'r ddelwedd initrd hon yn gwbl barod i'w llwytho, er enghraifft, trwy PXE neu drwy kexec.

Nesaf, mae Booty yn cynhyrchu delweddau gyda'r system a nodir fel “troshaenau”. Er enghraifft, gallwch osod (dadbacio'r archif) Gentoo amodol mewn cyfeiriadur ar wahân, ac ar ôl hynny bydd archif cpio neu ddelwedd SquashFS gyda'r system hon yn cael ei gynhyrchu gan ddefnyddio Booty. Gallwch hefyd ffurfweddu'r dosbarthiad mewn cyfeiriadur ar wahân, a chopïo'ch gosodiadau personol i gyfeiriadur arall. Bydd yr holl “haenau” hyn yn cael eu llwytho'n ddilyniannol ar ben ei gilydd ac yn creu un system weithio.

mkdir initramfs/
mkinitramfs initramfs/ -- gentoo troshaen/ -- gosodiadau troshaen/ -- dogfennau troshaen/ --squashfs -- allbwn initrd

Yn y pen draw, mae Booty yn caniatáu ichi greu delweddau ISO bootable a USB, HDD, SSD a gyriannau eraill trwy osod y system uchod o ddelweddau. Booty yn cefnogi creu systemau cychwyn BIOS a UEFI. Cefnogir cychwynwyr GRUB2 a SYSLINUX. Gellir cyfuno llwythwyr cychwyn, er enghraifft, defnyddiwch SYSLINUX i gychwyn yn y BIOS, a GRUB2 ar gyfer UEFI. I greu delweddau ISO, bydd angen y pecyn cdrkit (genisoimage) neu xorriso (xorrisofs) arnoch hefyd, i ddewis ohonynt.

Yr unig gamau ychwanegol sydd eu hangen yw paratoi'r cnewyllyn (vmlinuz) ar gyfer cychwyn ymlaen llaw. Mae'r awdur (Spoofing) yn argymell defnyddio "gwneud defconfig". Cyn creu'r ddelwedd, mae angen i chi baratoi cyfeiriadur trwy osod y cnewyllyn vmlinuz a'r initrd “gwag” a baratowyd yn flaenorol a grëwyd yn yr enghraifft gyntaf.

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

Gyda hyn mae'r paratoad wedi'i gwblhau, gallwn nawr greu delweddau ISO o'r cyfeiriadur hwn.

Bydd y gorchymyn canlynol yn creu delwedd ISO, nid un y gellir ei gychwyn, dim ond ISO:

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

I greu delwedd cychwyn, mae angen i chi nodi'r opsiwn "--legacy-boot" ar gyfer BIOS a "--efi" ar gyfer UEFI, yn y drefn honno; mae'r opsiynau'n cymryd naill ai grub2 neu syslinux fel paramedrau; gallwch hefyd nodi un opsiwn yn unig ( er enghraifft, nid oes angen cefnogaeth cychwyn UEFI , efallai na chaiff ei nodi).

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

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

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

Ac yn union fel o'r blaen, roedd delweddau gyda'r system wedi'u cynnwys yn yr initrd, gallwch eu cynnwys yn yr ISO.

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

Ar ôl y gorchymyn hwn, cynhyrchir delwedd bootable BIOS / UEFI ISO sy'n llwytho Gentoo i mewn i'r ddelwedd SquashFS gan ddefnyddio Overlay FS, gan ddefnyddio tmpfs ar gyfer storio data. Rhaid adeiladu'r cnewyllyn gyda chefnogaeth Overlay FS gyda SquashFS. Fodd bynnag, os nad oes angen hyn am ryw reswm, gallwch ddefnyddio'r opsiwn “—cpio” yn lle —squashfs i becynnu gentoo / fel archif cpio, ac os felly bydd yr archif yn cael ei ddadbacio'n uniongyrchol i mewn i tmpfs wrth gychwyn, y prif beth yw bod gan tmpfs ddigon o RAM ar gyfer dadbacio'r system.

Ffaith ddiddorol: os yw delwedd ISO a grëwyd gan ddefnyddio'r opsiwn “—efi” yn cael ei ddadbacio ar yriant fflach FAT32 trwy gopïo ffeiliau (cp -r), yna bydd y gyriant Flash yn cychwyn yn y modd UEFI heb unrhyw baratoad rhagarweiniol, diolch i'r manylion o UEFI- lawrlwythwyr.

Yn ogystal ag ISOs bootable, gellir creu unrhyw yriant bootable gyda'r un paramedrau: USB, HDD, SSD, ac yn y blaen, a gellir parhau i ddefnyddio'r gyriant hwn at y diben a fwriadwyd. I wneud hyn, mae angen i chi osod, er enghraifft, dyfais USB a rhedeg mkbootisofs arno. Ychwanegwch un opsiwn “-bootable” fel bod y gyriant y mae'r cyfeiriadur penodedig wedi'i leoli arno yn dod yn bootable.

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

Ar ôl hynny, bydd modd cychwyn y ddyfais USB gyda'r gentoo/ troshaen (peidiwch ag anghofio copïo'r ffeiliau /boot/vmlinuz a /boot/initrd i'r ddyfais).

Os nad oedd y gyriant wedi'i osod yn /mnt am ryw reswm, a'i bod yn ymddangos bod /mnt wedi'i leoli ar y brif ddyfais /dev/sda, yna bydd y cychwynnwr yn cael ei ailysgrifennu i /dev/sda. Dylech fod yn ofalus wrth nodi'r opsiwn --bootable.

Yn ystod y broses gychwyn, mae Booty yn cefnogi nifer o opsiynau y gellir eu trosglwyddo i'r cychwynnydd, grub.cfg neu syslinux.cfg. Yn ddiofyn, heb unrhyw opsiynau, mae'r holl droshaenau'n cael eu llwytho a'u dadbacio i mewn i tmpfs (opsiwn diofyn ooty.use-shmfs). I ddefnyddio Overlay FS rhaid defnyddio'r opsiwn booty.use-overlayfs. Mae'r opsiwn booty.copy-i-ram yn copïo troshaenau i tmpfs yn gyntaf, ac ar ôl hynny dim ond eu cysylltu a'u llwytho y mae'n eu llwytho. Ar ôl ei gopïo, gellir tynnu'r ddyfais USB (neu ddyfais storio arall).

Ffynhonnell: opennet.ru

Ychwanegu sylw