Livedoorブログからの移動

Kira v73にArch Linuxを入れる時の諸々のメモ.

久しぶりのArch Linuxインストールかつラップトップは不思議な仕様していることも多いので慎重にインストールを進めたかった.が,kiraにインストールした例はWeb上では出てこないので,手探りするしか無かった.

内容

書いてあることは,

  1. Arch Linuxのインストール(デュアルブート)
  2. 各種基本的な設定

の2つ.

本当は他にも自分の設定とかいろいろ移行しているけど、それは省略.

インストール手順

リカバリメディアの作成

リカバリメディア作成ツールで検索すると東芝のリカバリメディア作成ツールが出てくるのでクリックして起動.

ものによるとは思うけれども,2015春モデル,i5, 8G, SSD 256GB, Office付きの場合,リカバリメディアの作成に32GB必要(厳密には20GBらしいけど,実際的には32GB必要だろう).Linuxの感覚で8GBもあれば大丈夫でしょとか思っていると痛い目にあう(あった).

インストールメディアの作成

昔のインストールメディアもあるけど,せっかくだしインストールメディアも新しくする.

ダウンロードページからダウンロードして,

$ sudo dd bs=4M if=Downloads/archlinux-2015.05.01-dual.iso of=/dev/sdb && sync

でインストールメディアを作る.容量は700MB弱と言ったところ.

ddはリカバリメディアの作成より遥かに早く終わるので,

  1. isoのダウンロード開始
  2. リカバリメディアの作成開始
  3. ダウンロード完了次第dd

の順番でやると多分無駄が少ない.

パーティションの縮小

まずは高速スタートアップの無効化.参考ページに色々書いてあるのでその通りにやればOK.なお,コントロールパネルは"コントロール パネル"(間に空白を挟む)が正式なようだ.間を詰めると検索で出てこない気がする.

そうしたら次にパーティションの縮小.縮小可能なのは109GBほど.深く考えることなく限界まで縮小した.インストール直後から40GB近くWindowsは食っているが,それでもまだ,70GBほど空き容量があるはずであり,まぁ十分だと思う.
ただ,Windowsもバリバリ使う人は,Windowsの方に容量割り当てたほうが安全と思われる.Arch LinuxからWindowsへのアクセスとWindowsからArch Linuxへのアクセスは圧倒的に前者の方が楽だし,基本的にWindowsの方が容量食う用途に使われるはず.

インストール開始

再起動して,KIRAと表示された画面でまずはF2を連打.どっかにSecure Bootと書かれた設定項目があるので,これをdisableにする.そうしたらSave and Exitで,もう一度同じ画面でF12を連打.ここで,USB Memoryを選ぶとインストールメディアから起動できる.
なお,その後の選択画面では放置すると勝手にx86_64のarchが選択される.

ネットワークの接続

しばらくするとrootでログインするはず.英語キーボードなので,嫌な人は

$ loadkeys jp106

して日本語キーボードに変更する.

そして,多くの手順では,ここで(有線)ネットワーク接続することを推奨されるわけだが,Ultrabookに有線なんてあるはずがない. なので,

$ wifi-menu

して無線でつなぐ.wifi-menu終了時に真っ黒になるのちょっと怖かった.この時,事前に

$ ip link set wlp1s0 up

等してwlanをupしていると接続に失敗するみたい.一応upしておくかーとか思うと痛い目見るので注意.なお,原因は不明.
また,この後の顛末を考えるとここでwifi-menu失敗は十分ありうる.その場合は頑張るしかない. 後述の無線LANも参照.

パーティションの設定

次に,パーティション.これが地味に色々と情報が錯綜する部分なので注意.自分は一度BIOSの時代と同じことをしてやり直す羽目になった.

  • lsblkして内部SSDを確認する.
    • まぁ多分/dev/sdaなはず.
  • cgdisk /dev/sdaして,パーティション設定する.cfdiskとは若干違うので戸惑うかもしれない.
    1. New -> <Enter> -> 512M -> ef00 -> bootで/bootを512M確保できる.
      • なんでもEFIでは512M以上が推奨されるらしい.ここで,はenterキーをそのまま押すこと.
      • 何も考えずに200M, Linux filesystemとかやるとgrubのところで死んでやり直しになるので注意.
    2. New -> Enter> -> Enter -> Enter -> /とすると,/を残り容量分確保できる.
    3. Write, Quitの順で終了し,パーティション設定完了.

