SONY社製 VAIO Pro 11
OS : Windows 8 Pro 64bit
CPU : Core i7 4500U
memory : 8GB
disk : SSD 256GB(GPT形式、UEFIブート方式)
wireless lan : Intel Wireless-N 7260
この方法でデュアルブートの設定をすると、windows updateの実行後に書き換えたbootmgfw.efiが元も戻ってしまい、windowsしかブートしなくなる現象が起こることを確認しています。
その場合は面倒ですが、Debain Installerを起動してbootmgfw.efiを再度上書きコピーすることで修復するワークアラウンドで対処しています。
VAIO社のVAIO Pro 13 mk2ではUEFIの上記仕様がデュアルブートしやすいように変わっているという話もあるようで、デュアルブートをお考えの方はVAIO社のVAIOを買うことをお勧めします。
Linuxで動くUSB接続の有線LAN機器を用意します。今回は、USB 3.0に対応したGbEであるPlannexのUE-1000T-U3を買いました。内蔵チップセットにax88179が使用されています。linux kernel-3.10系にはドライバが含まれているのでdebian unstableのdebian installerであれば利用することができます。
Windows8環境でCドライブのパーティションを縮小し、debianをインストールする領域を空けておきます。私はディスクの管理で最小と表示された120GBをCドライブ、残りを空き領域としました。後でここにlinuxのパーティションを作成します。
Debianをインストールします。私はunstableを使うので以下のURLからDaily buildイメージを持ってきます。利用するのはnetinstイメージのamd64版のISOイメージをダウンロードし 、USBメモリにddしておきます。
http://www.debian.org/devel/debian-installer/
Debianをインストールする前に、BIOSを以下に設定します。下記のとおり、UEFIでインストールします。後で設定するWindows8とのデュアルブートもUEFIブートのまま行います。
Intel(R) AT Support System -> Disabled
Secure Boot -> Disabled
External Device Boot -> Enabled
Select 1st Boot Priority -> External Device
Boot Mode -> UEFI
USB接続の有線LAN機器とdebian installerが入ったUSBメモリを差してPCを起動します。するとDebian installerが起動します。普通にインストールしていきます。余談ですがUEFIで起動したdebianインストーラを使うのは今回初めてでしたが、フレームバッファが有効でFullHDの解像度をフルに使えていたのはびっくりしました。
なお、ディスクのパーティション構成は以下にしてあります。
$ sudo parted GNU Parted 2.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Model: ATA SAMSUNG MZNTD256 (scsi) Disk /dev/sda: 256GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 274MB 273MB fat32 hidden 2 274MB 1819MB 1546MB ntfs hidden, diag 3 1819MB 2092MB 273MB fat32 EFI system partition boot 4 2092MB 2226MB 134MB Microsoft reserved partition msftres 5 2226MB 130GB 128GB ntfs Basic data partition msftdata 6 130GB 130GB 255MB ext4 ↑ /boot領域 7 130GB 256GB 126GB lvm ↑ /とswapが入るLVMの物理ボリューム $ sudo lvdisplay | grep Path (一部省略しています) LV Path /dev/vg1/lvroot LV Size 113.34 GiB LV Path /dev/vg1/lvswap LV Size 3.73 GiB
最後までインストールが終わって再起動すると、いつもは出てきたgrubをインストールする画面が出てこないことに気づきます。そのため、USBメモリを外すとgrubメニューが出ずにWindows8が起動します。
デュアルブートについては、grub2を優先的に利用するようにします。そのためWindows8はgrub2経由で起動するようにします。概要は以下です。
Windows8のbcdeditでVAIOの起動時に読むこむefiファイルのパスを確認する
debian installerをrescue modeで起動する
EFIパーティションをmountする
shellを起動し、grubをinstallする
VAIOの起動時に読み込むefiファイルを退避し、grubのefiファイルと置き換える
再起動するとgrubが起動するのでdebianを起動する
/etc/grub.d以下のファイルを編集して、windows8の設定を追加する
update-grubを実行する
再起動する
grubメニューからdebianとwindows8が両方起動できるようになる
Windows8でbcdeditコマンドを実行して、ブートマネージャの設定を確認します。このとき、コマンドプロンプトを管理者権限で実行してください。Windows8を普通にインストールした場合は、EFIBootbootx64.efiを読み込むのが普通のようで多くのサイトもそれに倣った手順になっています。しかし、VAIOはいじってあるようでefiファイルのパスが違います。
$ bcdedit /enum all ファームウェアのブート マネージャー -------------------------------- identifier {fwbootmgr} displayorder {f652bc01-389b-11e3-be69-806e6f6e6963} {f652bc03-389b-11e3-be69-806e6f6e6963} {bootmgr} {59941088-38a3-11e3-be72-806e6f6e6963} {746f3f95-38b3-11e3-9a46-806e6f6e6963} {64a71ad8-38ba-11e3-be79-806e6f6e6963} bootsequence {746f3f95-38b3-11e3-9a46-806e6f6e6963} timeout 0 Windows ブート マネージャー -------------------------------- identifier {bootmgr} device partition=\Device\HarddiskVolume3 path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale ja-JP inherit {globalsettings} default {current} resumeobject {df94d6db-389b-11e3-8f30-9e441e235da0} displayorder {current} toolsdisplayorder {memdiag} timeout 30 (中略) ファームウェア アプリケーション (101fffff -------------------------------- identifier {f652bc01-389b-11e3-be69-806e6f6e6963} device partition=\Device\HarddiskVolume1 path \EFI\Microsoft\Boot\bootmgfw.efi description Sony Original (以下略)
ということで置換するefiファイルは、EFIMicrosoftBootbootmgfw.efiとなります。
debian installerを起動しrescue modeでインストールしたdebian環境にログインします。そして以下を実行します。
# mount -t vfat /dev/sda3 /boot/efi # cd /boot/efi/EFI/Microsoft/Boot # cp bootmgfw.efi bootmgfw.efi.orig # cp ../../debian/grubx64.efi bootmgfw.efi # cd / # umount /boot/efi # exit
再起動するとgrubが起動します。この状態でdebianは起動できますが、メニューにあるwindows8をEnterしても起動できません。起動しようとするとgrub画面が再度表示されます。(grubメニューのwindows8用efiファイルをgrubのファイルに入れ替えているためです)
debianを起動してgrub設定にwindows8の設定を追加します。
$ sudo vi /etc/grub.d/40_custom #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "Windows Boot Manager (SONY Original)" { insmod part_gpt insmod fat set root='(hd0,gpt3)' search --no-floppy --fs-uuid --set=root 4A3B-7939 chainloader /EFI/Microsoft/Boot/bootmgfw.efi.orig } $ sudo update-grub Generating grub.cfg ... Found background image: /usr/share/images/desktop-base/desktop-grub.png Found linux image: /boot/vmlinuz-3.10-3-amd64 Found initrd image: /boot/initrd.img-3.10-3-amd64 Found Windows Boot Manager on /dev/sda3@/EFI/Microsoft/Boot/bootmgfw.efi Adding boot menu entry for EFI firmware configuration done
再起動し追加したgrubメニュー「SONY Original」を選択して起動するとwindows8が起動します。これでUEFIブートの状態でデュアルブートできるようになりました。
linux-imageパッケージを3.11系以上のものを利用するとIntel 7260のドライバが入っています。以下を実行してドライバとファームウエアをインストールします。
$ sudo apt-get instal linux-image-3.12-1-amd64 $ sudo apt-get install firmware-iwlwifi
インストールが完了したら、再起動して3.12系カーネルで起動します。起動後にifconfigで確認するとwlan0デバイスが確認できます。
この状態のまま使うとブツブツ切れたりして通信が不安定になります。どうも省電力設定されているのが原因っぽいです(windowsのバッドノウハウでも省電力設定を切るようにデバイスマネジャーで設定することがあります)。そのため、ドライバーオプションに以下を書きます。
【更新】2014-02-01:linux-3.12系で利用するにあたり、オプションを変更しました
$ sudo vi /etc/modprobe.d/iwlwifi.conf options iwlwifi 11n_disable=1 options iwlmvm power_scheme=1
そして再起動します(modprobeでドライバをunload,loadしてもいいです)。なんとなく安定して通信できているような気がします。
以下のサイトから引っ張ってきたスクリプトを若干修正します。ちなみに私のVAIO Pro 11のlspciの結果は以下ですのでそれに合わせています。無線LANデバイスである01:00.0は省電力にすると通信が不安定になりそうかと考え、コメントにしています。
$ lspci 00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09) 00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) 00:03.0 Audio device: Intel Corporation Device 0a0c (rev 09) 00:14.0 USB controller: Intel Corporation Lynx Point-LP USB xHCI HC (rev 04) 00:16.0 Communication controller: Intel Corporation Lynx Point-LP HECI #0 (rev 04) 00:1b.0 Audio device: Intel Corporation Lynx Point-LP HD Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 3 (rev e4) 00:1c.3 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 4 (rev e4) 00:1d.0 USB controller: Intel Corporation Lynx Point-LP USB EHCI #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation Lynx Point-LP LPC Controller (rev 04) 00:1f.2 SATA controller: Intel Corporation Lynx Point-LP SATA Controller 1 [AHCI mode] (rev 04) 00:1f.3 SMBus: Intel Corporation Lynx Point-LP SMBus Controller (rev 04) 01:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b)
#!/bin/sh # USB の自動サスペンド sudo sh -c "echo 1 > /sys/bus/usb/devices/usb1/power/autosuspend" sudo sh -c "echo 1 > /sys/bus/usb/devices/usb2/power/autosuspend" sudo sh -c "echo 1 > /sys/bus/usb/devices/usb3/power/autosuspend" # WiFi の省電力設定 #sudo iw dev wlan0 set power_save on # サウンドまわりの省電力設定 sudo sh -c "echo 1 > /sys/module/snd_hda_intel/parameters/power_save" sudo sh -c "echo 1 > /dev/dsp" # laptop mode sudo sh -c "echo 5 > /proc/sys/vm/laptop_mode" sudo sh -c "echo 0 > /proc/sys/kernel/nmi_watchdog" sudo sh -c "echo 1500 > /proc/sys/vm/dirty_writeback_centisecs" #sudo modprobe -r sky2 # PCI 経由で繋がってるものの省電力設定 sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:00.0/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:02.0/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:03.0/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:14.0/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:16.0/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:1b.0/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:1c.0/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:1c.3/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:1d.0/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:1f.0/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:1f.2/power/control" sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:00:1f.3/power/control" # sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:01:00.0/power/control" # sudo sh -c "echo 'auto' > /sys/bus/pci/devices/0000:02:00.0/power/control" # SSD が稼動してない時に SATA を最低消費電力モードにする設定 sudo sh -c "echo 'min_power' > /sys/class/scsi_host/host0/link_power_management_policy" sudo sh -c "echo 'min_power' > /sys/class/scsi_host/host1/link_power_management_policy" sudo sh -c "echo 'min_power' > /sys/class/scsi_host/host2/link_power_management_policy" sudo sh -c "echo 'min_power' > /sys/class/scsi_host/host3/link_power_management_policy"
CPUの省電力設定はcpufreqdを入れるなり、ウィンドウマネージャで設定するなどしてよしなに設置してください。私はxfce4を使っていますのでそこで設定しています。
これでVAIO Pro 11でdebianライフが楽しめます。
地元の北海道から流れて大阪へ行き、現在は東京でお仕事中。 仕事ではCentOS、家ではDebianとFreeBSDを使い何かしようと画策中。
dictoss@live.jp