Arch Linuxをインストールしたので備忘録
※一部記事の内容が古くなっていることがあります。実際にインストールを行う際は、Arch Wikiの最新のインストールガイドに従ってインストールすることを推奨します。
Arch Linuxをインストールしたので備忘録として手順を残しておきます。
※この記事はあくまで私の環境でのインストール手順の記録になります。環境が異なるとインストール手順も異なることがあるため、実際にインストールする際はArch Wikiのインストールガイドを参照しながら進めることをお勧めします。また、当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。
目次
- 目次
- インストールメディアのダウンロード
- インストールメディアをUSBメモリに書き込む
- ライブ環境の起動
- キーボードレイアウトの変更
- 起動モードの確認
- パーティショニング
- パーティションのフォーマット
- パーティションのマウント
- インターネットに接続する
- システムクロックの更新
- ミラーの選択
- ベースシステムのインストール
- fstabの生成
- ルートディレクトリの変更
- タイムゾーンの設定
- ロケールの設定
- ホスト名の設定
- ネットワークの設定
- 初期RAMディスクの生成
- rootパスワードの設定
- ブートローダのインストール
- 再起動
- おわりに
インストールメディアのダウンロード
archlinux.jpのダウンロードページから最新版のインストールメディア(archlinux-<version>-x86_64.iso)と、必要に応じてPGP署名(archlinux-<version>-x86_64.iso.sig)をダウンロードします。
GnuPGがインストールされている場合、以下のコマンドを実行すれば検証できます。
$ gpg --keyserver pgp.mit.edu --keyserver-options auto-key-retrieve --verify archlinux-<version>-x86_64.iso.sig
また、md5sum
やsha1sum
コマンドで、ダウンロードしたインストールメディアのハッシュとダウンロードページにある最新リリースのチェックサムとを比較することができます。
インストールメディアをUSBメモリに書き込む
sudo fdisk -l
などで、インストールメディアを書き込むUSBメモリのデバイス名を確認しておきます。
dd
コマンドでUSBメモリに書き込みます。
$ sudo dd if=./archlinux-<version>-x86_64.iso of=</dev/sdx> bs=1048576
※デバイス名を間違えないように注意!
ライブ環境の起動
インストールメディアを書き込んだUSBメモリを挿入し、コンピュータを立ち上げます。USBブートができるよう、予めBIOS(UEFI)の設定でブートの優先順位を変更しておきます。
ライブ環境が立ち上がるとメニューが表示されるので、Arch Linux archiso x86_64 UEFI CD
を選択します。(UEFI環境の場合)
最初に仮想端末に root ユーザーでログインされ、Zsh のシェルプロンプトが表示されます。
キーボードレイアウトの変更
デフォルトのキーボードレイアウトはUSキーボードなので、日本語キーボードレイアウトに変更しておきます。
# loadkeys jp106
起動モードの確認
efivars をチェックして起動モードを確認します。
# ls /sys/firmware/efi/efivars
ディレクトリが存在していればUEFIモードで起動しています。
※以降 UEFI環境でのインストール手順になります。
パーティショニング
Arch Linuxをインストールするデバイスには、ルートディレクトリのパーティション(以下 ルートパーティション)と、EFIシステムパーティション(以下 ESP)が必要です。
事前にインストールするデバイスのデバイス名とパーティションテーブルの形式を確認しておきます。
# fdisk -l
パーティションテーブルの形式がGPTだったのでgdisk
を使用します。
# gdisk </dev/sdx>
gdiskのプロンプトが立ち上がったらo
で新しいパーティションテーブルを作成し、既存のパーティションデータを全て消去します。
※データが含まれているディスクに新しいパーティションテーブルを作成すると、ディスク上の全てのデータが消去されます。
n
で新しいパーティションを作成します。
パーティションを作成するには次の4つの項目を設定します。
まずはESPを作成してみます。
ESP のタイプidはef00
で、容量は 512 MiB にすることが推奨されているので、4つの項目を次のように設定します。
項目 | 値 |
---|---|
パーティションの番号 | デフォルト |
開始セクタ | デフォルト |
終末セクタ | +512M |
パーティションのタイプid | ef00 |
つぎにルートパーティションを作成します。
Linux filesystem のタイプidは8300
です。今回は残りの容量すべてをルートパーティションに割当てることにします。
項目 | 値 |
---|---|
パーティションの番号 | デフォルト |
開始セクタ | デフォルト |
終末セクタ | デフォルト |
パーティションのタイプid | 8300 |
パーティションの作成が完了したらw
で書き込んでgdiskを終了します。
パーティションのフォーマット
パーティションを作成したら、適切なファイルシステムでフォーマットする必要があります。
ESPはFAT32でフォーマットします。
# mkfs.fat -F32 </dev/sdxY>
# mkfs.ext4 </dev/sdxZ>
パーティションのマウント
ルートパーティションを/mnt
に、ESPを/mnt/boot
にマウントします。
# mount </dev/sdxZ> /mnt # mkdir /mnt/boot # mount </dev/sdxY> /mnt/boot
インターネットに接続する
今回は有線で接続することにします。 有線接続の場合、dhcpcd が起動時に有効化され自動的に接続を開始します。
pingを使って接続が確立されているかどうか確かめます。
# ping archlinux.jp
接続できない場合は、dhcpcd の状態を確認します。
# systemctl status dhcpcd@<interface>
<interface>はTab補完で入力できます。
私の場合、コマンドの実行結果がActive: inactive(dead)
となっていたので、systemd でdhcpcd を起動・有効化しました。
# systemctl start dhcpcd # systemctl enable dhcpcd
システムクロックの更新
systemd-timesyncd を使ってシステムクロックを正確にします。
# timedatectl set-ntp true
ここまででインストールの準備は完了です。
ミラーの選択
/etc/pacman.d/mirrorlist
を編集してミラーを選択します。位置的に最も近いミラーを選択するのがベストです。
特定のミラーを有効にするには使いたいミラーをアンコメントします。
例:
# Japan # Server = ftp://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
# Japan Server = ftp://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
ベースシステムのインストール
pacstrap
を使って base グループと base-devel パッケージグループをインストールします。
# pacstrap /mnt base base-devel
ここからはシステムの設定を行います。
fstabの生成
genfstab
コマンドで fstab を生成します。
# genfstab -U /mnt >> /mnt/etc/fstab
ルートディレクトリの変更
ルートディレクトリを新しくインストールしたシステムに変更します。
# arch-chroot /mnt
タイムゾーンの設定
タイムゾーンの設定を行います。 ここではタイムゾーンを東京に設定します。
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock
を実行して /etc/adjtime を生成します。
# hwclock --systohc --utc
ロケールの設定
/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
ロケールをen_US.UTF-8
に設定します。
# echo LANG=en_US.UTF-8 > /etc/locale.conf
必要に応じてvconsole.conf
でコンソールキーマップとフォントを設定します。
# echo KEYMAP=jp106 > /etc/vconsole.conf
ホスト名の設定
<hostname>に任意のホスト名を設定します。
# echo <hostname> > /etc/hostname
同じ名前を/etc/hosts
にも記述します。
127.0.0.1 localhost ::1 localhost 127.0.1.1 <hostname>.localdomain <hostname>
ネットワークの設定
新しくインストールされた環境ではネットワーク接続がデフォルトで有効になっていないので、もう一度ネットワークの設定を行ないます。
初期RAMディスクの生成
必要に応じて/etc/mkinitcpio.conf
を設定し、初期RAMディスクを生成します。
# mkinitcpio -p linux
rootパスワードの設定
rootパスワードを設定します。
# passwd
ブートローダのインストール
Arch Linux を起動するためにブートローダを選択してインストールする必要があります。 今回はGRUBをインストールすることにします。
bashシェルにログインしていることを確認し、grub と efibootmgr パッケージをインストールします。
# pacman -S grub efibootmgr
ブートディレクトリとブートローダIDを設定してインストールします。
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch-grub
インストールした後は、メインの設定ファイルgrub.cfg
を生成する必要があります。
# grub-mkconfig -o /boot/grub/grub.cfg
IntelまたはAMDのCPUを使っている場合、マイクロコードのアップデートを有効にします。
私はIntelのプロセッサを使用しているので、intel-ucode をインストールし、設定ファイルを再生成します。
# pacman -s intel-ucode # grub-mkconfig -o /boot/grub/grub.cfg
再起動
chroot 環境から抜けます。
# exit
reboot
でマシンを再起動します。
# reboot
インストールメディアを取り除き、新しいシステムにログインします。
無事 Arch Linuxを起動することができました。
おわりに
Linux初心者の私にとって、Arch Linuxはインストールから難易度の高いディストリビューションというイメージがありました。しかし、親切なArch Wikiのおかげで、ひとまずインストール作業を終えることができました。 また、Arch Linuxをインストールするにあたって、Linuxの起動に必要なパーティションやブートローダなど、普段Linuxを利用しているだけではなかなか触れない部分についても知ることができ、非常に勉強になりました。
今後はデスクトップ環境の構築などについても記事にしていけたらと思います。