なお,swapは8GBあればいらないという可能性に賭けることとする.
ここまで終わった段階で,lsblkするとsda6, sda7あたりが増えているはず.そこで,

$ mkfs.vfat -F32 /dev/sda6
$ mkfs.ext4 /dev/sda7

でフォーマット. そうしたら,

$ mount /dev/sda7 /mnt
$ mkdir /mnt/boot
$ mount /dev/sda6 /mnt/boot

でマウントする.

7. SSDへのインストール

この後の作業高速化のため,/etc/pacman.d/mirrorlistの先頭に

Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

を追加.
そして,

$ pacstrap /mnt base base-devel dialog vim emacs

でインストール.ちなみに,後ろのパッケージを追加してインストールしているのは過去の名残みたいなもの.深い意味はないが入れるときのコマンドを自分のメモからコピペしているのでいつも追加している.

これはしばらく時間がかかり,放置しておくと画面が真っ暗になる.その時は適当なキーを叩くともどるので焦らない.終了間際にファンがなり始めるので放置しといてファンが鳴ったら作業に戻ればいい.

8. 初期設定

とりあえず

$ genfstab -U -p /mnt >> /mnt/etc/fstaba
$ arch-chroot /mnt /bin/bash

でSSDの方の環境へ移る.後は最低限の設定をしていく.多分この辺じゃないかな.

$ emacs /etc/locale.gen # en_US.UTF-8とjp_JP.UTF-8をコメントアウト
$ locale-gen
$ echo LANG=en_US.UTF-8 > /etc/locale.conf
$ export LANG=en_US.UTF-8
$ echo KEYMAP=jp106 > /etc/vconsole.conf 
$ ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ hwclock -u -w
$ echo <ホスト名> > /etc/hostname
$ systemctl enable dhcpcd.service
$ passwd

また,以後のことを考えると(無線設定参照),以下の2つも入れておいたほうがいいと思う.

$ pacman -S wireless_tools dhclient

Grubの設定

順当にコマンドを叩いていく.最後の2行はいらない可能性あり.よくわからないので参考サイトからそのまま打ち込んだ.

$ pacman -S os-prober
$ pacman -S grub dosfstools efibootmgr
$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug
$ grub-mkconfig -o /boot/grub/grub.cfg
$ mkdir /boot/EFI/boot
$ cp /boot/EFI/arch_grub/grubx64.efi  /boot/EFI/boot/bootx64.efi

ここまでで設定は終わり.なので,

$ exit
$ reboot 

する.参考サイトで,exitとrebootの間でUSBメモリ抜けって書かれているが,そうするとrebootできずに長押しする羽目になる.注意.

そして,Windowsとの選択画面になれば全て成功.なのだが,自分の場合はWindowsが表示されなかった.Arch Linuxへrootでログインし,もう一度

grub-mkconfig -o /boot/grub/grub.cfg

すると治った.なんかusb経由じゃos-proberが上手く働かないっぽい.原因究明する気はないので詳細は知らない.

無線設定

最難関と言ってよかった.数時間かけてどうにかできた.とはいえ,USBブートなら(arch linuxのインストールができたように)無線につながる.なのになぜかSSDのArch Linuxではつながらない.
詳細な原因はよくわからないが,とりあえずdhcpcdが悪いらしい.

なので,まずwifi-menuで,以前と同じように設定する.CONFIGURE FAILEDとか言われるが,放置して設定ファイルを保存する.すると,/etc/netctl/<名前>というファイルが生成されているはずなので,これをエディタで開いて,末尾にDHCPClient='dhclient'を追加する.
これで無線につながって,pacmanでパッケージインストールできるようになるはず.

もし上記方法で上手く行かない場合,USBメディアからブートして,wifi-menu, mount, arch-chrootすればpacmanでパッケージインストールできる環境になるので,それをしつつ色々試してみると良いのではないか. このあと(Xfce4導入後), NetworkManagerを使うように変えたが, そっちだと問題なく接続できた. なので、このタイミングでさっさとNetworkManager導入して切り替えるのもありかもしれない.

ユーザ追加

まずはユーザ追加をする.

$ pacman -S zsh
$ useradd -m -g users -G wheel -s /bin/zsh <ユーザ名>
$ passwd <ユーザ名>
$ pacman -S sudo
$ visudo

