古いVAIO Z (SVZ*)にlinuxとWindowsをインストールするメモ
概要
研究室のとても古い [VAIO Z (SVZ1311AJ)[“https://www.sony.jp/support/vaio/products/sv/svz1311aj.html] が、いろいろあってSSDを完膚なきまで完全に初期化してしいました。 リカバリもUEFI領域も全部消去。その状態から UEFI モード(?)で Linux と Windows のデュアルブート環境を再構築するメモです。 最近の PC ならそんなに苦労はないと思いますが、 UEFI のごく初期のラップトップということでなんかとても面倒でした。 素直に(UEFIじゃなくて)legacy にしておけばもっと簡単だったかも……。
この記事はSVZ1311について書いていますが、恐らくこの当時の 他のハイエンドVAIO(VAIO Pro 11/13, VAIO duo 等)も同じじゃないかと思います。 HDD/SSDの換装などをした方、ご参考にどうぞ。
手順
-
UEFI 領域を作る
Linux のインストーラあたりを使って UEFI 領域を作ります。 Linux はまだインストールしません。(してもいいですが、たぶん -
Windows をインストールする
Windows 10 PC を使って USB 起動するインストーラを作り、 それを使ってインストールします。このとき前項の UEFI 領域が ないと、なしのままインストールされてしまうようなので注意。 インストールが完了したら必要な場合はディスクの管理ツールか何かで Linux の領域を確保してください。 -
Linux をインストールする
インストールしてください。インストールは問題なく終わりますが、 たぶん grub が起動しません。Windwos が起動してしまいます。 Windows の再起動オプションにも UEFI ファームウェア云々が 現れません。この辺がたぶんこのような全初期化した古い VAIO の 特徴なのだと思います。 -
UEFI 領域をいじる (ここがメイン)
(この節はかなり想像に基づいています。ぼくはこれでうまく行きましたが、 その理屈は間違えているかも知れないし、もっとエレガントな方法が あるかも知れません。)
たぶん、この VAIO は起動すると UEFI 領域のMicrosoft/Boot/bootmgfw.efi
を 決め打ちで 実行するのだと思います。 ですので grub は無視される。そこで、このファイルを grub に 置き換えます。以下、Debian での操作です。
# cd /boot/efi/EFI/Microsoft/Boot
# mv bootmgfw.efi bootmgfw_win.efi ←Windowsのブートローダの名称変更
# cp ../../debian/grubx64.efi bootmgfw.efi ←grubに差し替え
これで再起動すると無事 grub が起動します。……が、今度は Windows が 起動しなくなってしまいます。そう、grub メニューに現れる Windows は 当然ですが bootmgfw.efi を指していて、これは他ならぬ grub 自身です。 つまり、Windows を選択しても再び grub になっちゃう。(続く)
- grub.cfg に手作業パッチ (定期的にやる必要がある)
で、どうするかというと、ちょっとやり方しょぼいですが、grub の メニューを手作業で変更しました。このやり方だと、OS のアップデート 等で grub がインストールされるとその都度やり直す必要があります。 (もうちょっといい方法思いついた方、教えてください。) あ、大きめの Windows Update 等でWindows のブートローダが 再インストールされた場合は前項「UEFI領域をいじる」からやり直しです。
# vi /boot/grub/grub.cfg
(エディタ内)
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
↑この行を↓このようにする。
chainloader /EFI/Microsoft/Boot/bootmgfw_win.efi
はい、こんなふうに幸せな環境になりました。8年も前のPCですが、 さすがは VAIO Z、(2021年現在でも) まだまだ戦えそうです。