エビデイエビナイ電子工作

やったことの記録

Arch Linuxをインストールしたので備忘録

f:id:Rappy:20190325103015p:plain

※一部記事の内容が古くなっていることがあります。実際にインストールを行う際は、Arch Wikiの最新のインストールガイドに従ってインストールすることを推奨します。

Arch Linuxをインストールしたので備忘録として手順を残しておきます。

※この記事はあくまで私の環境でのインストール手順の記録になります。環境が異なるとインストール手順も異なることがあるため、実際にインストールする際はArch Wikiインストールガイドを参照しながら進めることをお勧めします。また、当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。

目次


インストールメディアのダウンロード

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

また、md5sumsha1sumコマンドで、ダウンロードしたインストールメディアのハッシュとダウンロードページにある最新リリースのチェックサムとを比較することができます。


インストールメディアをUSBメモリに書き込む

sudo fdisk -lなどで、インストールメディアを書き込むUSBメモリのデバイス名を確認しておきます。

ddコマンドでUSBメモリに書き込みます。

$ sudo dd if=./archlinux-<version>-x86_64.iso of=</dev/sdx> bs=1048576

※デバイス名を間違えないように注意!


ライブ環境の起動

インストールメディアを書き込んだUSBメモリを挿入し、コンピュータを立ち上げます。USBブートができるよう、予めBIOSUEFI)の設定でブートの優先順位を変更しておきます。

ライブ環境が立ち上がるとメニューが表示されるので、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>

ルートパーティションext4でフォーマットしておきます。

# 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

インストールメディアを取り除き、新しいシステムにログインします。


f:id:Rappy:20190325153736j:plain

無事 Arch Linuxを起動することができました。



おわりに

Linux初心者の私にとって、Arch Linuxはインストールから難易度の高いディストリビューションというイメージがありました。しかし、親切なArch Wikiのおかげで、ひとまずインストール作業を終えることができました。 また、Arch Linuxをインストールするにあたって、Linuxの起動に必要なパーティションブートローダなど、普段Linuxを利用しているだけではなかなか触れない部分についても知ることができ、非常に勉強になりました。

今後はデスクトップ環境の構築などについても記事にしていけたらと思います。


twitter.com