multiboot USBフラッシュドライブは、単一のデバイスから複数のISOファイ ISOファイルは、デバイスにコピーし、それらを最初に解凍せずに直接起動することができます。 利用可能な方法は複数ありますが、すべてのISOイメージでは機能しない場合があります。
GRUBとループバックデバイスの使用
この記事やセクションには、言語、wikiの構文、またはスタイルの改善が必要です。 参考のためにヘルプ:スタイルを参照してください。
利点:
- 単一のパーティションのみが必要
- すべてのISOファイル:
- すべてのISOイメージが互換性があるわけではありません
- ISOファイルの元のブートメニューが表示されていません
- 動作するブートエントリを見つ
理由:ブートローダにはどのくらいの余分なスペースが必要ですか? (Discuss in Talk:Multiboot USB drive#)
USBドライブ上に少なくとも一つのパーティションとGRUBでサポートされているファイルシステムを作成します。 パーティション分割とファイルシステム#ファイルシステムの作成を参照してください。 ドライブに保存するISOファイルの合計サイズに基づいてサイズを選択し、ブートローダ用の余分なスペースを計画します。
GRUBのインストール
簡単なインストール
USBドライブにあるファイルシステムをマウントします。
# mount /dev/sdXY /mnt
ディUEFIモードでisoを起動する場合は、UEFIターゲットにGRUBをインストールする必要があります:UEFIの場合、パーティションはMBRパーティションテーブルの最初のパーティションであり、FAT32でフォーマットされている必要があります。
# grub-install --target=x86_64-efi --removable --boot-directory=/mnt/boot --efi-directory=/mnt
UEFIの場合、パーティションテーブルの最初のパーティションである必要があります。Hybrid UEFI GPT+BIOS GPT/MBR boot
この設定は、どこでも起動可能なユニバーサルUSBキーを作成するのに便利です。まず、デバイスにGPTパーティションテーブルを作成する必要があります。 少なくとも3つのパーティションが必要です:
- BIOSブートパーティション(gdiskタイプコード
EF02
)。 このパーティションのサイズは1MiBでなければなりません - EFIシステムパーティション(FAT32ファイルシステムを持つgdiskタイプコード
EF00
)。 このパーティションは、50MiBと小さくすることができます。 - データパーティション(GRUBでサポートされているファイルシステムを使用)。 このパーティションは、ドライブの残りのスペースを占有することができます。
理由:何かが十分ではないかもしれないので、作成する必要がありますか? (Discuss in Talk:Multiboot USB drive#)次に、保護MBRパーティションにブートフラグを設定するだけでは不十分なため、ハイブリッドMBRパーティションテーブルを作成する必要があります。パーティションのフォーマットを忘れないでください。
# mkfs.fat -F32 /dev/sdX2# mkfs.ext4 /dev/sdX3
EFI+GPTとBIOS+GPT/MBRの両方をサポートするGRUBをインストールできるようになりました。 GRUBの設定(–boot-directory)は同じ場所に保存できます。
まず、EFIシステムパーティションとUSBドライブのデータパーティションをマウントする必要があります。 この例は次のようになります。
# mount /dev/sdX3 /mnt# mkdir -p /mnt/boot/EFI# mount /dev/sdX2 /mnt/boot/EFI
次に、次のようにUEFI用のGRUBをインストールできます:
ほとんどの場合、
EFI_MOUNTPOINT
は、マウントされたUSBディスク上の/mnt/boot/EFI
サブディレクトリに対応します。# grub-install --target=x86_64-efi --recheck --removable --efi-directory=/EFI_MOUNTPOINT --boot-directory=/DATA_MOUNTPOINT/boot
そして、次のBIOSの場合:
# grub-install --target=i386-pc --recheck --boot-directory=/DATA_MOUNTPOINT/boot /dev/sdX
追加のフォールバックとして、MBR-ブータブルデータパーティションにGRUBをイ:
# grub-install --target=i386-pc --recheck --boot-directory=/DATA_MOUNTPOINT/boot /dev/sdX3
GRUBの設定
テンプレートを使用して
いくつかの既存のGRUB設定ファイルを提供するgitプロジェクトと、必要に応じて他のブートエントリをロードするために使用できる素敵な汎用
grub.cfg
があり、指定されたISOファイルまたはそれらを含むフォルダがドライブ上に存在する場合にのみ表示されます。マルチブートUSB:https://github.com/aguslr/multibootusb
GLIM(GRUB2ライブISOマルチブート)
マルチブートUSB:https://github.com/aguslr/multibootusb
グライム(GRUB2ライブ: https://github.com/thias/glim
手動設定
マルチブートUSBドライブの目的のために、それを生成するのではなく、手動で
grub.cfg
を編集する方が簡単です。 または、grub-mkconfigを使用して/etc/grub.d/40_custom
/mnt/boot/grub/custom.cfg
/mnt/boot/grub/grub.cfg
を生成します。/dev/sdxY
の代わりに永続的な名前を使用することをお勧めしますので、イメージファイルがあるUSBドライブ上のパーティションを識別するには、値を保持するために変数を定義します。 ISOイメージがGRUBと同じパーティション上にある場合は、ブート時にUUIDを読み取るために次を使用します。/mnt/boot/grub/grub。probe-u$root--set=rootuuidset imgdevpath="/dev/disk/by-uuid/by rootuuid"
またはUUIDを明示的に指定します。
/mnt/boot/grub/grub。#ISOイメージを保持しているパーティションへのパス(UUIDを使用)set imgdevpath="/dev/disk/by-uuid/Uuid_Value"
または、UUIDの代わりにデバイスラベルを使用します。
/mnt/boot/grub/grub。set imgdevpath="/dev/disk/by-label/label_value"
必要なUUIDまたはラベルは、
lsblk -f
を使用して見つけることができます。 UsbデバイスにArch ISOと同じラベルを使用しないでください。設定を完了するには、各ISOイメージのブートエントリをこのヘッダーの下に追加する必要があります。
ブートエントリ
ISOイメージは、GRUBがインストールされているのと同じファイルシステム上の
boot/iso/
loopback
loopback loop (hd1,2)$isofile
のように、ISOファイルへのパスの前にデバイス識別を付ける必要があ このデバイスの識別は永続的ではないため、このセクションの例では使用されません。永続的なブロックデバイス名を次のように使用できます。 ISOファイルシステムのUUIDに従ってUUIDを置き換えます。
ヒント:カーネルパラメータのリストについては、カーネルのコマンドラインパラメータドキュメントを参照してください。 ブートエントリの例については、GRUB上流のドキュメントまたはブートしたいディストリビューションのドキュメントを参照してくださArch Linux monthly release
archisoも参照してください。
READMEを参照してください。カーネルコマンドラインでサポートされているarchisoオプションのbootparams。Memtest86+は毎月のISOに含まれています。
Memtest86+は毎月のISOに含まれています。
archboot
archbootも参照してください。
Syslinuxとmemdiskの使用
memdiskモジュールを使用すると、ISOイメージがメモリにロードされ、ブートローダがロードされます。 このUSBドライブを起動するシステムに、イメージファイルと実行中のオペレーティングシステム用の十分な量のメモリがあることを確認してくださUSBドライブが適切にパーティション分割されていること、およびSyslinuxでサポートされているファイルシステム(fat32やext4など)があることを確認します。 次に、Syslinuxをこのパーティションにインストールします。Syslinux#Biosでのインストールを参照してください。
memdiskモジュールのインストール
Syslinuxのインストール中にmemdiskモジュールがインストールされていなかったため、手動でインストールする必要があります。 Syslinuxがインストールされているパーティションを
/mnt/
にマウントし、Syslinuxがインストールされているのと同じディレクトリにmemdiskモジュールをコピーします。# cp /usr/lib/syslinux/bios/memdisk /mnt/boot/syslinux/
Configuration
USBドライブ上のISOファイルをコピーした後、Syslinux設定ファイルを編集し、ISOイメージのメニューエントリを作成します。 基本的なエントリは次のようになります。
boot/syslinux/syslinux。cfg
ラベルsome_label LINUX memdisk INITRD/path/to/image。iso APPEND iso
より多くの設定オプションについては、Syslinux wikiのmemdiskを参照してください。
32ビットシステムの注意点
128mibを超えるイメージから32ビットシステムを起動する場合、vmallocの最大メモリ使用量を増やす必要があります。 これは、カーネルパラメータに
vmalloc=valueM
value
は、MiBのISOイメージのサイズよりも大きいです。たとえば、ArchインストールISOから32ビットシステムを起動する場合は、Tab
Boot Arch Linux (i686)
エントリの上に押 この手順をスキップすると、ブート中に次のエラーが発生します。modprobe: ERROR: could not insert 'phram': Input/output error
自動化ツール
- GRUB2Live ISO Multiboot(GLIM)—GNU/LinuxディストリビューションISOイメージを持つVFAT形式のUSBメモリスティックをマルチブートUSBドライブに変換するためのGRUB設定ファイルのセット。
https://github.com/thias/glim|/パッケージ化されていませんか? AURで検索
- liveusb-builder—GNU/Linuxディストリビューション用のマルチブートUSBスティックを作成するためのスクリプトスイート
https://github.com/mytbk/liveusb-builder||liveusb-builder-gitAUR
- MultiBootUSB—USBスティック上の複数のライブLinuxイメージをインストールして削除することを可能にするCLIおよびGUIインターフェイスを備えたクロスプラットフォームのPythonソフトウェア。
https://github.com/mbusb/multibootusb|/multibootusbAUR
- MultiSystem—USBデバイス上の複数のISOイメージをインストール、管理、および削除することを可能にするグラフィカルツール。Ventoy-ISO/WIM/IMG/VHD(x)/EFIファイル用の起動可能なUSBドライブを作成するためのオープンソースのツール。 あなただけのUSBドライブにファイルをコピーし、それらを直接起動する必要があり、何度もディスクをフォーマットする必要はありません。
https://www.ventoy.net|/ventoy-binAUR
も参照してください
- BIOSブートパーティション(gdiskタイプコード