UEFI環境のVAIOでUbuntu17.04とWindows10のデュアルブート

手元のVAIOデュアルブートした際の備忘録。

はじめに

なんやかんやまたデュアルブート

目次

  • 環境
  • .efiの置き換え
  • GRUBのメニューにあるWindowsを修正
  • GRUBのデフォルトの項目を変更したり

環境

VAIO Sシリーズ(SVS13119GJB)
UEFI
Windows 7 Professional → Windows 10 Pro
Ubuntu 17.04(Zesty Zapus)

.efi の置き換え

前提

端末にはWindows10がインストールされてて、Ubuntuを足す。

インストー

www.ubuntu.com

メモ

問題

上記の流れでインストールしたけど、GRUBが起きずWindowsがブートする。
Windows Boot Managerが起きてる

原因

Windowsのcmd(管理者として実行)で、

 > bcdedit

を実行すると、/EFI/Microsoft/Boot/bootmgfw.efiが指定されてた。


Microsoftのドキュメントにも書いてあった。
UEFI 用の BCD ステム ストアの設定


VaioPro11 Win /Fedoraデュアルブート | @Canter
によると、

VAIOVAIO Pro初代はUEFIにAMI製Aptioのカスタムイメージを搭載しており 一見すると昔ながらのBIOSっぽい見た目です。 これがちょっと厄介で、UEFIのBootEntoryを見ることができません。 また、aptioの画面に入る前、起動直後に VAIOレスキューモード と呼ばれる独自のUEFIアプリが挟み込まれています。

そしてこのVAIOの独自ソフトは (UEFI領域)EFI/Microsoft/Boot/bootmgfw.efi を狙い撃ちで起動するようになっています。

らしい。VAIO独自ソフトととやらの設定を確認したかったけど、わかりませんでした…。

対策

bootmgfw.efiGRUBefiにする。
以下は、LiveUSBのターミナルで作業。

$ cd /mnt/
$ sudo mkdir efi
# タイプ/デバイスは適宜読み変えてください
# "$ sudo blkid" で調べる
$ sudo mount -t vfat /dev/sda3 /mnt/efi
$ cd /mnt/EFI/Microsoft/Boot/
$ sudo cp bootmgfw.efi bootmgfw.efi.org
$ sudo /mnt/EFI/ubuntu/grubx64.efi bootmgfw.efi
$ cd
$ sudo umount /mnt/efi

再起動すると、GRUBが起きる。
けど、このままじゃGRUBのメニューにあるWindowsを選択しても起きない問題が…

GRUBのメニューにあるWindowsを修正

原因

/boot/grub/grub.cfg内のwindowsの項目のchainloaderにbootmgfw.efiが指定されてる。
→さっき置き変えたもの(GRUBefi)を起こしてしまう

対策

さっきコピーしておいた、bootmgfw.efi.orgを指定する。

GRUB2は直接grub.cfgを編集するのは御法度だけど、今回は強行する。

$ sudo vi /boot/grub/grub.cfg

- chainloader /EFI/Microsoft/Boot/bootmgfw.efi
+ chainloader /EFI/Microsoft/Boot/bootmgfw.efi.org

再起動して、GRUBからWindowsが起動したら大丈夫

GRUBのデフォルトの項目を変更したり

初期だとGRUBメニューの一番上の項目(Ubuntuのブート)がデフォルトだから変更。ついでに時間も変更。

$ sudo vi /etc/default/grub

# 値はメニューのインデックス(一番上は0)
# 2はWindows Boot Managerだった
- GRUB_DEFAULT=0
+ GRUB_DEFAULT=2

- GRUB_TIMEOUT=10
+ GRUB_TIMEOUT=5
$ sudo update-grub2

これで /boot/grub/grub.cfgが更新される。
(たださっきのchainloaderも書き変わるから、もう一回する)

おわりに

.efi を置き換えたり、grub.cfgを直接編集したりかなり強引な事してるので、あくまで自己責任で。
もっと良い方法があれば更新しようかと。