UEFI 環境のノートPC(VAIO Pro 11)への Ubuntu 13.10 のインストール 0.0. はじめに UEFIのデスクトップPCへのubuntu のインストールについては 既報(uefi.txt参照)のとおりだが、ノートPCはそれぞれ特有の 状況があって苦労したのでメモを残しておく。 まずは失敗した試みから書いて、最後に成功したケースを書く。 0.1. Windows のブートローダを使おうとして失敗 VAIO Pro 11 は Windows 8.1 がプリインストールされており、Ubuntu を インストールしてもどちらかというと Windows の方が使用機会は多いと 思われたので、なるべく Windows 環境を壊さないで Ubuntuをインストール しようとして最初は Windowsのブートローダを使おうとした。デスクトップ の時と違って今なら Ubuntu も Japanese Remix が 64ビット対応なので、 それをインストール。インストール自体は問題なく進むが、Windowsの ブートメニューには出てこない。VAIO Pro は EFIメニュー(昔のBIOSメニュー) を出すには電源OFFの状態から assistボタンを押してBIOS設定を選ぶ。 デスクトップ機の時は、これで EFIメニューに出てきたが、VAIO では BIOSのBootメニューは「Internal Disk」と「External Device」の2択 しかなく内部ディスクの詳細は出てこない。 bcdedit で何とかメニューに登録できないかと思ったが、コマンドライン よりは使いやすそうな EasyBCD を使ってみると、ディスクの EFIパーティ ションには ubuntu の efiファイルがあって登録されている。しかしどう やってもメニューに出してブートできないのであきらめて EasyBCD を アンインストールしたところ奇妙な現象に遭遇した。 コマンドプロンプトから bcdedit を起動できない。エクスプローラで 見ると bcdedit.exe が存在しダブルクリックで実行もできる(一瞬コマンド プロンプトが開いてブート情報がでるのが見える)。しかしコマンドプロンプト から bcdedit.exe があるはずのフォルダに行き dir コマンドなどで見ても bcdedit.exe が表示されず、実行しようとしても「そんなコマンドないよ」 と言われる。これは管理者権限でコマンドプロンプトを開いても同じ。 エクスプローラでは見えるので確認しても隠しファイルでも何でもない。 結局、原因不明で気持ち悪いのでリカバリー領域からリカバリーした。 (どなたか同様の現象および原因をご存じの方はご一報を) 0.2. grub2 を使おうとして最初は失敗 grub4dos を使って Windows側から grubをと思ったがうまくいかず。 grub2 を普通に使うように方針変更したが、最初はうまくいくものの、いったん grubメニューに登録した Windows を起動すると Ubuntu が起動しなくなる。 Boot repair を使えばというようなサイトも見たので、使ってみるも、 Windowsも起動しなくなる。しかもリカバリー領域からのリカバリーも できない。やむなくリカバリーメディアからリカバリーする。 (ちゃんとリカバリーメディアを作っておくのは必須です) 0.3 efi ファイルを Ubuntu のものに差し替えるも失敗 grubを使ってデュアルブートに成功した人の情報を見て、EFIパーティション の Windows由来の bootmgfw.efi を Ubuntu由来の grubx64.efi に差し替え。 これでうまく行くかと思いきや、やはり Windows を起動するとおかしくなる。 調べてみると差し替えたはずの bootmgfw.efi が元に戻っている。他にも 差し替えるべきところがあるようだ。いじってるうちに EFIパーティションの Boot にある bootmgfw.efi までサイズ0になったりしておかしくなったので、 またまたリカバリーメディアからリカバリー。(都合3回ほどやったかな?) ということで結局うまく行った方法を以下にメモしておく。 1. 準備 BIOS設定で以下の設定をする。 ・Secure Boot -> Disable ・Boot mode -> UEFI ・External Dvice Boot -> Enabled ・Select 1st Boot Priority -> External Device (・Intel(R)AT Support System -> Disabed とせよとのことだがこれはデフォルト) また、後で Windows パーティションのファイルもいじるので、Windowsの コントロールパネルから電源オプションにある「高速起動」のチェックを はずしておく。 2. 領域確保 Windows のディスク管理で、Windowsパーティションを縮小して空ける。 今回は15GBほどとった。 3. Ubuntu のインストール 外付けDVDドライブをUSBに繋ぎ、Ubuntu 13.10 のDVDを入れてブート。 インストール場所の選定では「その他」を選び、メモリ8Gあるので最初は swapを取らず / を上記の空パーティション(今回は /dev/sda7)にインストール するよう設定。ブートローダ(grub)のインストール先は/dev/sda7 に。 ubuntuのefiファイルは自動的に EFIパーティション(今回は/dev/sda3)の ubuntuフォルダに入る。 4. efiファイルの差し替え Ubuntuをインストールしただけでは EFIパーティションにあるブート用の efiファイルがWindowsのままなので差し替える。 (Windows環境で bcdedit /enum all として見るとWindowsで使われるefi ファイルがどこにあるかわかるようだ。VAIO の場合は、 \EFI\Microsoft\Boot\bootmgfw.efi となるようだ。) Ubuntu のDVDを起動し、Try Ubuntu で起動。起動したら端末を開いて、 次のようにする。 # cd /boot # sudo mkdir efi # sudo mount -t vfat /dev/sda3 /boot/efi # cd /boot/efi/EFI/Microsoft/Boot # sudo cp bootmgfw.efi bootmgfw.efi.org # sudo cp ../../ubuntu/grubx64.efi bootmgfw.efi # cd / # sudo umount /boot/efi (EFI/Boot にある bootx64.efi も念のために同様にコピーしておいてから 差し替えたが、これは結果的には関係なさそう。また次に書くように Windows にある efi ファイルも差し替えるために grubx64.efi を別のところにコピー。 例えば、# sudo cp ../../ubuntu/grubx64.efi /mnt ) これだけだと 0.3. で、書いたようにいったん Windowsを起動したら元に 戻ってしまう。原因は Windowsパーティションの \Windows\Boot にある efi ファイルがコピーされるためのようなので、これも差し替える。 # cd /mnt # sudo mkdir win # sudo mount -t ntfs /dev/sda5 /mnt/win # cd /mnt/win/Windows/Boot/EFI # sudo cp bootmgfw.efi bootmgfw.efi.org # sudo cp /mnt/grubx64.efi bootmgfw.efi # cd / # sudo umount /mnt/win 5. Ubuntu の起動 再起動すると grubメニューが出るので Ubuntu を起動。 grubメニューには Windowsも登録されているが、これを選んでもうまく 起動しないそうなので、grubメニューに Windows起動用メニューを登録。 この時 EFIパーティションの UUIDが必要なので、あらかじめ blkid コマンドなどで調べておく(以下の 0848-F94B の部分がそう)。 # sudo vi /etc/grub.d/40_custom # (コメントだけなので、その最後に次を追加) menuentry "Windows Boot Manager (SONY Original)" { insmod part_gpt insmod fat set root='(hd0,gpt3)' search --no-floppy --fs-uuid --set=root 0848-F94B chainloader /EFI/Microsoft/Boot/bootmgfw.efi.org } # sudo update-grub 6. デュアルブートの確認 再起動して grubメニューから Ubuntu と Windowsが起動することを確認。 7. その後の注意 grubメニューの変更(順番や不要なメニューの整理)には grub-customizer を使えば良いようだ。 やっかいなのは、Windows update をすると \Windows\Boot\EFI にある bootmgfw.efi が更新され、EFIパーティションの \EFI\Microsoft\Boot にもコピーされてしまうようで、grubメニューが出ず Windowsが起動する ようになってしまう。この場合は Ubuntu のDVDで起動して、Try Ubuntu で Ubuntu を起動し、4. の手順と同様の差し替えをすれば、再び grub メニューで出るようになる。 以上。(2014年4月22日記)