Arch linux を入れた。
しつこいくらい言ってるけど、なにか成功した人間は普通、面倒だとか忠実に再現できないといった理由から、 成功に至るまでの道を正確に書き残さない。 それでもあとからその道をなぞりたい人は、そういった書き残しが助けになる。 だからできるだけ書こう。 これは、あまり強くない私からのお願いです。
ネットに転がっている情報を随分と利用した。 それでも、それらは断片的であったり、 自分の場合に当てはめていくつかの語を置き換える作業が必要だったりする。 これはもちろん当然だ。 ここには、自分の場合だけを書くことにする。
あーち・りなっくすを入れることにした。 Debianが良かったのだけれど、インストールの最初で、無線LANを認識できないと宣ったから。
ディストリビューションのisoファイルは Arch Linux - Downloads にある。私はいつもOSはUSBメモリから入れている。
ダウンロードしたisoファイルが ~/Downloads/archlinux.iso
とする。 USBメモリを、たとえば、 /dev/sdc
とする。
私はいつも、挿したUSBメモリが /dev/sd何
であるかを見つけるのに、 USBメモリを挿してない状態の ls /dev/sd*
と、挿した後のそれとの diff を見ることで確認している。
このとき、
# dd if=~/Downloads/archlinux.iso of=/dev/sdc
によって、USBメモリがインストールディスクとして使える。dd
コマンドはブロックサイズを指定することで、書き込みが高速になる。 man dd
によれば、
ibs=BYTES
read up to BYTES bytes at a time (default: 512)
とある。めいっぱい、大きな数字を指定すればよい。
インストールさしたいPCにUSBメモリを挿して起動すれば、Arch linux が起動する。 せずに、すでに入っているOSが起動するならば、 もう一度、USBメモリを挿した状態で、起動して、F2とかF11とかF12とかCtrl+I とかで、さっとBIOS 設定画面に入って、 bootの優先順位を、USB を最高位にする。
インストールは、他のディストリビューションのように、次へを無闇にクリックしてれば完了するものではない。 大変に残念だ。 archiso
というhostnameの、rootとしてログインした端末が表示される。 すべてCUIの作業で、インストールを行う。
まず、キーボードはUS配列 (ASCII配列?) としてあるので、日本語配列を使ってる人間は、 操作が困るようなら、(ほんというと困らないはずだけど)
# loadkeys jp106
とする。あと、大量のソフトウェアをダウンロードすることを行うので、ネットの接続が必要。 有線は勝手に認識されるらしい。 私は無線LANしかないので、次のように、
# wifi-menu # 無線をつなぐ。グラフィカルな画面で接続設定が行われる
次にパーティション分け。 私の場合を、説明する。 必要なのは、3つか、あるいは4つのパーティション。 今回は3つにした。
4つめとして、 swap (3GB) があってもよかった。 メモリが足りないと、swapは必要になるし、 これは、考えが足りてなかったけれど、hibernateさせるのにもswapは当然使われる。 そのためのswapのサイズは、RAMの中をそのまま書き込むのだから、RAMの同じサイズとも思われそうだけど、 実際は、2/5だとか、半分だとか。
swapパーティションがなくて、hibernateさせる場合は、swapfile を使うことになる。後述する。
上の、1-3のパーティションを作成したいのだった。 パーティションを書くツールはいくつかあって、 fdisk
とか cgdisk
とか gdisk
とかで、今回は gdisk
.
# gdisk /dev/sda
p
1. うんたら
2. うんたら
3. うんたら
すでに3つのパーティションが存在してたけど、綺麗にやりたいので、一旦全部消す
d
1
d
2
d
3
そんで作成
n
1
1007K
ef02 # BIOS boot だけ、正しくタイプを指定
n
2
101M
n
3
+0 # 残り全部
w # 以上の設定で実際に書く
q # quit
以上で、パーティション、/dev/sda1, /dev/sda2, /dev/sda3 ができた。 これらを ext4 で初期化する。
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkfs.ext4 /dev/sda3
これらのうち、/home用パーティションを /mnt
に、BIOS boot用パーティションを /mnt/boot
にマウントして、これからようやくインストール作業を行う。
# mkdir /mnt/boot
# mount /dev/sda3 /mnt # 今の場合、Number 3 が/home用
# mount /dev/sda2 /mnt/boot # 今の場合、Number 2 がBIOS boot
# pacstrap /mnt base base-devel
最後行で、大量の基本コマンドのダウンロードが行われる。
BIOSから、/dev/sda2, /dev/sda3 がちゃんとマウントされるように fstabの設定を次のようにする。
# genfstab -U -p /mnt >> /mnt/etc/fstab
すでに、/mnt
にはArch linux がインストールされている。 その中に次のようにしてログインする。
# arch-chroot /mnt
%
プロンプトが小さくなる。
% sed -i -e 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' -e 's/^#ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
% locale-gen
sedで書いたけど、nanoなりviなりのエディタで、コメントアウトすればいい。
% echo LANG=en_US.UTF-8 > /etc/locale.conf
% export LANG=en_US.UTF-8
% echo KEYMAP=us > /etc/vconsole.conf
% ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
% hwclock --systohc --utc
% echo "host name" > /etc/hostname
% passwd
(root password)
(root password again)
% pacman -S os-prober
% pacman -S grub
% grub-install --recheck /dev/sda
% grub-mkconfig -o /boot/grub/grub.cfg # !important
% acman -S wireless_tools wpa_supplicant wpa_actiond dialog
% systemctl enable netctl-auto@wlp2s0
% systemctl enable dhcpcd.service
% exit
# umount -R /mnt
# reboot
適当な、Intelとか画面に表示されてるタイミングでUSBメモリを外す。 GRUB2画面が出、Archlinuxが起動する。 root/(password)
でログインできる。
# wifi-menu
# useradd -m -g wheel cympfh
# passwd user
(user password)
(user password again)
# visudo
s/^%wheel ALL=(ALL) ALL/wheel ALL=(ALL) ALL/
# pacman -S xorg-server xorg-server-utils xorg-xinit xorg-xclock xterm
# pacman -S xorg-drivers
# pacman -S xf86-video-intel
# # 参考; lspci | grep VGA
# # 参考; https://wiki.archlinux.org/index.php/Xorg#Driver_installation
# pacman -S slim arhlinux-themes-slim slim-themes
# nano /etc/slim.conf
login_cmd exec /bin/zsh -l ~/.xinitrc %session
daemon yes
current_theme archlinux-simplyblack
# systemctl enable slim.service
# reboot
そろそろ、userでログインする。
% pacman -S i3-wm dropbox feh
% pacman -S fcitx fcitx-mozc fcitx-configtool
% cat << EOM > ~/.xinitrc
setxkbmap us -option ctrl:nocaps
sh .fehbg
dropboxd &
export GTK_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE=fcitx
export DefaultIMModule=fcitx
exec i3
また、ログオフしてログインしなおす。 slimのためにログイン画面はグラフィカルになっていて、 i3としてログインできる。 i3は初回起動時、設定ファイル .i3/config
を作成するかと聞いてくるので、 作ってもらう。
IMであるところの、fcitx
は、先の .xinitrc から呼んでいないので起動していない。 そこから呼んだところで、うまく動かなかった。.i3/cofigから呼ぶことにする。
一番最後くらいの行にでも
echo exec --no-startup-id fcitx >> ~/.i3/config
とする。また次回ログインすると、fcitxが動いて働く。
feh --bg-fill /path/wallpaper.jpg
とすると、壁紙になる。あと、~/.fehbg というファイルが自動で生成される。 これは .xinitrc から、shスクリプトとして実行することで、 起動時に壁紙として設定される。 feh
へのオプションとして、 --bg-fill
のかわりに、 --bg-max
とか、あといくつかある。 (参考; man feh
)
browser は firefox
が入ってる。 Adobe近世のFlash Player は次のように入れて、不自由に動画を再生できる。
pacman -S extra/flashplugin
hibernate (suspend into disk) や、suspend (suspend into RAM) をするのに、 今まで、 pm-hibernate
, pm-suspend
コマンドを使っていた。 これは次のパッケージに含まれる。
pacman -S pm-utils
さて、おそらく sudo pm-hibernate
としても、うまくハイバーネートしない。
sudo fallocate -l `/sys/power/image_size` /swap
sudo echo '/swap swap swap defaults 0 0 ' > /etc/fstab
sudo mkswap /swap
sudo swapon /swap
これで、/swap
が、スワップ領域として使われるようになる。 次に、GRUB2に、/swap
を再開位置とさせる設定を行う。
次のコマンド出力の、ext 0 の、physical_offsetを読んでメモしておく。
sudo filefrag -v /swap
私の場合は、 276480
がオフセット位置であった。 数字のオーダーは人によって結構違う。
sudoedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
っていう行が割と頭にあるので、
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda3 resume_offset=276480 acpi_sleep=nonvs"
とする。 /dev/sda3
は、私の、ホームディレクトリのあるパーティション。 GRUBの設定を書き直したので、最後に必ず
sudo grub-mkconfig -o /boot/grub/grub.cfg
として完了する。
書き残したことあるかな。 あったら追記しよう。