対象とするUbuntuのバージョン
- UEFIでインストールされているUbuntuすべて
はじめに
今は手軽にUSBメモリーにLive環境を構築してくれるソフトがあります。
ここでは、そういったソフトを使わずにUEFI環境でISOイメージから起動できるUSBメモリーを構築する手順を書いておきます。
自分自身詳しい訳ではないので、こうやったら出来たという程度の認識でお願いします。
これでやってみたこと
- rEFInd Boot Managerを使ったマルチブート。( Windows10 , Ubuntu14.04 , Debian Jessie )
- UEFI環境での起動に対応していないISOイメージをUEFI環境として起動。例えば、Debian Wheezy , ubuntu-defaults-builder で作成したISOイメージ等。
Debian WheezyのISOイメージを組み込み、VirtualBoxのvdiイメージに変換、これを利用してUEFI環境の仮想PCでインストール。( VirtulBox環境下(EFI) で起動するには shell での操作や startup.nsh の作成が必要ですが、この vdi イメージで起動すると rEFInd Boot Manager が自動的に起動して起動したいカーネルを選択・操作できます。)
今回の修正で変わったこと
- ドライブの構成が変わっても追従できる様になりました。
揃えるもの
- UEFI でインストール・動作しているUbuntu PC
- USBメモリー
- Ubuntu日本語Remix 14.04 , 15.10 (amd64) のISOファイル
Ubuntuのリリースイメージ・ミラーサイト : www.ubuntulinux.jp から入手してみて下さい。
- ubuntu-ja-14.04-desktop-amd64.iso
- ubuntu-ja-15.10-desktop-amd64.iso
ここでの操作には端末 : 内部リンクを使います。
作り方
USBメモリーにパーティション&ファイルシステムを構築。
予め、認識しているUSBメモリーのデバイスファイル名 (/dev/sdb 等) を確認してください。
ラベル名を設定しておくと後々認識しやすいかもしれません。
gparted を使う場合は、
GPT
容量
ラベル
partition1
fat32 (EF00)
300MB
etc10-fat32
partition2
ext4 (8300)
残り容量
etc10-ext4
gdisk (ここでは sgdisk) を使う場合は以下の様にします。
事故防止の為、
/dev/sdXY
/dev/sdXZ
に置き換えます。X ⇒ b , Y ⇒ 1 , Z ⇒ 2 と考えて下さい。
※ 以下の C12A7328-F81F-11D2-BA4B-00A0C93EC93B は ESP : EFI System Partition (EF00) , EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 は Linux (8300) を示すパーティションのGUIDです。
※ 一覧は Partition type GUIDs : en.wikipedia.org をご覧ください。
sudo sgdisk -Z /dev/sdX sync sudo sgdisk -o /dev/sdX sync sudo sgdisk \ -n 1::+300M \ -n 2::: \ -t 1:C12A7328-F81F-11D2-BA4B-00A0C93EC93B \ -t 2:EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 \ /dev/sdX sync sudo mkfs.fat -F32 -n etc10-fat32 /dev/sdXY sync sudo mkfs.ext4 /dev/sdXZ sync ※ ここでシステムが自動マウントして以下のコマンドの実行に失敗するかもしれません。sudo umount <mount point> を実行してから以下を実行して下さい。 sudo e2label /dev/sdXZ etc10-ext4 sync- デバイスファイルの確認
sudo blkid [省略] /dev/sdb1: LABEL="etc10-fat32" UUID="49DA-1CDC" TYPE="vfat" /dev/sdb2: LABEL="etc10-ext4" UUID="92d02a95-fce6-4f93-9546-d25ba215d8ca" TYPE="ext4"
/dev/sdb がUSBメモリーです。
USBメモリーにGRUB 2をインストール
事故防止の為、
/dev/sdXY
/dev/sdXZ
に置き換えます。X ⇒ b , Y ⇒ 1 , Z ⇒ 2 と考えて下さい。
sudo mount /dev/sdXZ /mnt sudo mkdir -p /mnt/boot/efi sudo mount /dev/sdXY /mnt/boot/efi sudo grub-install --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot /dev/sdX sudo umount /mnt/boot/efi sudo chmod 777 -R /mnt/boot sudo umount /mnt sync
USBメモリーを抜き挿しして下さい。
ISOファイルをUSBメモリーにコピーする。
ファイルマネージャーに etc10-ext4 という名前のアイコンが表示されていると思いますのでクリックしてウィンドウを開きます。
boot ディレクトリーがありますので開きます。
ここに、
ubuntu-ja-14.04-desktop-amd64.iso
ubuntu-ja-15.10-desktop-amd64.iso
および、空のファイルである
- isoboot.txt
をコピーします。
grub.cfg をUSBメモリーに作成する。
4. の時点で開いている boot ディレクトリー内にある grub ディレクトリーを開きます。 ここで grub.cfg という名前のファイルを作り、下の枠内の内容を grub.cfg へコピー&ペーストして保存します。insmod iso9660 insmod part_gpt insmod fat insmod ext2 set dafault=0 set timeout=20 search --file --set rootpart /boot/isoboot.txt menuentry 'ubuntu-ja-15.10-desktop-amd64.iso' { set isofile="/boot/ubuntu-ja-15.10-desktop-amd64.iso" loopback loop ($rootpart)$isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile debian-installer/language=ja keyboard-configuration/layoutcode?=jp keyboard-configuration/modelcode?=jp106 noeject quiet splash -- initrd (loop)/casper/initrd.lz } menuentry 'ubuntu-ja-14.04-desktop-amd64.iso' { set isofile="/boot/ubuntu-ja-14.04-desktop-amd64.iso" loopback loop ($rootpart)$isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile debian-installer/language=ja keyboard-configuration/layoutcode?=jp keyboard-configuration/modelcode?=jp106 noeject quiet splash -- initrd (loop)/casper/initrd.lz }
rEFInd Boot Manager
- GRUB 2をインストールした直後では起動するのですが、USBメモリーを一旦外すとUEFIの起動ドライブ選択画面で認識しないPCがあるようです。(それが普通なのかはわかりませんが。)
これを解決するのが rEFInd Boot Manager : 内部リンク です。 対象のUSBメモリーにインストールしておけば手間なしでUSBメモリーに入っているシステムを起動できます。 また他のストレージにWindows10やUbuntu等が入っていたら自動認識されるので便利です。
- インストール
The rEFInd Boot Manager : Getting rEFInd から A binary zip file を入手して同ページの Tip の要領でインストールします。
事故防止の為、
/dev/sdXY
に置き換えます。X ⇒ b , Y ⇒ 1 と考えて下さい。
まず、zip を解凍します。端末 : 内部リンクを開いて、解凍した時に出来たディレクトリーへ移動し
bash install.sh --usedefault /dev/sdXY --alldrivers
と入力・実行します。
USBメモリーで再起動
PCを再起動したらrEFIndのメニューが表示されます。多くのアイコンが表示されている場合は基本的にデフォルトで大丈夫だと思います。デフォルトから変更して選択したい場合はアイコンの下に先に設定したラベル名 etc10-fat32 等が表示されていますのでこれをもとに選択すると良いです。
ISOファイルを追加したい場合
ISOファイルを 4. の様にコピーし、 5. の枠内の様にメニューエントリーを追加すれば良いです。 sudo update-grub では駄目です。
内部リンク
rEFInd Boot Manager : 内部リンク
端末 : 内部リンク
外部リンク
Grub2 Installing : help.ubuntu.com
MaintenanceFreeCustomGrub2Screen#Making_the_custom_Grub2_Menu_entries : help.ubuntu.com
Installing Grub2 for EFI and BIOS mode on USB drive : ubuntuforums.org
The rEFInd Boot Manager : www.rodsbooks.com
Partition type GUIDs : en.wikipedia.org