としてvisudoを適切にいじる.

各種ツールインストール

ここでは,まずツールをインストールし,その後現在のlaptopから設定を持ってくるという2段階で設定することにする.

Git

$ pacman -S git tig

X11

$ sudo pacman -S xorg-server xorg-server-utils xorg-xinit
$ sudo pacman -S mesa
$ sudo pacman -S xf86-video-intel
$ sudo pacman -S xf86-input-synaptics
$ sudo pacman -S xterm

そうしたら

$ startx

でXの起動テスト.なんかそれっぽかったらrebootしておく.

Xfce4, lightdm

$ sudo pacman -S xfce4 xfce4-goodies gvfs
$ sudo pacman -S lightdm lightdm-gtk-greeter

でXfce4とlightdmをインストール.なお,Xfce4はgnomeは重くて嫌いで,でもxmonadだけで全部自分で書くのは馬鹿らしいという判断によるインストールである.また,lightdmはさすがにディスプレイマネージャーくらい入れたほうがいいかなと思ってのこと.

$ sudo systemctl enable lightdm.service

でlightdmを有効化.

$ reboot

したらlightdmが待っている.

タブ補完がシェル等で効かなくなるので,ここを参考に元に直す.

日本語環境

これがないとだいぶ辛い.主にgitのコミットメッセージが見れないとか.

ここを参考にひたすら作業するだけ.

窓使いの憂鬱 for Linux

キーバインド変更に使っているツールなのでこれを導入する. 昔やったはずなのにすべてを忘れていて比較的大変だった.

まず, GitHubの方を落として, make, install

$ git clone https://github.com/kenhys/mayu
$ sudo pacman -S boost
$ ./configure && make && sudo make install

起動の方だが,root権限が必要なため, systemdを使う必要がある.mayu.serviceを適当に書けばいいわけだが, この時,mayu.serviceがsymlinkだと死ぬらしい.ただバグみたいなのでそのうち治るかもしれない.少なくとも現在はsymlinkではいけない.

xmonad

まず,Firefoxとかを入れるのもありだけど,ここでxmonadを入れる.特に理由はないが,低レイヤから順次やるほうが自分はいいと思っている.

ここが参考になる.

普通に設定して,xmonad --replaceするだけだけど,問題点としては

  • 先にxfceConfigを利用したXMonadの設定ファイルを用意すること.
  • sudo pacman -S dmenuしておくこと.

この2つ位だろうか. なんかXfce4のパネルが見えなくなってしまったらxfce4-panel -rとすると治る.

Network

基本的なデスクトップ環境がそろったので,そろそろ必要ツールを入れていく. ネットワークはUbuntuの時同様NetworkManagerを用いる.

ここに全部書いてあるのでそのとおりにやる.
ただし, sudo pacman -S network-manager-appletを忘れないように.これをしないとデスクトップ通知はできない. また, sudo systemctl start NetworkManagerも忘れずに.

時刻

Windowsとデュアルブートすると時刻がずれることがある. 以下の参考サイトあたりを見て、原因がlocal timeとuniversal timeによるものだとわかったら, まずWindowsの方でインターネット経由の時刻同期を切る. 方法は参考サイト参照.
timedatectl set-time "$(timedatectl status | grep Universal | awk '{print $4,$5}')" みたいにしてハードウェアクロックをuniversal timeに書き換える.

  • 参考サイト
    • http://www.addictivetips.com/windows-tips/disable-time-synchronization-in-windows-7/
    • https://archlinuxjp.kusakata.com/wiki/%E6%99%82%E5%88%BB#Windows_.E3.81.A7_UTC_.E3.82.92.E4.BD.BF.E3.81.86

音声

この状態でyoutubeとかいくと音が出ない. デフォルトの音声がHDMIに行っているからっぽいので、/etc/asound.conf

defaults.pcm.card 1
defaults.pcm.device 0

と書いてrebootする.

参考サイト

  • http://cotaro-science.blogspot.jp/2014/08/arch-linux.html
  • http://ac-mopp.blogspot.jp/2014/04/2014-vaio-pro-svp1322a1j-arch-linux.html
  • http://note.kurodigi.com/archlinux-uefi-install/
  • http://note.kurodigi.com/post-0-21/
  • http://http://note.kurodigi.com/archlinux-setting/#id309
  • Arch Wiki (言うまでもない)