読者です 読者をやめる 読者になる 読者になる

堕(惰)プログラマ開発記録

タイトル変えようかなとも思ってるけれど,思い浮かばない

ThinkPad X240をArch Linuxとのデュアルブートにするメモ

ThinkPad Linux

さて,X240とかいうIdeaPadThinkPadを年末に注文して,今月半ばに届いたので,色々セットアップしてました.s付いてないパコパコPadの12.5インチのFHDです.

で,こいつのパーティション構成は以下のようにしました.

Windowsパス Linuxパス ファイルシステム サイズ 説明
/mnt/efi FAT32 260 MiB EFIパーティション
C:\ NTFS 192 GiB Windowsパーティション
128 MiB MSRパーティション
/ ext4 64 GiB Archパーティション
D:\ /mnt/data NTFS 209.38 GiB データ領域

まあやったことといえば,リカバリディスク作って,Windowsのお掃除して,Arch Linux入れたわけです.
今回はそこら辺に関して軽く,メモ程度に.各コマンドはこのパーティション分けに基づいたものです.

Windows8.1

まず起動してWindowsの設定をごちゃごちゃやりました.これ,割と時間かかります.
起動したら早速Win8.1に上げます.どうせWin8.1の方を常用*1するわけだから,直ぐ上げちゃってWindows8の使い方なんて知らなくても大丈夫だよね!
なぜか失敗しまくりますが,カチカチしまくってたら上手く入ったという謎.

リカバリディスク

最近はCD/DVDで同梱されてないことも多いらしく,これも付いてませんでした.
SSD換装したり,Linuxを打ち込んだり……,弄って遊ぶんだったら重要事項かなと.
チャームの検索に"Recovery"と打ち込んで,出てきたWindows標準ツールを使うのが基本*2.「回復パーティションを含める」のチェックを忘れないように.

Windowsのお掃除と調整

プリインストールのSugarSyncの広告などがスタート画面を埋め尽くしていて,変なアプリが多かったので適当にアンインストールしました.とりあえず今は容量を減らすのが目的なので,適当に黙々と削除.
次いで,"Lenovo System Updater"で更新プログラム充てました.Windowsでの,パコパコパッドの精度が上がる模様です.

Archの導入

ここからはThinkPadへのArchのインストールですが,何か有ったらリカバリディスクという味方がいるので頑張ってみます.

回復パーティションの削除

gpartedが使いたかったので,手元にあったUbuntu Live USBを起動*3.gparted開いたら,Win8Win8.1の回復パーティション*4の削除しました.MSRパーティションも削除して,Win8が起動できることを確認します.

さて,Windowsパーティションが浮いている状態だと思うので,前に詰めます.このとき,一旦最小まで縮小してから移動して,再拡張すると割と早く終わります.NTFSパーティションシステムエラーによる中止と言われる時は,chkdskやらして治してみると上手く行ったりしました.

ここまで終わると,EFIパーティションの直後にWindows8パーティションが配置され,その後ろに多大な空き領域が存在していることでしょう.

MSRパーティションの再作成

ないままでも大丈夫なんでしょうが,なんか気持ち悪いので作り直しておきます.管理者権限のコマンドプロンプトからDISKPARTを使って再作成します.

C:\Windows\system32> diskpart
DISKPART> select disk 0
DISKPART> create partition msr size=128

権限が足りないとかでエラーするところはoverrideをつければ強制的に実行できます.

各種パーティション区画

残りの飽き領域にパーティションを区切ります.今回はswapと/bootを作らないので,Linux用のパーティションを1つ用意して,残りは共有データ用にしました.

Arch Install Buttle

基本的にArchWikiのとおりなので,別にバトルってほどじゃないのですが,最初の部分だけ.

まずArch Live USBを起動します.このとき,SecureBootによって起動が妨げられるので,BIOS

"Security" -> "Secure Boot" -> "Secure Boot" = "Disable"

に変えて,まず先にSecureBootを切る必要があります.

# wifi-menu
# mkfs.ext4 /dev/sda3

# mount /dev/sda3 /mnt
# mkdir -p /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi

# pacstrap /mnt base base-devel grub vim

# genfstab -U -p /mnt >> /mnt/etc/fstab
# arch-chroot /mnt

これでchrootまで終わったので,hostnameやらlocaltimeやらごちゃごちゃとした設定をしてやります.
設定が終わればgrubの導入を行います.grubは昔,MBREFIで分かれてたような気がするんですが,今は同じようです.(2014/01/28現在)

# pacman -S grub os-prober
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck --debug
# grub-mkconfig -o /boot/grub/grub.cfg


<追記(14/04/20)>
これで上手く行かなかったら,https://spica.pw/blog/?p=157を参照するといいと思います.


これで再起動すると,F12でWindowsgrubを選べるようになりました.
Windowsと共有するならば,これだけでは起動し直す度に,ハードウェアクロックがUTCとLocalTimeを行き来してしまいます.そこで,Archの書き込むハードウェアクロックをLocalTimeに変えてしまいます.

# timedatectl set-local-rtc true
ハードウェアの設定

トラックパッドの上側のボタンがうまく押せないと思うので,この記事に従って追加するといい感じになります.How to configure new Lenovo x240 touchpad on Ubuntu 13.10 | My Developed World

なお,Linux側ではまだ指紋スキャンのドライバがないようなので,今後の動向を見守ります.

あとは

好きにしろなんですが,ArchのDE,KDEにまたしちゃいましたね….MATEあたりでもいいような気がするんですが…

数時間で描き上げようと思ったメモが2日かかった……

*1:Arch >> Win8.1でしょうが

*2:Lenovoのソフトウェアはありません

*3:Archのメディアだとfdiskしか分からん…

*4:Win8.1入れると回復パーティションが分割されて2つになるそうです