Arch Linuxのインストール方法、解説
背景
C++開発用に古いノートPCにubuntuを入れていたが、最近動作が遅くなってきてしまった。
そこで以前より興味のあったArch Linuxを導入した。その際の備忘録を残す。
基本的には英語版の公式wikiを見つつ、各種ブログを見ながらインストールした。
環境
ThinkPad X230
事前準備
インストールメディアの作成
Arch Linuxのイメージを入手し、署名による改竄検証を行う。
インストールメディア作成に当たっては、rufusを用いてUSBに書き込んだ。
UEFIの設定
大半の解説サイトがUEFIモードでのインストールを前提としていたため、
下記のUEFI設定をチェックする。
特に自分の環境はUEFI/LegacyがBIOS優先になっていたのため、当初はUEFIに入れなかった。
USB boot
ここからはUSB起動後の話。
ログ記録
scriptコマンドによって、実行したコマンドが記録される。
オプション無しならカレントディレクトリにtypescriptと呼ばれるログができる。
インストールには直接関係ないが、念のため。
script
キーボードレイアウト
US配列を使用しているので割愛
boot modeチェック
以下のディレクトリがあればUEFI。無ければBIOS。起動画面でも判別可能。
ls /sys/firmware/efi/efivars
ネットワーク接続
無線wifiのため、iwctlコマンドで接続。
念のためping確認もしておく。
余談だがこれはusbには入っているコマンドであり、
インストールされるArch Linuxには入っていない。
別途ネットワーク関連のコマンドのインストールが必要(2敗)。
iwctl [iwd] device list [iwd] station hoge_device scan [iwd] station hoge_device get-networks [iwd] station hoge_device connect hoge_SSID [iwd] exit ping archlinux.org
system clockの更新
timedatectl set-ntp true
パーテーション
良く知らなかったが、linuxはパーテーション分割するのが常識らしい。公式WikiのUEFI with GPTを参考にした。
- boot 起動に必要
- root 各種システムファイル
- swqp メモリ領域の拡張。一応作った
diskの確認
まずdiskを確認する。
fdisk -l
fdisk対話モード開始
上記で確認した対象のdiskを対象に操作を行う。ここからはfdiskの対話モードで設定
fdisk /dev/sda
パーテーションテーブル
パーテーションテーブルはGPTが良さげなのでそれにする。コマンドはg
g
パーテーションの追加
それぞれの容量はこの以下とした。swap領域の目安は8GB RAMの場合は4GB~10GBらしいので最大値にしておいた。
- boot /dev/sda1 512MB
- root /dev/sda2 残り全部
- swap /dev/sda3 10GB
nでパーテーション追加。以下のコマンドは割愛。領域は+512Mや-10GBなど相対指定可能。
n
パーテーションタイプ
tでパーテーションタイプ設定。
その後対象パーテーションとタイプを指定する。
タイプの番号はboot領域はuefi(1)、swap領域はswqp(19)
t
設定書き込み
wで設定を書き込み、対話モード終了。qだと書き込まず終了
w
フォーマット
mkfsコマンドでフォーマットしていく。
wiki曰くEFI system partitionはfat32が推奨らしい。
rootはext4が一般的。
サイトによってはmkfsを利用していたが、
wikiに倣ってmkswapを用いた。
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
mkswqp /dev/sda3
マウント
これもwikiに倣いEFI system partitionは/mnt/bootに、rootは/mntにマウントする。
/mnt/bootの作成を忘れないこと。swapはswaponコマンドで有効化するらしい。
mount /dev/sda2 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
swapon /dev/sda3
--追記(2021/11/5) /mnt/bootの作成とマウントは/mntのマウント後でないとまずいようだ
ミラーサイトの更新
/etc/pacman.d/mirrorlistにミラーサーバの設定が書いてあり、日本サーバーが優先になるように設定する。
本来ならば、上記のファイルの順番を変えるだけで対応可能である。
が、自分の環境では日本サーバーの設定がなかったため、日本サーバー情報を取得した。
以下は日本サーバにおいて24時間以内にhttpsで接続されたサーバ情報を通信速度順にソートをかけて保存するコマンド。
reflector --country 'Japan' --age 24 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
パッケージのインストール
いよいよパッケージインストール。最低でも以下が必要。
また、このタイミングで以下のパッケージも入れておいた方が良い。
入れ忘れたパッケージがあっても、
後述のchroot後にpacmanコマンドで入れてもよい。
自分の環境では以下とした
pacstrap /mnt base linux linux-firmware vim iw wpa_supplicant dhcpcd
Note
上記以外のパッケージはOSインストール後でも間に合う。
archlinux的考え方で行けば上記すら不要かもしれないが、
以下の理由で先に導入した。
linux力が高ければ不要だと思う。
* テキストeditorがなく、OSインストール後のシステムファイルを変更できなかった。
* ネットワークコマンドの使い方がわからず、パッケージ更新を行えなかった。
fstabの書き出し
linuxのファイルマウントの定義のことらしい。
UUIDと呼ばれる一意に定まるIDを用いてパーテーションをマウントする設定を書き出す。
genfstab -U /mnt >> /mnt/etc/fstab
なお、UUIDは以下のコマンドで確認可能。/mnt/etc/fstabと比較するのも良いだろう。
lsblk -f
ルートディレクトリの変更
ルートディレクトリを変更することによってインストールしたシステムを操作していく、のだと思う。
arch-chroot /mnt
timezoneの設定
ln -sf /usr/share/zoninfo/Asia/Tokyo /etc/localtime hwclock --systohc --utc
localeの設定
/etc/locale.genのen-US.UTF-8 UTF-8とja_JP.UTF-8 UTF-8をアンコメントする。
en_US.UTF-8 UTF-8 ja_JP.UTF-8 UTF-8
次のコマンドを実行し、設定を反映
locale-gen
また、以下の設定ファイルを作成
LANG=en_US.UTF-8
ホストネームの設定
以下で設定。
hogehoge
また、ホスト名とipアドレス設定ファイルを作成する
127.0.0.1 localhost ::1 localhost 127.0.1.1 hogehoge.localdomain hogehoge
initramfsの設定
RAM Filesystem、つまり、メモリ上のファイルシステムのこと。
/etc/mkinitcpio.confをいじって下記コマンドで反映させる。基本的には不要らしいが、一応実行しておいた。
mkinitcpio -P
rootのパスワード設定
passwd
ブートローダー
ブートローダーの設定も必要らしい。
今回はwikiを見て良さげだったのでGRUBを採用した。
UEFI systemの場合、efibootmgrのインストールも必要。
pacman -S grub pacman -S efibootmgr
efi-directoryはEFIをマウントした、/bootを指定
bootloader-idはUEFIから確認できる名前っぽい。
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=hoge
以下のコマンドでconfig fileを作成する。
-oは出力する設定ファイル名を指定するオプション。
grub-mkconfig -o /boot/grub/grub.cfg
マイクロコード
マイクロコードはプロセッサのファームウェアと同義らしい。 intel製CPUなので、intel-ucodeをインストール
pacman -S intel-ucode
上記のloadタイミングは色々選べるようだが、 GRUBにより起動時のloadを選択した。
grub-mkconfig -o /boot/grub/grub.cfg
終了処理とログの書き出し
ルートから抜け出す。
exit
次のexitでscriptを終了し、ログを終了する。
exit
usb内のデータは削除されるので、これをbootに移す
cp typescript /mnt
再起動する。自動でアンマウントされるので、マウント処理は割愛。
Hello Arch Linux
起動することを確認する。
その他
後日、ArchLinuxインストール後の処理を書く予定
参考
本家wikiが日本語版・英語版共に役に立った。内容は英語>日本語で参考にした。
ブログも大変参考になった。
- Archlinux 本家wiki
archlinux.org - Archlinux 日本wiki
archlinux.jp - Arch Linuxのインストール記事1
Arch Linux インストール俺々式完全版 - Arch Linuxのインストール記事2
ArchLinuxのインストール