「マルチブート USB ドライブ」の版間の差分
(ページの作成:「Category:ブートプロセス de:Multiboot USB Stick en:Multiboot USB drive {{Related articles start}} {{Related|GRUB}} {{Related|Syslinux}} {{Related|Archis...」) |
(同期) |
||
1行目: | 1行目: | ||
[[Category:ブートプロセス]] |
[[Category:ブートプロセス]] |
||
+ | [[Category:Arch の入手とインストール]] |
||
[[de:Multiboot USB Stick]] |
[[de:Multiboot USB Stick]] |
||
[[en:Multiboot USB drive]] |
[[en:Multiboot USB drive]] |
||
26行目: | 27行目: | ||
=== GRUB のインストール === |
=== GRUB のインストール === |
||
+ | |||
+ | ==== シンプルなインストール ==== |
||
USB ドライブ上のファイルシステムをマウント: |
USB ドライブ上のファイルシステムをマウント: |
||
44行目: | 47行目: | ||
UEFI を使う場合、パーティションは MBR パーティションテーブルの最初のパーティションにして FAT32 でフォーマットしてください。 |
UEFI を使う場合、パーティションは MBR パーティションテーブルの最初のパーティションにして FAT32 でフォーマットしてください。 |
||
+ | |||
+ | ==== UEFI GPT + BIOS GPT/MBR のハイブリッドブート ==== |
||
+ | どこでも起動できるユニバーサル USB キーを作成したいときに有用な構成です。まず最初にデバイスに [[GPT]] パーティションテーブルを作成する必要があります。最低でも以下の3つのパーティションが必要です: |
||
+ | # BIOS ブートパーティション (タイプ EF02)。 |
||
+ | # EFI システムパーティション (タイプ EF00 で [[EFI_システムパーティション#パーティションのフォーマット|FAT32 ファイルシステム]])。 |
||
+ | # データパーティション ([[GRUB]] によってサポートされているファイルシステムを使用)。 |
||
+ | |||
+ | BIOS ブートパーティションの容量は 1 MB、EFI システムパーティションは最低でも 50 MB 必要です。データパーティションはドライブの残り容量全部使えます。 |
||
+ | |||
+ | 次にハイブリッド MBR パーティションテーブルを作成します。保護 MBR パーティションにブートフラグを設定するだけでは十分ではありません。 |
||
+ | |||
+ | [[gdisk]] を使ってハイブリッド MBR パーティションテーブルを作成する例: |
||
+ | |||
+ | {{bc| |
||
+ | # gdisk /dev/sdX |
||
+ | |||
+ | Command (? for help): r |
||
+ | Recovery/transformation command (? for help): h |
||
+ | Type from one to three GPT partition numbers, separated by spaces, to be added to the hybrid MBR, in sequence: 1 2 3 |
||
+ | Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): N |
||
+ | |||
+ | Creating entry for GPT partition #1 (MBR partition #2) |
||
+ | Enter an MBR hex code (default EF): |
||
+ | Set the bootable flag? (Y/N): N |
||
+ | |||
+ | Creating entry for GPT partition #2 (MBR partition #3) |
||
+ | Enter an MBR hex code (default EF): |
||
+ | Set the bootable flag? (Y/N): N |
||
+ | |||
+ | Creating entry for GPT partition #3 (MBR partition #4) |
||
+ | Enter an MBR hex code (default 83): |
||
+ | Set the bootable flag? (Y/N): Y |
||
+ | |||
+ | Recovery/transformation command (? for help): x |
||
+ | Expert command (? for help): h |
||
+ | Expert command (? for help): w |
||
+ | |||
+ | Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING |
||
+ | PARTITIONS!! |
||
+ | |||
+ | Do you want to proceed? (Y/N): Y |
||
+ | }} |
||
+ | |||
+ | GRUB をインストールすることで EFI + GPT と BIOS + GPT/MBR の両方に対応させることができます。GRUB の設定 (--boot-directory) は同じ場所に保存してください。 |
||
+ | |||
+ | まず、USB ドライブの EFI システムパーティションとデータパーティションをマウントします。そして EFI 用に GRUB をインストール: |
||
+ | # grub-install --target=x86_64-efi --efi-directory=/EFI_MOUNTPOINT --boot-directory=/DATA_MOUNTPOINT/boot --removable --recheck |
||
+ | |||
+ | それから BIOS 用にインストール: |
||
+ | # grub-install --target=i386-pc --boot-directory=/DATA_MOUNTPOINT/boot --recheck /dev/sdX |
||
+ | |||
+ | さらにフォールバックとして、データパーティションに GRUB をインストールすることもできます: |
||
+ | # grub-install --target=i386-pc --boot-directory=/DATA_MOUNTPOINT/boot --recheck /dev/sdX3 |
||
=== GRUB の設定 === |
=== GRUB の設定 === |
||
+ | |||
+ | ==== テンプレートを使う ==== |
||
+ | ドライブに特定の ISO ファイルやフォルダが存在する場合にのみ、他のブートエントリをロードできるようにする {{ic|grub.cfg}} と事前に生成済みの GRUB 設定ファイルを提供する git プロジェクトがいくつか存在します。 |
||
+ | |||
+ | * Multiboot USB: https://github.com/aguslr/multibootusb |
||
+ | |||
+ | * GLIM (GRUB2 Live ISO Multiboot): https://github.com/thias/glim |
||
+ | |||
+ | ==== 手動設定 ==== |
||
マルチブート USB ドライブを作るときは {{ic|grub.cfg}} は自動で生成するよりも手動で編集した方が楽です。もしくは、{{ic|/etc/grub.d/40_custom}} や {{ic|/mnt/boot/grub/custom.cfg}} に変更を加えてから [[GRUB#メイン設定ファイルの生成|grub-mkconfig]] で {{ic|/mnt/boot/grub/grub.cfg}} を生成してください。 |
マルチブート USB ドライブを作るときは {{ic|grub.cfg}} は自動で生成するよりも手動で編集した方が楽です。もしくは、{{ic|/etc/grub.d/40_custom}} や {{ic|/mnt/boot/grub/custom.cfg}} に変更を加えてから [[GRUB#メイン設定ファイルの生成|grub-mkconfig]] で {{ic|/mnt/boot/grub/grub.cfg}} を生成してください。 |
||
79行目: | 144行目: | ||
ISO イメージは GRUB をインストールしたのと同じファイルシステムの {{ic|boot/iso/}} ディレクトリに保存します。それ以外のディレクトリに保存する場合、{{ic|loopback}} コマンドを使う時に ISO ファイルのパスの前にデバイスの識別子を付ける必要があります。例: {{ic|loopback loop '''(hd1,2)'''$isofile}}。このデバイス識別子は[[永続的なブロックデバイスの命名|永続的]]ではないため、このセクションの例では使いません。 |
ISO イメージは GRUB をインストールしたのと同じファイルシステムの {{ic|boot/iso/}} ディレクトリに保存します。それ以外のディレクトリに保存する場合、{{ic|loopback}} コマンドを使う時に ISO ファイルのパスの前にデバイスの識別子を付ける必要があります。例: {{ic|loopback loop '''(hd1,2)'''$isofile}}。このデバイス識別子は[[永続的なブロックデバイスの命名|永続的]]ではないため、このセクションの例では使いません。 |
||
− | 以下のように永続的なブロックデバイスの命名を使うことができます: |
+ | 以下のように永続的なブロックデバイスの命名を使うことができます (UUID は適当な値に置き換えてください): |
{{bc|1= |
{{bc|1= |
||
# define globally (i.e outside any menuentry) |
# define globally (i.e outside any menuentry) |
||
88行目: | 153行目: | ||
}} |
}} |
||
− | {{Tip|カーネルパラメータのリストは https://www.kernel.org/doc/Documentation/kernel-parameters.txt を見て下さい (完全ではありません)。}} |
+ | {{Tip|カーネルパラメータのリストは https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.rst や https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt を見て下さい (完全ではありません)。}} |
− | |||
− | ==== Alt Linux ==== |
||
− | |||
− | * Initramfs フレームワーク: ??? |
||
− | * ライブフレームワーク: ??? |
||
− | * Init システム: ??? |
||
− | |||
− | {{bc|1= |
||
− | menuentry "[loopback]altlinux-7.0.5-simply-x86_64-install-dvd5.iso" { |
||
− | set gfxpayload=keep |
||
− | insmod gzio |
||
− | insmod part_msdos |
||
− | insmod ext2 |
||
− | insmod xfs |
||
− | set bootpart=uuid:df46d821-e7f9-4e35-bbd2-728bdce8d89a |
||
− | set isodir=/boot/iso |
||
− | set isofile=altlinux-7.0.5-simply-x86_64-install-dvd5.iso |
||
− | loopback loop (${root})${isodir}/${isofile} |
||
− | linux (loop)/syslinux/alt0/vmlinuz automatic=method:disk,${bootpart},directory:${isodir}/${isofile} ramdisk_size=183210 changedisk lang=ru_RU splash noeject xdriver=auto quiet=1 showopts |
||
− | initrd (loop)/syslinux/alt0/full.cz |
||
− | } |
||
− | }} |
||
==== Arch Linux ==== |
==== Arch Linux ==== |
||
− | |||
− | {{Tip|32ビット環境を起動したい場合、{{ic|x86_64}} を {{ic|i686}} に置き換えて下さい。}} |
||
===== 月次リリース ===== |
===== 月次リリース ===== |
||
+ | [[archiso]] も見てください。 |
||
− | * Initramfs フレームワーク: [[mkinitcpio]] (cmdline: [https://projects.archlinux.org/mkinitcpio.git/tree/man/mkinitcpio.8.txt#n212]) |
||
− | * ライブフレームワーク: [[archiso]] (cmdline: [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams]) |
||
− | * Init システム: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html]) |
||
{{bc|1= |
{{bc|1= |
||
− | menuentry '[loopback]archlinux- |
+ | menuentry '[loopback]archlinux-2017.04.01-x86_64.iso' { |
− | set isofile='/boot/iso/archlinux- |
+ | set isofile='/boot/iso/archlinux-2017.04.01-x86_64.iso' |
loopback loop $isofile |
loopback loop $isofile |
||
− | linux (loop)/arch/boot/'''x86_64'''/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile |
+ | linux (loop)/arch/boot/'''x86_64'''/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop |
initrd (loop)/arch/boot/'''x86_64'''/archiso.img |
initrd (loop)/arch/boot/'''x86_64'''/archiso.img |
||
} |
} |
||
135行目: | 174行目: | ||
===== archboot ===== |
===== archboot ===== |
||
+ | [[archboot]] も見てください。 |
||
− | * Initramfs フレームワーク: [[mkinitcpio]] (cmdline: [https://projects.archlinux.org/mkinitcpio.git/tree/man/mkinitcpio.8.txt#n212]) |
||
− | * ライブフレームワーク: [[archboot]] (cmdline: none? ''RFD'') |
||
− | * Init システム: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html]) |
||
{{bc|1= |
{{bc|1= |
||
145行目: | 182行目: | ||
linux (loop)/boot/vmlinuz_'''x86_64''' iso_loop_dev=$imgdevpath iso_loop_path=$isofile |
linux (loop)/boot/vmlinuz_'''x86_64''' iso_loop_dev=$imgdevpath iso_loop_path=$isofile |
||
initrd (loop)/boot/initramfs_'''x86_64'''.img |
initrd (loop)/boot/initramfs_'''x86_64'''.img |
||
+ | } |
||
+ | }} |
||
+ | |||
+ | ==== Alpine Linux ==== |
||
+ | {{Tip|32ビット環境を起動したい場合、{{ic|x86_64}} を {{ic|x86}} に置き換えてください。}} |
||
+ | |||
+ | {{bc|1= |
||
+ | menuentry '[loopback]alpine x86_64' { |
||
+ | set isofile='/boot/iso/alpine-extended-3.6.0-x86_64.iso' |
||
+ | loopback loop $isofile |
||
+ | set root=loop |
||
+ | linux /boot/vmlinuz-hardened modloop=/boot/modloop-grsec modules=loop,squashfs,sd-mod,usb-storage quiet |
||
+ | initrd /boot/initramfs-hardened |
||
} |
} |
||
}} |
}} |
||
151行目: | 201行目: | ||
===== 標準インストールメディア ===== |
===== 標準インストールメディア ===== |
||
− | |||
− | * Initramfs フレームワーク: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc]) |
||
− | * インストールプログラム: [https://fedoraproject.org/wiki/Anaconda Anaconda] (cmdline: [https://github.com/rhinstaller/anaconda/blob/master/docs/boot-options.rst]) |
||
− | * Init システム: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html]) |
||
{{bc|1= |
{{bc|1= |
||
163行目: | 209行目: | ||
initrd (loop)/isolinux/initrd.img |
initrd (loop)/isolinux/initrd.img |
||
} |
} |
||
− | }} |
||
− | |||
− | {{tip|1=インストールイメージの場所を示す stage2 ブートパラメータ {{ic|1=/dev/sdb2}} は Anaconda によって使われます。[[fstab]] の1番目のフィールド (fs_spec) と同じように、以下のどれかに置き換えられます (例: {{ic|1=linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:'''LABEL=MYUSBSTICK''':/$isofile}}): |
||
− | * {{ic|1=/dev/sd'''''xY'''''}} |
||
− | * {{ic|1=LABEL=MYUSBSTICK}} |
||
− | * {{ic|1=UUID=00000000-0000-0000-0000-0000deadbeef}} |
||
− | 特殊なディスクラベル (例: GPT) を使用する場合、{{ic|1=PARTUUID=}} や {{ic|1=PARTLABEL=}} を使うことも可能です。 |
||
}} |
}} |
||
===== デスクトップライブメディア ===== |
===== デスクトップライブメディア ===== |
||
− | |||
− | * Initramfs フレームワーク: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc]) |
||
− | * ライブフレームワーク: fedora [https://fedoraproject.org/wiki/FedoraLiveCD livecd-tools] (cmdline: none) |
||
− | * Init システム: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html]) |
||
{{bc|1= |
{{bc|1= |
||
189行目: | 224行目: | ||
==== Clonezilla Live ==== |
==== Clonezilla Live ==== |
||
{{tip|1=2014.01.05 から [https://projects.archlinux.org/archiso.git/commit/?id=5cd02c704046cdb6974f6b10f0cac366eeebec0e], Arch Linux の月次リリースには clonezilla が含まれています。}} |
{{tip|1=2014.01.05 から [https://projects.archlinux.org/archiso.git/commit/?id=5cd02c704046cdb6974f6b10f0cac366eeebec0e], Arch Linux の月次リリースには clonezilla が含まれています。}} |
||
− | |||
− | * Initramfs フレームワーク: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'') |
||
− | * ライブフレームワーク: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en]) |
||
− | * Init システム: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'') |
||
{{bc|1= |
{{bc|1= |
||
− | menuentry "[loopback]clonezilla-live- |
+ | menuentry "[loopback]clonezilla-live-20170220-yakkety-amd64" { |
− | set isofile="/boot/iso/clonezilla-live- |
+ | set isofile="/boot/iso/clonezilla-live-20170220-yakkety-amd64.iso" |
loopback loop $isofile |
loopback loop $isofile |
||
− | linux (loop)/live/vmlinuz |
+ | linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts= ocs_live_batch=\"no\" locales= vga=788 ip=frommedia nosplash toram=filesystem.squashfs findiso=$isofile |
initrd (loop)/live/initrd.img |
initrd (loop)/live/initrd.img |
||
} |
} |
||
204行目: | 235行目: | ||
==== Debian ==== |
==== Debian ==== |
||
− | |||
− | ===== 標準インストールメディア ===== |
||
− | |||
− | * Initramfs フレームワーク: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'') |
||
− | * インストールプログラム: [https://wiki.debian.org/DebianInstaller#Development debian-installer] (cmdline: ''exists but missing online documentation'') |
||
− | * Init システム: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'') |
||
− | |||
− | {{tip|光学メディア以外の標準インストールメディア (例: USB スティックや HDD) から debian をインストールするには、インストールメディアのデフォルトの initramfs ({{ic|(loop)/install.amd/initrd.gz}}) ではない別の initramfs を使用する必要があります。デフォルトの initramfs で起動すると、インストーラーがインストールに使用する iso イメージを発見・マウントすることができません。[https://mirrors.kernel.org/debian/dists/stable/main/installer-amd64/current/images/hd-media/initrd.gz 公式のミラーサイト] からハードディスクインストール用の initramfs をダウンロードして、イメージファイルと同じディレクトリに配置してください。そして適当な名前を付けて下さい (下の例では {{ic|debian-7.8.0-amd64-DVD-1.hdd.initrd.gz}})。}} |
||
{{bc|1= |
{{bc|1= |
||
− | menuentry '[loopback]debian- |
+ | menuentry '[loopback]debian-live-8.8.0-amd64-gnome-desktop' { |
− | set isofile='/boot/iso/debian- |
+ | set isofile='/boot/iso/debian-live-8.8.0-amd64-gnome-desktop.iso' |
+ | loopback loop (hd1,2)$isofile |
||
− | set initrdfile='/boot/iso/debian-7.8.0-amd64-DVD-1.hdd.initrd.gz' |
||
− | + | linux (loop)/live/vmlinuz boot=live config fromiso=/dev/sdb2$isofile |
|
− | linux (loop)/install.amd/vmlinuz vga=791 iso-scan/ask_second_pass=true iso-scan/filename=$isofile |
||
− | initrd $initrdfile |
||
− | } |
||
− | }} |
||
− | |||
− | ===== ライブインストールメディア ===== |
||
− | |||
− | * Initramfs フレームワーク: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'') |
||
− | * ライブフレームワーク: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en]) |
||
− | * Init システム: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'') |
||
− | |||
− | {{bc|1= |
||
− | menuentry '[loopback]debian-live-7.8.0-amd64-xfce-desktop' { |
||
− | set isofile='/boot/iso/debian-live-7.8.0-amd64-xfce-desktop.iso' |
||
− | loopback loop $isofile |
||
− | linux (loop)/live/vmlinuz boot=live config fromiso='''/dev/sdb2'''/$isofile |
||
initrd (loop)/live/initrd.img |
initrd (loop)/live/initrd.img |
||
} |
} |
||
}} |
}} |
||
− | |||
− | {{note|{{ic|1=fromiso=/dev/disk/by-.../.../$isofile}} を使うかわりに短く {{ic|1=findiso=$isofile}} と指定してもかまいません。ただし {{ic|1=findiso=}} よりも {{ic|1=fromiso=}} を使った方が不必要なマウントをしなくなるので初期化が高速になります。}} |
||
==== Elementary OS ==== |
==== Elementary OS ==== |
||
− | |||
− | * Initramfs フレームワーク: ''RFD'' |
||
− | * ライブフレームワークあるいはインストールプログラム: ''RFD'' |
||
− | * Init システム: upstart (cmdline: ''RFD'') |
||
− | |||
{{bc|1= |
{{bc|1= |
||
menuentry '[loopback]elementaryos-freya-amd64.20150411' { |
menuentry '[loopback]elementaryos-freya-amd64.20150411' { |
||
258行目: | 258行目: | ||
===== 標準インストールメディア ===== |
===== 標準インストールメディア ===== |
||
− | |||
− | * Initramfs フレームワーク: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc]) |
||
− | * インストールプログラム: [https://fedoraproject.org/wiki/Anaconda Anaconda] (cmdline: [https://github.com/rhinstaller/anaconda/blob/master/docs/boot-options.rst]) |
||
− | * Init システム: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html]) |
||
{{bc|1= |
{{bc|1= |
||
− | menuentry '[loopback]Fedora- |
+ | menuentry '[loopback]Fedora-Workstation-netinst-x86_64-24-1.2' { |
− | set isofile='/boot/iso/Fedora- |
+ | set isofile='/boot/iso/Fedora-Workstation-netinst-x86_64-24-1.2.iso' |
loopback loop $isofile |
loopback loop $isofile |
||
− | linux (loop)/isolinux/vmlinuz |
+ | linux (loop)/isolinux/vmlinuz inst.stage2=hd:LABEL=Fedora-WS-dvd-x86_64-24 iso-scan/filename=$isofile quiet |
initrd (loop)/isolinux/initrd.img |
initrd (loop)/isolinux/initrd.img |
||
} |
} |
||
273行目: | 269行目: | ||
===== Workstation ライブメディア ===== |
===== Workstation ライブメディア ===== |
||
− | |||
− | * Initramfs フレームワーク: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc]) |
||
− | * ライブフレームワーク: fedora [https://fedoraproject.org/wiki/FedoraLiveCD livecd-tools] (cmdline: none) |
||
− | * Init システム: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html]) |
||
− | |||
{{bc|1= |
{{bc|1= |
||
− | menuentry '[loopback]Fedora |
+ | menuentry '[loopback]Fedora-Workstation-Live-x86_64-24-1.2' { |
− | set isofile='/boot/iso/Fedora- |
+ | set isofile='/boot/iso/Fedora-Workstation-Live-x86_64-24-1.2.iso' |
loopback loop $isofile |
loopback loop $isofile |
||
− | linux (loop)/isolinux/ |
+ | linux (loop)/isolinux/vmlinuz root=live:CDLABEL=Fedora-WS-Live-24-1-2 iso-scan/filename=$isofile rd.live.image quiet |
− | initrd (loop)/isolinux/ |
+ | initrd (loop)/isolinux/initrd.img |
} |
} |
||
}} |
}} |
||
==== Gentoo ==== |
==== Gentoo ==== |
||
− | ===== デスクトップ LiveDVD ===== |
||
− | |||
− | * Initramfs フレームワーク: [https://wiki.gentoo.org/wiki/Genkernel genkernel] (cmdline: [https://gitweb.gentoo.org/proj/genkernel.git/tree/doc/genkernel.8.txt#n393]) |
||
− | * ライブフレームワーク: [https://gitweb.gentoo.org/proj/livecd-tools.git/ livecd-tools] (cmdline: ''RFD'') |
||
− | * Init システム: [https://wiki.gentoo.org/wiki/Project:OpenRC OpenRC] (cmdline: ''RFD'') |
||
− | |||
{{bc|1= |
{{bc|1= |
||
− | menuentry "[loopback]livedvd-amd64-multilib- |
+ | menuentry "[loopback]livedvd-amd64-multilib-20160514" { |
− | set isofile="/boot/iso/livedvd-amd64-multilib- |
+ | set isofile="/boot/iso/livedvd-amd64-multilib-20160514.iso" |
loopback loop $isofile |
loopback loop $isofile |
||
linux (loop)/isolinux/gentoo root=/dev/ram0 init=/linuxrc aufs looptype=squashfs loop=/image.squashfs cdroot isoboot=$isofile vga='''791''' splash=silent,theme:default console=tty0 |
linux (loop)/isolinux/gentoo root=/dev/ram0 init=/linuxrc aufs looptype=squashfs loop=/image.squashfs cdroot isoboot=$isofile vga='''791''' splash=silent,theme:default console=tty0 |
||
− | initrd (loop)/isolinux/gentoo. |
+ | initrd (loop)/isolinux/gentoo.xz |
} |
} |
||
}} |
}} |
||
− | |||
− | {{Tip|最小メディアでも上記で動作します。}} |
||
==== GParted Live ==== |
==== GParted Live ==== |
||
− | |||
− | * Initramfs フレームワーク: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'') |
||
− | * ライブフレームワーク: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en]) |
||
− | * Init システム: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'') |
||
− | |||
{{bc|1= |
{{bc|1= |
||
− | menuentry "[loopback]gparted-live-0. |
+ | menuentry "[loopback]gparted-live-0.28.1-1-'''amd64'''" { |
− | set isofile="/boot/iso/gparted-live-0. |
+ | set isofile="/boot/iso/gparted-live-0.28.1-1-'''amd64'''.iso" |
loopback loop $isofile |
loopback loop $isofile |
||
− | linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap noeject toram=filesystem.squashfs ip= |
+ | linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap noeject toram=filesystem.squashfs ip= nosplash findiso=$isofile |
initrd (loop)/live/initrd.img |
initrd (loop)/live/initrd.img |
||
} |
} |
||
321行目: | 299行目: | ||
==== Kali Linux ==== |
==== Kali Linux ==== |
||
− | |||
− | * Initramfs フレームワーク: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'') |
||
− | * ライブフレームワーク: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en]) |
||
− | * Init システム: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'') |
||
− | |||
{{bc|1= |
{{bc|1= |
||
menuentry "[loopback]kali-linux-1.0.7-'''amd64'''" { |
menuentry "[loopback]kali-linux-1.0.7-'''amd64'''" { |
||
336行目: | 309行目: | ||
==== Knoppix ==== |
==== Knoppix ==== |
||
− | |||
− | * Initramfs フレームワーク: ''Unknown'' |
||
− | * ライブフレームワーク: ''Unknown'' |
||
− | * Init システム: ''Unknown'' |
||
− | |||
{{bc|1= |
{{bc|1= |
||
menuentry "[loopback]KNOPPIX_V7.4.2DVD-2014-09-28-EN" { |
menuentry "[loopback]KNOPPIX_V7.4.2DVD-2014-09-28-EN" { |
||
set isofile="/boot/iso/KNOPPIX_V7.4.2DVD-2014-09-28-EN.iso" |
set isofile="/boot/iso/KNOPPIX_V7.4.2DVD-2014-09-28-EN.iso" |
||
loopback loop $isofile |
loopback loop $isofile |
||
− | linux (loop)/boot/isolinux/linux bootfrom=/ |
+ | linux (loop)/boot/isolinux/linux bootfrom=/dev/sda2$isofile acpi=off keyboard=us language-us lang=us |
initrd (loop)/boot/isolinux/minirt.gz |
initrd (loop)/boot/isolinux/minirt.gz |
||
} |
} |
||
351行目: | 319行目: | ||
==== Linux Mint ==== |
==== Linux Mint ==== |
||
− | |||
− | * Initramfs フレームワーク: ''RFD'' |
||
− | * ライブフレームワークあるいはインストールプログラム: ''RFD'' |
||
− | * Init システム: ''RFD'' |
||
− | |||
− | {{bc|1= |
||
− | menuentry "[loopback]linuxmint-201403-cinnamon-dvd-'''32'''bit" { |
||
− | set isofile="/boot/iso/linuxmint-201403-cinnamon-dvd-'''32'''bit.iso" |
||
− | loopback loop $isofile |
||
− | linux (loop)/live/vmlinuz isofrom='''/dev/sdb2'''/iso/$isofile boot=live live-config live-media-path=/live quiet splash noeject noprompt |
||
− | initrd (loop)/live/initrd.img |
||
− | } |
||
− | }} |
||
− | 上記の設定で起動したときに '/live/vmlinuz not found' というエラーメッセージが表示される場合、以下を試して下さい: |
||
− | |||
{{bc|1= |
{{bc|1= |
||
menuentry "Linux Mint 17.2 Cinnamon LTS RC (x64)" { |
menuentry "Linux Mint 17.2 Cinnamon LTS RC (x64)" { |
||
378行目: | 331行目: | ||
===== 標準インストールメディア ===== |
===== 標準インストールメディア ===== |
||
− | |||
− | * Initramfs フレームワーク: ''RFD'' |
||
− | * ライブフレームワークあるいはインストールプログラム: Kiwi? ''RFD'' |
||
− | * Init システム: ''RFD'' |
||
{{bc|1= |
{{bc|1= |
||
393行目: | 342行目: | ||
===== デスクトップライブメディア ===== |
===== デスクトップライブメディア ===== |
||
− | |||
− | * Initramfs フレームワーク: ''RFD'' |
||
− | * ライブフレームワークあるいはインストールプログラム: Kiwi? ''RFD'' |
||
− | * Init システム: ''RFD'' |
||
{{bc|1= |
{{bc|1= |
||
423行目: | 368行目: | ||
==== Sabayon ==== |
==== Sabayon ==== |
||
− | |||
− | * Initramfs フレームワーク: genkernel? ''RFD'' |
||
− | * ライブフレームワークあるいはインストールプログラム: ''RFD'' |
||
− | * Init システム: openrc? ''RFD'' |
||
− | |||
{{bc|1= |
{{bc|1= |
||
menuentry '[loopback]Sabayon_Linux_14.05_amd64_KDE' { |
menuentry '[loopback]Sabayon_Linux_14.05_amd64_KDE' { |
||
438行目: | 378行目: | ||
==== Slackware Linux ==== |
==== Slackware Linux ==== |
||
− | |||
− | * Initramfs フレームワーク: ''RFD'' |
||
− | * ライブフレームワークあるいはインストールプログラム: ''RFD'' |
||
− | * Init システム: ''RFD'' |
||
− | |||
{{bc|1= |
{{bc|1= |
||
menuentry '[loopback]slackware64-14.1-install-dvd' { |
menuentry '[loopback]slackware64-14.1-install-dvd' { |
||
454行目: | 389行目: | ||
==== SystemRescueCD ==== |
==== SystemRescueCD ==== |
||
− | * Initramfs フレームワーク: ''RFD'' |
||
− | * ライブフレームワークあるいはインストールプログラム: ''RFD'' |
||
− | * Init システム: ''RFD'' |
||
− | |||
− | {{note|Replace {{ic|64}} with {{ic|32}} if you want to boot into a 32-bit system.}} |
||
{{bc|1= |
{{bc|1= |
||
menuentry '[loopback]systemrescuecd-x86-4.5.2' { |
menuentry '[loopback]systemrescuecd-x86-4.5.2' { |
||
465行目: | 395行目: | ||
linux (loop)/isolinux/rescue'''64''' isoloop=$isofile |
linux (loop)/isolinux/rescue'''64''' isoloop=$isofile |
||
initrd (loop)/isolinux/initram.igz |
initrd (loop)/isolinux/initram.igz |
||
− | } |
||
− | }} |
||
− | |||
− | ==== Ubuntu ==== |
||
− | |||
− | * Initramfs フレームワーク: ''RFD'' |
||
− | * ライブフレームワークあるいはインストールプログラム: ''RFD'' |
||
− | * Init システム: upstart (cmdline: ''RFD'') |
||
− | |||
− | {{bc|1= |
||
− | menuentry '[loopback]ubuntu-14.04.1-desktop-amd64' { |
||
− | set isofile='/boot/iso/ubuntu-14.04.1-desktop-amd64.iso' |
||
− | loopback loop $isofile |
||
− | linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale='''en_US.UTF-8''' |
||
− | initrd (loop)/casper/initrd.lz |
||
} |
} |
||
}} |
}} |
||
==== Slitaz ==== |
==== Slitaz ==== |
||
− | |||
− | * Initramfs フレームワーク: ''RFD'' |
||
− | * ライブフレームワーク: ''RFD'' |
||
− | * Init システム: ''RFD'' |
||
まず、slitaz の iso をダウンロードしてから、どこかに展開してください (この例では /dev/sda3 の /live/slitaz-4.0)。 |
まず、slitaz の iso をダウンロードしてから、どこかに展開してください (この例では /dev/sda3 の /live/slitaz-4.0)。 |
||
503行目: | 414行目: | ||
==== Slax ==== |
==== Slax ==== |
||
− | |||
− | * Initramfs フレームワーク: ''RFD'' |
||
− | * ライブフレームワーク: ''RFD'' |
||
− | * Init システム: ''RFD'' |
||
まず、Slax の zip (USB 用) をダウンロードして、どこかに展開してください (この例では /dev/sda3 の /live/slax)。 |
まず、Slax の zip (USB 用) をダウンロードして、どこかに展開してください (この例では /dev/sda3 の /live/slax)。 |
||
519行目: | 426行目: | ||
}} |
}} |
||
− | ==== |
+ | ==== Spinrite ==== |
+ | {{bc|1= |
||
− | * Initramfs フレームワーク: ''Unknown'' |
||
+ | menuentry "Spinrite" { |
||
− | * ライブフレームワーク: ''Unknown'' |
||
+ | set gfxpayload=text |
||
− | * Init システム: ''Unknown'' |
||
+ | set isofile="/boot/iso/spinrite.iso" |
||
+ | set memdisk="/boot/iso/memdisk4.05" |
||
+ | linux16 (hd1,gpt3)$memdisk iso |
||
+ | initrd16 (hd1,gpt3)$isofile |
||
+ | } |
||
+ | }} |
||
+ | |||
+ | ==== Tails ==== |
||
Tails の iso をダウンロードして整合性を確認してください。 |
Tails の iso をダウンロードして整合性を確認してください。 |
||
539行目: | 454行目: | ||
iso ファイルがリムーバルメディア上にない場合は {{ic|1=live-media=removable}} オプションを削除してください。 |
iso ファイルがリムーバルメディア上にない場合は {{ic|1=live-media=removable}} オプションを削除してください。 |
||
+ | |||
+ | ==== Ubuntu ==== |
||
+ | {{bc|1= |
||
+ | menuentry '[loopback]ubuntu-14.04.1-desktop-amd64' { |
||
+ | set isofile='/boot/iso/ubuntu-14.04.1-desktop-amd64.iso' |
||
+ | loopback loop $isofile |
||
+ | linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale='''en_US.UTF-8''' |
||
+ | initrd (loop)/casper/initrd.lz |
||
+ | } |
||
+ | }} |
||
+ | |||
+ | ==== Xubuntu (32ビット) ==== |
||
+ | {{bc|1= |
||
+ | menuentry '[loopback]Xubuntu-16.04-desktop-i386' { |
||
+ | set isofile='/boot/iso/xubuntu-16.04-desktop-i386.iso' |
||
+ | loopback loop $isofile |
||
+ | linux (loop)/casper/vmlinuz file=/cdrom/preseed/xubuntu.seed boot=casper iso-scan/filename=$isofile quiet splash --- |
||
+ | initrd (loop)/casper/initrd.lz |
||
+ | } |
||
+ | }} |
||
== Windows のチェインロード == |
== Windows のチェインロード == |
||
596行目: | 531行目: | ||
** https://help.ubuntu.com/community/Grub2/ISOBoot |
** https://help.ubuntu.com/community/Grub2/ISOBoot |
||
* Syslinux: |
* Syslinux: |
||
− | ** [http://www.syslinux.org/wiki/index.php |
+ | ** [http://www.syslinux.org/wiki/index.php?title=Boot_an_Iso_image Boot an ISO image] |
2017年8月5日 (土) 00:37時点における版
マルチブート USB フラッシュドライブを使うことで単一のドライブから複数の ISO ファイルを起動することができます。ISO ファイルをデバイスにコピーすることで ISO を展開することなく直接起動することが可能です。複数の方法が存在しますが、全ての ISO イメージが使えるというわけではありません。
目次
- 1 GRUB とループバックデバイスを使う
- 1.1 準備
- 1.2 GRUB のインストール
- 1.3 GRUB の設定
- 1.4 ブートエントリ
- 1.4.1 Arch Linux
- 1.4.2 Alpine Linux
- 1.4.3 CentOS
- 1.4.4 Clonezilla Live
- 1.4.5 Debian
- 1.4.6 Elementary OS
- 1.4.7 Fedora
- 1.4.8 Gentoo
- 1.4.9 GParted Live
- 1.4.10 Kali Linux
- 1.4.11 Knoppix
- 1.4.12 Linux Mint
- 1.4.13 openSUSE
- 1.4.14 Parabola GNU/Linux-libre
- 1.4.15 Sabayon
- 1.4.16 Slackware Linux
- 1.4.17 SystemRescueCD
- 1.4.18 Slitaz
- 1.4.19 Slax
- 1.4.20 Spinrite
- 1.4.21 Tails
- 1.4.22 Ubuntu
- 1.4.23 Xubuntu (32ビット)
- 2 Windows のチェインロード
- 3 Syslinux と memdisk を使う
- 4 参照
GRUB とループバックデバイスを使う
利点:
- 必要なのは単一のパーティションのみ
- 全ての ISO ファイルを単一のディレクトリに保存できる
- ISO の追加や削除が簡単
欠点:
- 対応していない ISO イメージもある
- ISO ファイルのオリジナルのブートメニューは表示されない
- 動作するブートエントリを見つけるのが難しい
準備
USB ドライブに最低でも一つのパーティションを作成して GRUB が対応しているファイルシステムを作成してください。パーティショニングやファイルシステム#デバイスのフォーマットを参照。ドライブに保存する ISO ファイルの合計容量にあわせて容量を決めて、ブートローダーのための容量を残しておいて下さい。
GRUB のインストール
シンプルなインストール
USB ドライブ上のファイルシステムをマウント:
# mount /dev/sdXY /mnt
/boot
ディレクトリを作成:
# mkdir /mnt/boot
USB ドライブに grub をインストール:
# grub-install --target=i386-pc --recheck --boot-directory=/mnt/boot /dev/sdX
UEFI モードで ISO を起動したい場合、UEFI ターゲットで grub をインストールする必要があります:
# grub-install --target x86_64-efi --efi-directory /mnt --boot-directory=/mnt/boot --removable
UEFI を使う場合、パーティションは MBR パーティションテーブルの最初のパーティションにして FAT32 でフォーマットしてください。
UEFI GPT + BIOS GPT/MBR のハイブリッドブート
どこでも起動できるユニバーサル USB キーを作成したいときに有用な構成です。まず最初にデバイスに GPT パーティションテーブルを作成する必要があります。最低でも以下の3つのパーティションが必要です:
- BIOS ブートパーティション (タイプ EF02)。
- EFI システムパーティション (タイプ EF00 で FAT32 ファイルシステム)。
- データパーティション (GRUB によってサポートされているファイルシステムを使用)。
BIOS ブートパーティションの容量は 1 MB、EFI システムパーティションは最低でも 50 MB 必要です。データパーティションはドライブの残り容量全部使えます。
次にハイブリッド MBR パーティションテーブルを作成します。保護 MBR パーティションにブートフラグを設定するだけでは十分ではありません。
gdisk を使ってハイブリッド MBR パーティションテーブルを作成する例:
# gdisk /dev/sdX Command (? for help): r Recovery/transformation command (? for help): h Type from one to three GPT partition numbers, separated by spaces, to be added to the hybrid MBR, in sequence: 1 2 3 Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): N Creating entry for GPT partition #1 (MBR partition #2) Enter an MBR hex code (default EF): Set the bootable flag? (Y/N): N Creating entry for GPT partition #2 (MBR partition #3) Enter an MBR hex code (default EF): Set the bootable flag? (Y/N): N Creating entry for GPT partition #3 (MBR partition #4) Enter an MBR hex code (default 83): Set the bootable flag? (Y/N): Y Recovery/transformation command (? for help): x Expert command (? for help): h Expert command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y
GRUB をインストールすることで EFI + GPT と BIOS + GPT/MBR の両方に対応させることができます。GRUB の設定 (--boot-directory) は同じ場所に保存してください。
まず、USB ドライブの EFI システムパーティションとデータパーティションをマウントします。そして EFI 用に GRUB をインストール:
# grub-install --target=x86_64-efi --efi-directory=/EFI_MOUNTPOINT --boot-directory=/DATA_MOUNTPOINT/boot --removable --recheck
それから BIOS 用にインストール:
# grub-install --target=i386-pc --boot-directory=/DATA_MOUNTPOINT/boot --recheck /dev/sdX
さらにフォールバックとして、データパーティションに GRUB をインストールすることもできます:
# grub-install --target=i386-pc --boot-directory=/DATA_MOUNTPOINT/boot --recheck /dev/sdX3
GRUB の設定
テンプレートを使う
ドライブに特定の ISO ファイルやフォルダが存在する場合にのみ、他のブートエントリをロードできるようにする grub.cfg
と事前に生成済みの GRUB 設定ファイルを提供する git プロジェクトがいくつか存在します。
- Multiboot USB: https://github.com/aguslr/multibootusb
- GLIM (GRUB2 Live ISO Multiboot): https://github.com/thias/glim
手動設定
マルチブート USB ドライブを作るときは grub.cfg
は自動で生成するよりも手動で編集した方が楽です。もしくは、/etc/grub.d/40_custom
や /mnt/boot/grub/custom.cfg
に変更を加えてから grub-mkconfig で /mnt/boot/grub/grub.cfg
を生成してください。
イメージファイルが存在する USB ドライブのパーティションを識別するのに /dev/sdxY
よりも永続的な名前を使うことが推奨されるので、利便性のため値を保持する変数を定義します。ISO イメージが grub と同一のパーティション上にある場合、起動時に UUID を読み取るように以下を使って下さい:
/mnt/boot/grub/grub.cfg
# path to the partition holding ISO images (using UUID) probe -u $root --set=rootuuid set imgdevpath="/dev/disk/by-uuid/$rootuuid"
または UUID を明示的に指定:
/mnt/boot/grub/grub.cfg
# path to the partition holding ISO images (using UUID) set imgdevpath="/dev/disk/by-uuid/UUID_value"
もしくは、UUID の代わりにデバイスのラベルを使います:
/mnt/boot/grub/grub.cfg
# path to the partition holding ISO images (using labels) set imgdevpath="/dev/disk/by-label/label_value"
必要な UUID やラベルは lsblk -f
で確認できます。USB デバイスに Arch ISO と同一のラベルは使わないで下さい。ブートプロセスが失敗します。
次のセクションに書かれている例を見て、各 ISO イメージのブートエントリをヘッダの下に追加することで設定は完了です。
ブートエントリ
ISO イメージは GRUB をインストールしたのと同じファイルシステムの boot/iso/
ディレクトリに保存します。それ以外のディレクトリに保存する場合、loopback
コマンドを使う時に ISO ファイルのパスの前にデバイスの識別子を付ける必要があります。例: loopback loop (hd1,2)$isofile
。このデバイス識別子は永続的ではないため、このセクションの例では使いません。
以下のように永続的なブロックデバイスの命名を使うことができます (UUID は適当な値に置き換えてください):
# define globally (i.e outside any menuentry) insmod search_fs_uuid search --no-floppy --set=isopart --fs-uuid d6de9100-1981-11e5-9fb9-74867a652f05 # your iso fs uuid here # later use inside each menuentry instead loopback loop ($isopart)$isofile
Arch Linux
月次リリース
archiso も見てください。
menuentry '[loopback]archlinux-2017.04.01-x86_64.iso' { set isofile='/boot/iso/archlinux-2017.04.01-x86_64.iso' loopback loop $isofile linux (loop)/arch/boot/x86_64/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop initrd (loop)/arch/boot/x86_64/archiso.img }
archboot
archboot も見てください。
menuentry '[loopback]archlinux-2014.11-1-archboot' { set isofile='/boot/iso/archlinux-2014.11-1-archboot.iso' loopback loop $isofile linux (loop)/boot/vmlinuz_x86_64 iso_loop_dev=$imgdevpath iso_loop_path=$isofile initrd (loop)/boot/initramfs_x86_64.img }
Alpine Linux
menuentry '[loopback]alpine x86_64' { set isofile='/boot/iso/alpine-extended-3.6.0-x86_64.iso' loopback loop $isofile set root=loop linux /boot/vmlinuz-hardened modloop=/boot/modloop-grsec modules=loop,squashfs,sd-mod,usb-storage quiet initrd /boot/initramfs-hardened }
CentOS
標準インストールメディア
menuentry "[loopback]CentOS-7.0-1406-x86_64-DVD" { set isofile='/boot/iso/CentOS-7.0-1406-x86_64-DVD.iso' loopback loop $isofile linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:/dev/sdb2:/$isofile initrd (loop)/isolinux/initrd.img }
デスクトップライブメディア
menuentry '[loopback]CentOS-7.0-1406-x86_64-GnomeLive' { set isofile='/boot/iso/CentOS-7.0-1406-x86_64-GnomeLive.iso' loopback loop $isofile linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-live-GNOME-x86_64 iso-scan/filename=$isofile rd.live.image initrd (loop)/isolinux/initrd0.img }
Clonezilla Live
menuentry "[loopback]clonezilla-live-20170220-yakkety-amd64" { set isofile="/boot/iso/clonezilla-live-20170220-yakkety-amd64.iso" loopback loop $isofile linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts= ocs_live_batch=\"no\" locales= vga=788 ip=frommedia nosplash toram=filesystem.squashfs findiso=$isofile initrd (loop)/live/initrd.img }
Debian
menuentry '[loopback]debian-live-8.8.0-amd64-gnome-desktop' { set isofile='/boot/iso/debian-live-8.8.0-amd64-gnome-desktop.iso' loopback loop (hd1,2)$isofile linux (loop)/live/vmlinuz boot=live config fromiso=/dev/sdb2$isofile initrd (loop)/live/initrd.img }
Elementary OS
menuentry '[loopback]elementaryos-freya-amd64.20150411' { set isofile='/boot/iso/elementaryos-freya-amd64.20150411.iso' loopback loop $isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile locale=en_US.UTF-8 initrd (loop)/casper/initrd.lz }
Fedora
標準インストールメディア
menuentry '[loopback]Fedora-Workstation-netinst-x86_64-24-1.2' { set isofile='/boot/iso/Fedora-Workstation-netinst-x86_64-24-1.2.iso' loopback loop $isofile linux (loop)/isolinux/vmlinuz inst.stage2=hd:LABEL=Fedora-WS-dvd-x86_64-24 iso-scan/filename=$isofile quiet initrd (loop)/isolinux/initrd.img }
Workstation ライブメディア
menuentry '[loopback]Fedora-Workstation-Live-x86_64-24-1.2' { set isofile='/boot/iso/Fedora-Workstation-Live-x86_64-24-1.2.iso' loopback loop $isofile linux (loop)/isolinux/vmlinuz root=live:CDLABEL=Fedora-WS-Live-24-1-2 iso-scan/filename=$isofile rd.live.image quiet initrd (loop)/isolinux/initrd.img }
Gentoo
menuentry "[loopback]livedvd-amd64-multilib-20160514" { set isofile="/boot/iso/livedvd-amd64-multilib-20160514.iso" loopback loop $isofile linux (loop)/isolinux/gentoo root=/dev/ram0 init=/linuxrc aufs looptype=squashfs loop=/image.squashfs cdroot isoboot=$isofile vga=791 splash=silent,theme:default console=tty0 initrd (loop)/isolinux/gentoo.xz }
GParted Live
menuentry "[loopback]gparted-live-0.28.1-1-amd64" { set isofile="/boot/iso/gparted-live-0.28.1-1-amd64.iso" loopback loop $isofile linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap noeject toram=filesystem.squashfs ip= nosplash findiso=$isofile initrd (loop)/live/initrd.img }
Kali Linux
menuentry "[loopback]kali-linux-1.0.7-amd64" { set isofile='/boot/iso/kali-linux-1.0.7-amd64.iso' loopback loop $isofile linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali initrd (loop)/live/initrd.img }
Knoppix
menuentry "[loopback]KNOPPIX_V7.4.2DVD-2014-09-28-EN" { set isofile="/boot/iso/KNOPPIX_V7.4.2DVD-2014-09-28-EN.iso" loopback loop $isofile linux (loop)/boot/isolinux/linux bootfrom=/dev/sda2$isofile acpi=off keyboard=us language-us lang=us initrd (loop)/boot/isolinux/minirt.gz }
Linux Mint
menuentry "Linux Mint 17.2 Cinnamon LTS RC (x64)" { set iso=/boot/iso/linuxmint-17.2-cinnamon-64bit.iso loopback loop $iso linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$iso noeject noprompt initrd (loop)/casper/initrd.lz }
openSUSE
標準インストールメディア
menuentry '[loopback]openSUSE-13.1-DVD-x86_64' { set isofile='/boot/iso/openSUSE-13.1-DVD-x86_64.iso' loopback loop $isofile linux (loop)/boot/x86_64/loader/linux install=hd:$isofile initrd (loop)/boot/x86_64/loader/initrd }
デスクトップライブメディア
menuentry '[loopback]openSUSE-13.1-KDE-Live-x86_64' { set isofile='/boot/iso/openSUSE-13.1-KDE-Live-x86_64.iso' loopback loop $isofile linux (loop)/boot/x86_64/loader/linux isofrom_device=$imgdevpath isofrom_system=$isofile LANG=en_US.UTF-8 initrd (loop)/boot/x86_64/loader/initrd }
Parabola GNU/Linux-libre
menuentry '[loopback]parabola-2015.07.01-dual.iso' { set isofile='/boot/iso/parabola-2015.07.01-dual.iso' loopback loop $isofile linux (loop)/parabola/boot/x86_64/vmlinuz parabolaisolabel=PARA_201507 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop initrd (loop)/parabola/boot/x86_64/parabolaiso.img }
Sabayon
menuentry '[loopback]Sabayon_Linux_14.05_amd64_KDE' { set isofile='/boot/iso/Sabayon_Linux_14.05_amd64_KDE.iso' loopback loop $isofile linux (loop)/boot/sabayon root=/dev/ram0 aufs cdroot locale=en_US loop=/livecd.squashfs looptype=squashfs isoboot=$isofile initrd (loop)/boot/sabayon.igz }
Slackware Linux
menuentry '[loopback]slackware64-14.1-install-dvd' { set isofile='/boot/iso/slackware64-14.1-install-dvd.iso' loopback loop $isofile linux (loop)/kernels/huge.s/bzImage printk.time=0 initrd (loop)/isolinux/initrd.img }
SystemRescueCD
menuentry '[loopback]systemrescuecd-x86-4.5.2' { set isofile='/boot/iso/systemrescuecd-x86-4.5.2.iso' loopback loop $isofile linux (loop)/isolinux/rescue64 isoloop=$isofile initrd (loop)/isolinux/initram.igz }
Slitaz
まず、slitaz の iso をダウンロードしてから、どこかに展開してください (この例では /dev/sda3 の /live/slitaz-4.0)。
menuentry 'slitaz-4.0 core' { set dir='/live/slitaz-4.0' set root=(hd0,msdos3) set lang='pt_BR' set kmap='br-abnt2' linux ($root)/$dir/bzImage lang=$lang kmap=$kmap rw root=/dev/null vga=normal autologin initrd ($root)/$dir/rootfs4.gz ($root)/$dir/rootfs3.gz ($root)/$dir/rootfs2.gz ($root)/$dir/rootfs1.gz }
Slax
まず、Slax の zip (USB 用) をダウンロードして、どこかに展開してください (この例では /dev/sda3 の /live/slax)。
menuentry 'slax' { set dir=/live/slax set root=(hd0,msdos3) linux $dir/boot/vmlinuz from=$dir vga=normal load_ramdisk=1 prompt_ramdisk=0 printk.time=0 slax.flags=perch,xmode initrd $dir/boot/initrfs.img }
Spinrite
menuentry "Spinrite" { set gfxpayload=text set isofile="/boot/iso/spinrite.iso" set memdisk="/boot/iso/memdisk4.05" linux16 (hd1,gpt3)$memdisk iso initrd16 (hd1,gpt3)$isofile }
Tails
Tails の iso をダウンロードして整合性を確認してください。
menuentry "[loopback]tails-i386-1.5.iso" { set isofile='/boot/iso/tails-i386-1.5.iso' loopback loop $isofile linux (loop)/live/vmlinuz2 boot=live config findiso=${isofile} live-media=removable apparmor=1 security=apparmor nopersistent noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 noautologin module=Tails initrd (loop)/live/initrd2.img }
iso ファイルがリムーバルメディア上にない場合は live-media=removable
オプションを削除してください。
Ubuntu
menuentry '[loopback]ubuntu-14.04.1-desktop-amd64' { set isofile='/boot/iso/ubuntu-14.04.1-desktop-amd64.iso' loopback loop $isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale=en_US.UTF-8 initrd (loop)/casper/initrd.lz }
Xubuntu (32ビット)
menuentry '[loopback]Xubuntu-16.04-desktop-i386' { set isofile='/boot/iso/xubuntu-16.04-desktop-i386.iso' loopback loop $isofile linux (loop)/casper/vmlinuz file=/cdrom/preseed/xubuntu.seed boot=casper iso-scan/filename=$isofile quiet splash --- initrd (loop)/casper/initrd.lz }
Windows のチェインロード
Windows のインストールディスクをループバックするのは難易度がとても高くなります。単一かつ統一されたパーティションが含まれた USB ドライブから様々なプラットフォームをインストールできるようにする解決方法は、ブータブルな Windows USB ドライブを使用して、Windows のブートローダーを GRUB で置き換えることです。
GRUB をインストールする前に、Windows のブートローダーの名前を変更するか移動してください。デフォルトの .efi 実行ファイルとして存在し、64ビット環境なら (USB)/efi/boot/bootx64.efi
にあります。そこに GRUB をインストールして、GRUB がデフォルトの実行ファイルとして使われるようにしてください。
名前を変えた Windows のブートローダーに GRUB からチェインロードして、上述の .iso ファイルをループバックするように GRUB を設定します。
menuentry '[chain]en_windows_8.1_professional_x64' { insmod chain chainloader /efi/boot/bootx64.efi.windows }
Syslinux と memdisk を使う
memdisk モジュールを使うことで、ISO イメージをメモリにロードして、ブートローダーをロードすることができます。イメージファイルをロードしてオペレーティングシステムを実行できるのに十分なメモリ容量が USB ドライブを起動するシステムに存在することを確認してください。
準備
USB ドライブを適切にパーティショニングして Syslinux によってサポートされている fat32 や ext4 などのファイルシステムでパーティションを作成してください。それから、Syslinux をパーティションにインストールします。Syslinux#インストール を参照。
memdisk モジュールのインストール
Syslinux のインストール時に memdisk モジュールはインストールされてないため、手動でインストールする必要があります。Syslinux をインストールしたパーティションを /mnt/
にマウントして memdisk モジュールを Syslinux がインストールされているディレクトリにコピーしてください:
# cp /usr/lib/syslinux/bios/memdisk /mnt/boot/syslinux/
設定
USB ドライブに ISO ファイルをコピーした後、Syslinux の設定ファイルを編集して ISO イメージのメニューエントリを作成してください。ベーシックなエントリは以下のようになります:
boot/syslinux/syslinux.cfg
LABEL some_label LINUX memdisk INITRD /path/to/image.iso APPEND iso
設定オプションについて詳しくは memdisk on Syslinux wiki を見て下さい。
32ビット環境の注意事項
128MiB 以上のイメージから32ビット環境を起動する場合、vmalloc の最大メモリ使用量を増やす必要があります。カーネルパラメータに vmalloc=valueM
を追加することで増やせます。value
は ISO イメージの容量も大きい値を MiB で指定してください [2]。
例えば Arch インストール ISO から32ビット環境を起動する場合、Boot Arch Linux (i686)
エントリの上で Tab
キーを押して末尾に vmalloc=768M
を追加してください。この設定をしないと起動時に以下のエラーが表示されます:
modprobe: ERROR: could not insert 'phram': Input/output error