このポストは
Windows8.1に対してWindows Updateしたところ、何だかわからないがデュアルブートしなくなって焦ったため、
直し方というか、そもそもどうやってデュアルブートにしているかをメモしておくための記事。
件のPCについて
以下のようなPCと、その中身の構成にしている。
– PC本体:Vaio Pro 13
– OS:Arch LinuxとWindows8.1のデュアルブート
デュアルブートのためにしたこと - まずは普通にArch Linuxをインストール
- Arch Linux起動のためのUSBメモリを作成。ここはWindowsを使う。
USB Installation Media(日本語) - Arch LinuxのWiki なんかが参考になる。
- Windowsを使ってLinux向けのパーティションを切る。
「管理」を使ってやる。ブート パーティンションを作成する - Microsoftのページ等が参考になる。
とにかく何か領域が空いていればいい。うちの構成では180GB程度確保した。
少なくとも30GBくらいいるかな?
- Arch Linux起動用のUSBを挿した状態でPCを起動し、USBからのブートを行う。
あとは↑で作ったパーティションにArch Linuxをインストールしていく。詳しくはやはりArch LinuxのWiki参照。
– パーティションのフォーマット。割り当て可能領域はすべて割り当て。EFIパーティションにする必要はない。普通ので。
– /mnt にフォーマットしたパーティションをマウント。mount /dev/sda5 /mnt
← うちの環境の場合。
– chrootする。arch-chroot /mnt
で。
– Arch Linuxのインストール。 pacman -S base base-devel
とかやる。
– genfstab とかそういったことをこまごま行う。
– ブートローダのインストール。ブートローダにはgummibootを採用した。
mount /dev/sda2 /boot/EFI
cd /boot/EFI
gummiboot install
ここまでで勝手にデュアルブートしてくれたら嬉しかったが、そうはいかなかった(本来はこれだけでOKらしい)。
Vaioのせいなのか、Windowsのせいなのか。。
デュアルブートのためにしたこと - 無理やりgummibootを使わせる
上記までで何が起きるかというと、、、
どうやら、せっかくgummibootで設定したブートの設定がPC起動時になかったことにされてしまう模様。
つまりWindowsが問答無用で起動される状態に戻ってしまう。VaioのせいなのかWindowsのせいなのか。。。
この点をちゃんと解決するのは諦めました。
諦めて、Windowsの起動に使われるファイルをgummibootのものと置き換えることでデュアルブートを実現。。
一応、やれればいいや、ということで。
- 先ほどのUSBからArch Linuxを起動し、無理やりgummibootを使わせるようにしにいく
– まず、EFIのパーティションをマウントする。
mount /dev/sda2 /mnt/boot/EFI
– Windows起動用のファイルとgummiboot起動用のファイルを置き換える。
— Windows起動用のファイル … /boot/EFI/Microsoft/boot/bootmgrfw.efi
— gummiboot起動用のファイル … /boot/EFI/gummiboot/gummibootx64.efi
上記のWindows起動用のファイルを、gummiboot起動用のファイルで上書きしてやると、、、
次回のPC起動時には、OS選択の画面が表示されるはず。上書きする前にバックアップしてあげてね。。。
Windowsアップデートのときに、bootmgrfw.efiが更新されちゃうことがあるっぽい
だのでWindowsアップデートでデュアルブートができなくなったりするんだろう。
デュアルブートできなくなったら、いちいちgummibootx64.efiをWindows起動用のファイルに上書きしてやる必要がある。