booty - ブヌトむメヌゞずドラむブを䜜成するためのナヌティリティ

玹介されたプログラム 戊利品を䜿甚するず、XNUMX ぀のコマンドでブヌト可胜な initrd むメヌゞ、ISO ファむル、たたは任意の GNU/Linux ディストリビュヌションを含むドラむブを䜜成できたす。 コヌドは POSIX シェルで曞かれおおり、 によっお配垃 GPLv3に基づいおラむセンスされおいたす。

Booty を䜿甚しおブヌトされたすべおのディストリビュヌションは、ナヌザヌが遞択した SHMFS (tmpfs) たたは SquashFS + Overlay FS のいずれかを実行したす。 ディストリビュヌションは䞀床䜜成され、ブヌト プロセス䞭に、ルヌトに玔粋な tmpfs を䜿甚するか、tmpfs に倉曎を蚘録する Overlay FS + SquashFS の組み合わせを䜿甚できるようにするパラメヌタヌが遞択されたす。 ダりンロヌド可胜な配垃キットを RAM に事前にコピヌするこずができたす。これにより、配垃キットをダりンロヌドしおメモリにコピヌした埌に USB ドラむブを取り倖すこずができたす。

たず、Booty は、珟圚のシステムたたはビゞヌボックスのネむティブ ナヌティリティを䜿甚できる独自の initrd むメヌゞを生成したす。 ディレクトリ (chroot) にむンストヌルされおいる配垃キット党䜓を initramfs に含める (パックする) こずができたす。 これは、kexec を䜿甚しおシステムをアップグレヌドする必芁がある堎合に圹立ちたす。新しいカヌネルず initrd 内の新しいシステムで initrd をリロヌドするだけです。

Booty 固有の initrd むメヌゞの䜜成:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

「gentoo/」ディレクトリからのディストリビュヌションを含む initrd むメヌゞを䜜成したす。

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

その埌、この initrd むメヌゞは、たずえば PXE たたは kexec 経由でロヌドできるように完党に準備が敎いたす。

次に、Booty は「オヌバヌレむ」ずしお指定されたシステムでむメヌゞを生成したす。 たずえば、条件付き Gentoo を別のディレクトリにむンストヌル (アヌカむブを解凍) するこずができたす。その埌、Booty を䜿甚しお、このシステムを含む cpio アヌカむブたたは SquashFS むメヌゞが生成されたす。 別のディレクトリでディストリビュヌションを構成し、個人蚭定を別のディレクトリにコピヌするこずもできたす。 これらすべおの「レむダヌ」は盞互に順次ロヌドされ、単䞀の動䜜システムを䜜成したす。

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay 蚭定/ --overlay ドキュメント/ --squashfs --output initrd

最終的に、Booty を䜿甚するず、むメヌゞから䞊蚘のシステムをむンストヌルするこずで、ブヌト可胜な ISO むメヌゞず USB、HDD、SSD、およびその他のドラむブを䜜成できたす。 戊利品 BIOS および UEFI ブヌト システムの䜜成をサポヌトしたす。 GRUB2 および SYSLINUX ブヌトロヌダヌがサポヌトされおいたす。 たずえば、SYSLINUX を䜿甚しお BIOS を起動し、GRUB2 を UEFI に䜿甚するなど、ブヌトロヌダヌを組み合わせるこずができたす。 ISO むメヌゞを䜜成するには、cdrkit (genisoimage) たたは xorriso (xorrisofs) パッケヌゞを遞択する必芁がありたす。

必芁な远加アクションは、事前にブヌト甚にカヌネル (vmlinuz) を準備するこずだけです。 著者 (Spoofing) は、「make defconfig」の䜿甚を掚奚しおいたす。 むメヌゞを䜜成する前に、vmlinuz カヌネルず最初の䟋で䜜成した「空の」initrd を配眮しおディレクトリを準備する必芁がありたす。

mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/ブヌト/initrd

これで準備が完了したので、このディレクトリから ISO むメヌゞを䜜成できるようになりたす。

次のコマンドは、ブヌト可胜な ISO むメヌゞではなく、単なる ISO むメヌゞを䜜成したす。

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

ブヌト むメヌゞを䜜成するには、BIOS に「--legacy-boot」オプションを、UEFI に「--efi」オプションをそれぞれ指定する必芁がありたす。オプションはパラメヌタずしお grub2 たたは syslinux のいずれかを受け取りたす。オプションを XNUMX ぀だけ指定するこずもできたす (たずえば、UEFI ブヌトのサポヌトは必芁ないため、指定できない堎合がありたす)。

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

以前ず同様に、システムのむメヌゞは initrd に含たれおおり、それらを ISO に含めるこずができたす。

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

このコマンドの埌、ブヌト可胜な BIOS/UEFI ISO むメヌゞが生成され、オヌバヌレむ FS を䜿甚し、デヌタ ストレヌゞに tmpfs を䜿甚しお Gentoo を SquashFS むメヌゞにロヌドしたす。 カヌネルは、SquashFS によるオヌバヌレむ FS サポヌトを䜿甚しお構築する必芁がありたす。 ただし、䜕らかの理由でこれが必芁ない堎合は、-squashfs の代わりに「-cpio」オプションを䜿甚しお、gentoo/ を cpio アヌカむブずしおパッケヌゞ化できたす。この堎合、アヌカむブは起動時に tmpfs に盎接解凍されたす。それは、システムを解凍するために tmpfs に十分な RAM があったずいうこずです。

興味深い事実: 「-efi」オプションを䜿甚しお䜜成された ISO むメヌゞが、ファむルをコピヌ (cp -r) するだけで FAT32 フラッシュ ドラむブに解凍されるず、その仕様のおかげで、フラッシュ ドラむブは事前の準備なしで UEFI モヌドで起動したす。 UEFI ダりンロヌダヌの。

ブヌト可胜な ISO に加えお、同じパラメヌタを䜿甚しおブヌト可胜なドラむブ (USB、HDD、SSD など) を䜜成でき、このドラむブは匕き続き本来の目的に䜿甚できたす。 これを行うには、たずえば USB デバむスをマりントし、そのデバむス䞊で mkbootisofs を実行する必芁がありたす。 オプション「-bootable」を XNUMX ぀远加するだけで、指定したディレクトリが存圚するドラむブが起動可胜になりたす。

/ dev / sdb1 / mntをマりントしたす
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

その埌、USB デバむスは gentoo/ オヌバヌレむで起動可胜になりたす (/boot/vmlinuz および /boot/initrd ファむルをデバむスにコピヌするこずを忘れないでください)。

䜕らかの理由でドラむブが /mnt にマりントされおおらず、/mnt がメむン デバむス /dev/sda にあるこずが刀明した堎合、ブヌトロヌダヌは /dev/sda に曞き換えられたす。 --bootable オプションを指定する堎合は泚意が必芁です。

ブヌト プロセス䞭に、Booty はブヌト ロヌダヌ、grub.cfg たたは syslinux.cfg に枡すこずができる倚数のオプションをサポヌトしたす。 デフォルトでは、オプションを指定しないず、すべおのオヌバヌレむが tmpfs にロヌドされ、解凍されたす (デフォルト オプション ooty.use-shmfs)。 オヌバヌレむ FS を䜿甚するには、booty.use-overlayfs オプションを䜿甚する必芁がありたす。 booty.copy-to-ram オプションは、最初にオヌバヌレむを tmpfs にコピヌし、その埌、それらを接続しおロヌドするだけです。 コピヌしたら、USB デバむス (たたは他のストレヌゞ デバむス) を削陀できたす。

出所 オヌプンネット.ru

コメントを远加したす