yagshi's website
古いVAIO Z (SVZ*)にlinuxとWindowsをインストールするメモ

古い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の換装などをした方、ご参考にどうぞ。

手順

  1. UEFI 領域を作る
    Linux のインストーラあたりを使って UEFI 領域を作ります。 Linux はまだインストールしません。(してもいいですが、たぶん

  2. Windows をインストールする
    Windows 10 PC を使って USB 起動するインストーラを作り、 それを使ってインストールします。このとき前項の UEFI 領域が ないと、なしのままインストールされてしまうようなので注意。 インストールが完了したら必要な場合はディスクの管理ツールか何かで Linux の領域を確保してください。

  3. Linux をインストールする
    インストールしてください。インストールは問題なく終わりますが、 たぶん grub が起動しません。Windwos が起動してしまいます。 Windows の再起動オプションにも UEFI ファームウェア云々が 現れません。この辺がたぶんこのような全初期化した古い VAIO の 特徴なのだと思います。

  4. 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 になっちゃう。(続く)

  1. 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年現在でも) まだまだ戦えそうです。

	
VAIO Z with grub