ひこぽんのーと

覚書と雑記です。

Arch Linuxのインストール手順のこと その1

Install Arch Linux

Ubuntu Mate 18.04がいまいちだったのでArch Linuxに入れ替えた。
Arch Linux公式サイトにはインストール手順やドキュメントが充実しているので、
基本は手順通りに行えば良いのだが、それでも迷うところがちらほらあった。
念のために、以下に手順を残す。
今回はBIOSモード、MBRGRUBをインストールするレガシーなパターンです。

インストールメディアの準備

公式サイトからインストールイメージをダウンロード。
Ubuntuのディスクイメージライターを使って、USBメモリにレストアした。

パーティション

UbuntuのLive CDで予め作成した。
とはいえ、LVMを使うのでGUI操作よりコンソール操作が多かった。

バイス マウントポイント フォーマット サイズ 用途
/dev/mapper/mate--vg-lvswap - SWAP 16G スワップ
/dev/mapper/mate--vg-lvroot / ext4 100G ルート領域
/dev/sdb1 /boot ext2(boot ON) 1G ブート領域
/dev/mapper/mate--vg-lvfile /usr/files/ ext4 残り全部 ユーザデータ用

nagamitsu1976.hatenadiary.jp

インストールの準備

PCをUSBブートしてArch Linuxインストールメディアを起動。
メニューからインストーラーを起動。

キーボードレイアウトの設定
$ loadkeys jp106
パーティションの確認

インストールするディスクのデバイス名を確認する。

$ fdisk -l
ルートパーティションのマウント
$ mount /dev/mapper/mate--vg-lvroot /mnt
マウントポイントを作成
$ mkdir /mnt/boot 
$ mkdir -p /mnt/usr/files
残りパーティションのマウント
$ mount /dev/sdb1 /mnt/boot
$ mount /dev/mapper/mate--vg-lvfile /mnt/usr/files
スワップ有効化
$ swapon /dev/mapper/mate--vg-lvswap
ネット接続の確認

wifi接続の場合、接続設定を行う必要があるので、
有線接続での作業が楽です。
wifi設定はOSインストール後なら、NetworkManagerを使うなりなんなりで、
手軽にできるからです。

$ ping www.google.com
システムクロックの変更
$ timedatectl set-ntp true

OSのインストール

ミラーの選択

mirrorlistファイルを開いてリストから国内のサーバーを検索する。
見つかった国内サーバーのURLをファイルの上位にカット&ペーストする。
国内のサーバーもいくつかあるので、
どんな順番にするかは下のページを見ると参考になる。
https://www.archlinux.jp/mirrors/status/

とはいえ、Jaist筑波大学のサイトを上位にすればいいと思う。

$ nano /etc/pacman.d/mirrorlist
ベースシステムのインストール
### $ pacstrap /mnt base base-devel [old] ###
$ pacstrap /mnt base linux linux-firmware
fstabの生成
$ genfstab -U /mnt >> /mnt/etc/fstab

システム設定

以降は、システムの基本設定を行う。
タイムゾーンロケール、ホスト名などなど。

ルートディレクトリ変更

インストールしたベースシステムにルートを変更する。

$ arch-chroot /mnt
タイムゾーン設定
$ ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ hwclock --systohc --utc
ロケール設定

/etc/locale.genを編集してからlocale-genを設定する。
有効にするのはen_US.UTF-8 UTF-8とja_JP.UTF-8 UTF-8でOK

$ nano /etc/locale.gen
$ locale-gen

/etc/locale.confにロケールを定義する

$ echo LANG=ja_JP.UTF-8 > /etc/locale.conf
キーマップの設定
$ echo KEYMAP=jp106 > /etc/vconsole.conf
ホスト名の設定
$ echo myhostname > /etc/hostname
$ nano /etc/hosts

同じ名前を/etc/hostsにも記載。

127.0.0.1	localhost
::1		localhost
127.0.1.1	myhostname.localdomain	myhostname
ネットワーク設定

baseシステムではdhcpcdを使い、
あとでNetworkManagerをインストールして使う算段なので、
ここではdhcpcdを有効化する。

$ systemctl enable dhcpcd@[network-interface-name].service
もしくは
$ systemctl enable dhcpcd

インターフェイス名を確認するには、ip link*1を使う。

initramfsの生成

lvmを使っている場合(ルートパーティションが論理ボリュームの場合)
/etc/mkinitcpio.confを編集する。

$ nano /etc/mkinitcpio.conf
……
# HOOKSの行に[lvm2]を追加する。
HOOKS=(base udev autodetect modconf block lvm2 filesystems keyboard fsck)
……
# mkinitcpio -p linux
rootパスワード設定
$ passwd

ブートローダーの設定

最初に書いた通り、ここではBIOSモードでMBRGRUBをインストールする。

exFatNTFSのサポート

Windowsとのデュアルブートのために、exFatNTFSを扱えるようにする。
デュアルブートでなくても入れておいたほうが無難か。

$ pacman -S exfat-utils ntfs-3g
GRUBのインストール

grub-installでMBRに書き込むデバイスを間違えないように注意する。
ここでWindowsのインストール先ディスクに書いてしまったら……*2

$ pacman -S os-prober grub
$ grub-install --target=i386-pc /dev/sdb
$ grub-mkconfig -o /boot/grub/grub.cfg
マイクロコードアップデート設定

Intel製CPUを使っている場合は、更にintel-ucodeパッケージをインストールする。
amd製CPUだったらamd-ucodeパッケージをインストールする。

インストール後、再度、grub-mkconfigを行う。

$ pacman -S intel-ucode
$ grub-mkconfig -o /boot/grub/grub.cfg

再起動

exitで一旦抜けたあと、
ルートパーティションをアンマウントし再起動する。
ブート前にインストールメディアを抜いておくのを忘れずに。

$ exit
$ umount -R /mnt
$ reboot

Congraturations!

ディスクから起動するとGRUBが立ち上がり、
Linuxが起動すれば、インストール成功。
これでCUILinuxが使えます。
おつかれさまでした。

……って、ここで投げ出されてもツラい。
というわけで、その2へ続く。

*1:ifconfigを含むはnet-toolsはもう過去のものになってるようだ。

*2:Windowsブートローダーが壊れます。