VAIO Pro 11でDebian GNU/Linuxをインストール

最終更新日時:2016-12-31 20:11

初版公開日時:2013-10-30 20:11

タグ: debian debian_linux vaio


環境

  • 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のインストール

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が起動します。


Windows8とDebianをUEFIでデュアルブートするように設定する

デュアルブートについては、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ブートの状態でデュアルブートできるようになりました。


無線LANを使えるようにする

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ライフが楽しめます。



auther: dictoss

地元の北海道から流れて大阪へ行き、現在は東京でお仕事中。 仕事ではCentOS、家ではDebianとFreeBSDを使い何かしようと画策中。

github.com


最近の更新記事