4
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

マルチブートUSBの作り方(Windows10対応)

Posted at

概要

USBメモリへ複数のOSインストールISOファイルを配置し,ブートローダをインストールすることで,マルチブートなUSBメモリを作成する.
手順として,まずWindows10のインストーラを作成したのち,そこへGRUBをインストールする.GRUBから各種LinuxOSのインストーラISOファイルを読み込ませたり,Windowsのインストーラへチェインロードすることで,マルチブートを実現する.

必要なもの

  • Windows10 マシン
  • Arch Linux マシン(他のディストリビューションでも可能)
  • USBメモリ(16GB以上推奨)

手順

Windowsでの作業

インストーラーにしたいUSBメモリをあらかじめWindowsマシンに挿入しておく.
最低8GB必要な上,他のLinuxディストリビューションのISOを配置するので,なるべく大容量のものを選択する.

Microsoftのメディア作成ツールをダウンロードする.
上記ページより「MediaCreationToolXXXX.exe」をダウンロードして起動する.「XXXX」のところにはインストールするバージョンが入る.

起動したツールの説明に従い,USBメモリにOSインストーラを作成する.
インストーラが作成できた旨が表示されれば成功.一先ずWindowsでの作業は終わり.

インストーラはFAT32で作成されるため,大容量のUSBメモリを利用しても32GBのパーティションに区切られる.Windowsのディスク管理から残った領域を別パーティションとして利用することもできる.

Linuxでの作業

作成したインストーラUSBメモリをLinuxマシンへ挿入する.また必要なLinux ISOファイルを用意しておくこと.

以下,Arch Linuxを前提に進める.他のディストリビューションではソフトウェア名称やオプション等が異なる場合がある.本稿で説明するGRUBのバージョンはGRUB2である.

まずGRUBをインストールする.

sudo pacman -S grub

USBメモリをマウントする.アクセス可能になったら,/mnt/usb/efi/boot/bootx64.efiをリネームし,bootx64.efi.windowsとする.

mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb

mv /mnt/usb/efi/boot/bootx64.efi /mnt/usb/efi/boot/bootx64.efi.windows

USBメモリにGRUBをインストールする.

grub-install --target x86_64-efi --efi-directory /mnt/usb --boot-directory=/mnt/usb/boot --removable

次にGRUBの設定ファイルを作成する.パーティションのUUIDを記述する必要があるため,先に調べておく.XXXX-XXXXのようなハイフン区切りの8桁の文字列を取得する.

lsblk -f | grep /mnt/usb

コンフィグファイルの書き方はArch Wikiを参考にする.Ubuntu18.04に関してはWikiのUbuntuの情報が古いため以下を参照したほうがよい.Arch Linux,CentOS7,Ubuntu 18.04 Serverの該当するバージョンのISOファイルを用意するか,ISOファイルのバージョンに合わせて該当箇所を修正する.ISOファイルは/mnt/usb/boot/isoディレクトリを作成し,そこにファイルを配置する.Windows10は最初にインストールしたものをチェインロードして起動する.作成したコンフィグファイルは/mnt/usb/boot/grub/grub.cfgとして保存する.grub.cfgの2行目のUUIDは先程取得したものを指定する.

mkdir /mnt/usb/boot/iso
vim /mnt/usb/boot/grub/grub.cfg
grub.cfg
# path to the partition holding ISO images (using UUID)
set imgdevpath='/dev/disk/by-uuid/XXXX-XXXX'

insmod all_video

menuentry '[loopback]archlinux-2020.03.01-x86_64' {
	set isofile='/boot/iso/archlinux-2020.03.01-x86_64.iso'
	loopback loop $isofile
	linux (loop)/arch/boot/x86_64/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile
	initrd (loop)/arch/boot/x86_64/archiso.img
}

menuentry "[loopback]CentOS-7-x86_64-Minimal-1908" {
	set isofile='/boot/iso/CentOS-7-x86_64-Minimal-1908.iso'
	loopback loop $isofile
	linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:/dev/sdb1:/$isofile
	initrd (loop)/isolinux/initrd.img
}

menuentry '[loopback]ubuntu-18.04.4-live-server-amd64' {
	set isofile='/boot/iso/ubuntu-18.04.4-live-server-amd64.iso'
	loopback loop $isofile
	linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile locale=en_US.UTF-8
	initrd (loop)/casper/initrd
}

menuentry '[chain]Win10_1909_Japanese_x64' {
  insmod chain
  chainloader /efi/boot/bootx64.efi.windows
}

各種ファイルの配置をしたら作業は終了.
OSインストールしたいマシンに挿入し,起動時にBIOSのブートメニューからUSBのパーティション1を選択する.GRUBのメニューが表示されれば成功.

参考文献

4
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?