概要
メインで使用しているノートPCであるところの Let’s Note CF-S10 さんが使用歴4年半を迎えて,そろそろハードディスクやバッテリの寿命が訪れそうな時期にさしかかっています. 収入が少し入ったところでもあるので,この際今後5年弱ほど使えるノートPCを買おうということになり,自分の用途に最も合っていそうな dynabook R83/PB を購入することにしました.
Windows を使うのはつらすぎてアレルギーによる発作が原因で直ちに死に至るので,当然 Arch Linux をインストールするわけですが,UEFI なマシンへのインストールは初めてだったため,少しずつメモを取りながら進めました. Web 上に特にこの機種へのインストールに関する情報がなかったので,必要ないかもしれませんがとりあえず書いたので置いておきます. ハマりやすそうなポイントが何箇所かあったので,あえて時系列順に書きます.
注意と免責
試行錯誤の過程が混じっているので,順序通りにやればうまくいくなんてことはないかもしれません.ご注意いただき,ご自身の責任のもとでインストール作業を進めてください. また,前提としてインストールに使用する Arch Linux の ISO は 2015.09 版とします.
準備
まずはじめに Windows 側と BIOS 側での設定を済ませておきます.
Windows での設定
ここはなるべく手早く進めましょう.まず購入後は確実に Windows の設定ウィザードに付き合わされるので,発作を起こさないように気をつけながら進めます.
Windows パーティションのリサイズ
デフォルトでは C ドライブに 1TB の SSHD の容量がほとんど全て割り当てられています. このままでは Linux を入れるためのパーティションを作成できないので,縮める作業を行います.こちらの作業の詳細については以下のページの 2. を参考にしました. Windows 8 / 8.1でCドライブの容量を縮小して新しくドライブを作成する方法 - 121ware.com 移動できないファイルがあり,だいたい 447GB しか空けることができませんでしたが,市販のデフラグツールなどを使って移動不可ファイルを無理やり移動させることでもう少し領域を確保できるかもしれません. そこまでしなくてもいいや,と思ったので獲得した 447GB を Arch Linux を入れるために使うことにします.
高速スタートアップの無効化
次に,高速スタートアップを無効化します. これをやっておかないと大変なことになるよと Arch Wiki にも書いてあるので,忘れずにやりましょう. 作業内容はこちらのサイトを参考に. Windows8 - 高速スタートアップを無効にする方法 - PC設定のカルマ
念の為リカバリディスクを作る
作業中に何が起こるかわからないので,念の為リカバリディスクを作成しておいたほうがいいでしょう. 東芝「dynabook」パソコンでリカバリディスクを作成するソフト - パソコン修理屋金沢東山店 工場出荷時からほとんどいじっていない状態でだいたい 32GB 食うので,内蔵の BD-RE ドライブで BD に焼くか,USB メモリに作るのがいいでしょう. この作業にはとっっっても時間がかかるので,Arch Linux の ISO をダウンロードしたり,インストールメディアを作ったりして待ちましょう.
BIOS (広義) の設定
電源投入時に F2 を押したままにすると,BIOS (広義) の設定画面が出現します.Security メニューから Secure Boot をOFFにします.
インストールメディアのブート
さて,満を持して Arch Linux のインストールメディアをブートさせましょう!
電源ボタンを押してしばらく待つと… _人人人人人人人_ > 起動しない <  ̄Y^Y^Y^Y^Y^Y ̄
UEFI でも BIOS でもブートできるようになってると書いてあるのになぜ起動できないんでしょう… Secure Boot は切ってありますし. いろいろやったのですが,結局 UEFI からブートさせることはできなかったので,BIOS 互換モードでブートしてインストールを最後まで行うことにしました. 一旦 BIOS (広義) の設定を変更して,ブート方式を UEFI Boot ではなく CSM に設定したところうまく起動しました.
インストール
Arch Wiki の Beginner’s Guide が手順書としては良い教材かなと思います.とりあえず愚直に従って,パーティション切ってフォーマットしてマウントして arch-chroot
して…というお決まりの手順を進めます.
と行きたいのですが,若干詰まるので次節以降を読んでからにしてください.
パーティション関係
先ほど Windows のドライブを縮小してできた領域を 512MB だけ残して好きに使ってください.理由は後述しますが,この領域を EFI System Partition として使用します. 私の場合,447GB のうち 512MB をEFI,7.5GB を swap (いらん気もする)にし,残りを ext4 でフォーマットしました.
UEFI 関連の設定を試みた時の話
この節の内容は試行錯誤がメインになります
/dev/sdX2
(Xはaとかbとか) に EFI System Partition があるのを発見したので,こいつを /mnt/boot
にマウントして作業を進めていました.
そして問題の UEFI 関連の設定 (ここ) までやってきました.
書いてあるとおりに, bootctl
コマンドを実行し,confファイルを編集しました.
これで起動するはず,と思って他の設定を一通りした後に再起動し,BIOS(広義) の設定を CSM から UEFI Boot に変更してブートしたところ,何事もなかったかのように Windows が起動しました.
んんー,これじゃダメだったかと思い,いろいろ見なおしたのですが,最終的な結論としては Arch Wiki の EFISTUB のページにあるように,Linuxの起動に必要なイメージ類をコピーしておく必要があったみたいでした.
/mnt/boot
には pacstrap
によって vmlinuz や initramfs が配置されるわけですが,不親切なことに /mnt/boot/EFI/systemd/
には置いてくれないようです.
仕方がないので cp
しようとしたのですが,EFI System パーティションが 128MB しかなくてコピーができないではありませんか.
というわけで,一旦仕切りなおし(パーティション的な意味で)と相成りました.
UEFI 関連の設定,リベンジ
/dev/sdX2
に Windows がもともと使用していた EFI System Partition (以下 ESP) があるのですが,容量が小さすぎて Linux イメージを載せづらいので,某所で推奨されていた 512MB のサイズで新しく ESP を作成し,こちらを使用させることにします.
くれぐれも /dev/sdX2
の中身を消したりパーティションを削除したりしないようにしてください.
パーティションの切り方は説明するまでもないと思うので,最終的な結果だけ載せておきます. /dev/sda6
が root, /dev/sda7
が ESP です.
ESP は Type ID を ef00 にし,FAT32 でフォーマットする必要があります.詳しくは Arch Wiki にごちゃごちゃと書いてあります.
# fdisk -l |
注意すべきこととしては,boot フラグの扱いです. /dev/sda2
の代わりに /dev/sda7
を使うことになるので,2の方の boot フラグは外し,7の方の boot フラグは有効にする必要があります.
この辺の作業は cgdisk
ではできないはずなので parted
で行うのが一番楽だと思います.
さて,これで EFI を設定する準備ができたわけですが,一旦 /dev/sda2
と /dev/sda7
をマウントして,前者から後者へファイルをコピーする必要があります.
以下のような感じで実行します(sdaとかは各自で確認したうえで合わせてください.さもなくば大変なことになります)
root@archiso # mount /dev/sda6 /mnt |
として,元の ESP からファイルを一通りコピーします.
その後 arch-chroot
したり pacstrap
したりして,ブートローダの設定の手前まで進めます.
さあいよいよ EFI の設定フェイズ です.
書かれている3つのコマンドを実行することでとりあえずの環境は整いますが,このままでは起動しません.
# cp /boot/vmlinuz-linux /boot/initramfs.img /boot/initramfs-fallback.img /boot/EFI/systemd/ |
として, /boot/EFI/systemd
ディレクトリにブートに必要なファイルをコピーすることで,起動の準備が整います.
カーネル更新時に自動的にコピーさせるようにするには, EFISTUB のページに書いてあるように systemd やその他のデーモンが発行するイベントにフックさせる必要があるようです.
その他の設定を終わらせたら再起動します.
起動
起動時に F12 を押したままにすると,ブートするドライブを選択するメニューが立ち上がります. HDD を選択すると,Arch Linux か Windows かを選択する画面が出てきて,Arch を選択すると起動ができるようになっています.
ただし,このままでは F12 を押さないと Arch を起動できないため不便です. UEFI の起動順序を変更することで対処するのが普通なのですが,Windows 8.1ちゃんはお行儀が悪く,これを変更しても Windows が上位に来るように変更してしまうという噂があります. そこで, Menu does not appear after Windows upgrade - systemd-boot - ArchWiki の一番下に記されているコマンドを Windows で実行して対処しました.
ここまでで,起動時に systemd-boot の画面が立ち上がり,Arch を起動するか Windows を起動するかが選べるようになりました.
設定
設定はいろいろ流儀があると思うのでお好きにやってください. ハードウェアに関連しそうなものについて書いておきます.
オーディオ(ALSA)関連
asoundconf
という便利ツールがあり,これを使うと一発で設定できます.
hw:0 に HDMI 音声出力が割り当てられていて,デフォルトがこれになっているので, デフォルトを PCH に変更します.
トラックパッド
Synaptics のドライバを入れれば使えます.デフォルトの設定でも一応使えます. ただし,FingerLow と FingerHigh の設定がうまく効かないような気がします.ALPS のトラックパッドのようですが,圧力検出に対応していないのでしょうか? タイピングしていて縁にたまに触ってしまうので,次のようにして反応する範囲を限定しました. 今のところこんな感じで使っています.
/etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass" Identifier "touchpad" Driver "synaptics" MatchIsTouchpad "on" Option "SendCoreEvents" Option "Protocol" "auto-dev" Option "SHMConfig" "on" Option "TapButton1" "1" Option "TapButton2" "3" Option "TapButton3" "0" #Option "VertEdgeScroll" "off" #Option "VertTwoFingerScroll" "on" Option "VertScrollDelta" "-70" #Option "VertHysteresis" "0" #Option "HorizEdgeScroll" "off" #Option "HorizTwoFingerScroll" "off" Option "HorizScrollDelta" "-15" #Option "HorizHysteresis" "0" #Option "CircularScrolling" "off" #Option "CircScrollTrigger" "2" # Option "EmulateTwoFingerMinZ" "40" # Option "EmulateTwoFingerMinW" "8" Option "CoastingSpeed" "13" Option "CoastingFriction" "30" Option "FingerLow" "50" Option "FingerHigh" "90" #Option "MinSpeed" "1.100" #Option "MazSpeed" "1.600" #Option "AccelFactor" "0.070" Option "AreaLeftEdge" "814" Option "AreaRightEdge" "3281" Option "AreaTopEdge" "507" #Option "MaxTapTime" "180" #Option "MinTapTime" "110" EndSection
まとめ
Arch をなんとか快適に使えるところまで整備できました. 試しに Minecraft や Beseige などの3Dゲーム類を起動して負荷をかけてみましたが,バッテリの減りが激しくなるぐらいで目立った処理落ちは見られませんでした. i7 4710MQ を積んでいるだけあって,少し前のデスクトップPCと遜色ない程度の性能は出るようです. ますます今後の使い込みが楽しみになるマシンで,良い買い物をしたなと個人的に感じています.
トラックパッドまわりの操作性はやはり Let’s Note のほうが上なのですが,設定次第でどうにかできればいいなと思います.また進展があれば書こうと思います.