📄

自己流Arch Linuxインストール→デスクトップ環境構築

2020/10/04に公開約5,900字

※この記事は、Qiitaで上げたものと同内容です。

環境

CPU ブートの種類 インターネット環境 デスクトップ環境 ブートローダー
x86_64 UEFI 無線LAN KDE Plasma systemd-boot
以上を想定しています。それ以外のパターンについても多少言及しますが、あまり深くは書きません。

以下は環境によって変化します。適宜読み替えてください。

インストール先 無線インターフェース名
/dev/sda wlp1s0

デュアルブートの注意点

デュアルブートをする場合、パーティションは事前に切っておくことを推奨します。
このガイドの手順に沿ってパーティションを分けるとデータがすべて消えますのでご注意ください。

・約100~500MBのEFI system partition

・システムインストール用のパーティション

を用意してください。

インストール前準備

キー配列読み込み

まず、日本語キー配列を読み込みます。英語配列キーボードを使用している場合はスキップ、その他キーボードの場合はjp106を適宜変更してください。

loadkeys jp106

ディスク関係

fdisk -l

で対象のディスクを探します。
今回の場合は/dev/sdaになります。

パーティション作成

すでに切ってある場合は次に進んでください。

fdisk /dev/sda

でツールを起動します。

  1. gで初期化
  2. nでEFIパーティション作成
    • Partition number, First sectorはデフォルトのままEnter
    • Last sectorには+200Mを指定してEnter
  3. もう一度nで今度はrootパーティションを作成
    • Partition number, First sector, Last sectorすべてデフォルトでEnter
  4. tでEFIパーティションの設定
    • Partition numberに1、Hex codeにも1を指定してEnter
  5. 最後にwで変更を書き込み

とすることでパーティションの作成は完了です。

フォーマット、マウント

EFI system partitionを/dev/sda1、システムインストール用のパーティションを/dev/sda2として説明します。

mkfs.vfat -F32 /dev/sda1
mkfs.ext4 /dev/sda2

でフォーマット、

mount /dev/sda2 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot

でマウントします。

インターネット関係

有線LANの場合これらの操作は不要です。次に進んでください。

iw dev

を実行し「Interface」のあとにある文字列が無線インターフェース名です。wlp1s0やwlp3s0、wlan0などになっていると思います。今回は「wlp1s0」として説明します。

まずインターフェースを有効化します。

ip link set wlp1s0 up

次に接続先のSSIDを探します。他のデバイスで確認するか、

iw dev wlp1s0 scan | less

で検索してください。
SSIDが確認できたら

echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
wpa_passphrase '<SSID>' '<PASS>' >> /etc/wpa_supplicant.conf

を実行します。<SSID>は接続先のSSIDに、<PASS>は接続先のパスワードにそれぞれ置き換えてください。
これでコンフィグファイルができたので、

wpa_supplicant -B -i wlp1s0 -c /etc/wpa_supplicant.conf

で接続、

dhcpcd wlp1s0

でIPアドレスを取得します。

ping archlinux.jp

などで接続を確認できたら

timedatectl set-ntp true

でシステムクロックを修正します。

ミラーリストの編集

まず、/etc/pacman.d/mirrorlistを編集してJapanサーバーを一番上に持ってきます。
以前はファイルにサーバーの場所が書かれていたので手動で編集できましたが、現在は書かれていないため

reflector --country Japan --sort rate --save /etc/pacman.d/mirrorlist

とします。

ベースシステムのインストール

インストールにはpacstrapコマンドを使用します。

コマンドの構文は

pacstrap /mnt <パッケージ名1> <パッケージ名2> ...

となっているので、以下のリストから必要だと思われるものをインストールしてください。

パッケージ名 説明
base 絶対に必要です。
linux 絶対に必要です。お好みでlinux-ltslinux-zenにしてください。わからなければlinuxでOKです。
linux-firmware 絶対に必要です。
nano このあとの作業で使うため必要です。お好みでvimemacsにしてください。
base-devel AURのパッケージをインストールする場合必要です。わからなければとりあえずインストールしておきましょう。
iputils インターネットに接続する場合必要です。
iw インターネットに接続する場合必要です。
wpa_supplicant 無線LANに接続する場合必要です。
networkmanager 無線LANに接続する場合必要です。
dhcpcd DHCP機能を利用する場合必要です。わからなければインストールしておきましょう。
intel-ucode Intel製のCPUを使っている場合インストールを推奨します。
amd-ucode AMD製のCPUを使っている場合インストールを推奨します。
bash-completion 特別な理由がない限りインストールを推奨します。

以下はデスクトップ環境に必要なものです。

パッケージ名 説明
plasma-meta KDEデスクトップ環境のパッケージ郡です。インストールしてください。
kde-applications-meta 電卓などのパッケージ群です。個人用であればインストールを推奨します。
noto-fonts-cjk 日本語用Notoフォントです。日本語用フォントは自動でインストールされないためインストールしてください。
noto-fonts-emoji 絵文字用Notoフォントです。絵文字をカラーで表示したい場合必要です。

他にインストールしたいパッケージがあればここで入れられます。あとからでもインストールできますのでご自由にどうぞ。

インストール後の作業

インストールが完了したら、まずfstabを生成します。

genfstab -U /mnt >> /mnt/etc/fstab

その後

arch-chroot /mnt

でインストールしたシステムに入ります。

地域の設定

ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

でタイムゾーンを設定し、

hwclock --systohc --utc

/etc/adjtimeを生成します。
次に/etc/locale.genをテキストエディタで開き

/etc/locale.gen
...
#en_US.UTF-8 UTF-8
...
#ja_JP.UTF-8 UTF-8
...

の2つをアンコメント(最初の#を外す)し

locale-gen

コマンドを実行してください。
これで言語ファイルが生成されるので

echo LANG=en_US.UTF-8 > /etc/locale.conf

で英語に設定します。この設定はデスクトップ環境の言語設定とは別なので、必ず英語にしておいてください。

おまけの設定

CUI環境で作業する予定がある場合、

echo KEYMAP=jp106 > /etc/vconsole.conf

も実行しておくことを推奨します。

ホストネームの設定

echo '<ホスト名>' > /etc/hostname

でホストネームを設定します。
/etc/hostsにも同じホストネームを入力してください。

/etc/hosts
127.0.0.1	localhost
::1		localhost
127.0.1.1	<ホスト名>.localdomain	<ホスト名>

空白部分はTabインデントを使うと見た目がきれいになります。

イニシャルRAMディスクの作成

mkinitcpio -P

で作成します。

rootパスワードの設定

passwd

コマンドの後にパスワードを二度入力してください。入力したパスワードは表示されません。

ユーザーの作成

useradd -m -G wheel -s /bin/bash '<ユーザー名>'

でユーザーを作成、

passwd '<ユーザー名>'

でパスワードを設定します。

serviceの設定

systemctl enable sddm.service
systemctl enable NetworkManager.service
systemctl enable dhcpcd.service

これでシステム起動時にこれらのサービスが起動するようになります。

KDEデスクトップ環境を使わない場合1行目、無線LAN環境を使わない場合2行目は不要です。

sudoの設定

visudo

を実行します。

visudo: no editor found

と表示された場合、

EDITOR='<エディタの名前>' visudo

としてください。<エディタの名前>にはnanoemacsなどを入れます。
無事編集画面が表示されたら、ファイルの下の方にある

/etc/sudoers
...
# %wheel ALL=(ALL) ALL
# %wheel ALL=(ALL) NOPASSWD: ALL
...

のどちらかをアンコメント(最初の#を外す)してください。
下をアンコメントするとsudo実行時にパスワードが聞かれなくなり、セキュリティが低下します。個人用に設定するときにのみ使ってください。

ブートローダーの設定

bootctl --path=/boot install

でsystemd-bootをインストールします。
次に/boot/loader/loader.confを以下のように編集します。

/boot/loader/loader.conf
default arch

次に

# blkid | grep sda2 > /boot/loader/entries/arch.conf

を実行。「sda2」の部分はシステムをインストールしたパーテーションにしてください。
その後/boot/loader/entries/arch.confを以下のように編集します。

/boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=PARTUUID=<UUID> rw

最後の<UUID>の部分には、もとからあった文字列のPARTUUID=のあとの部分を入れてください。
また、/vmlinuxz-linuxinitramfs-linuxの部分はインストールしたカーネルに合わせ変更してください。
AMDのCPUを使っている場合は/intel-ucode.img/amd-ucode.imgに変更してください。

インストール完了

# exit
# reboot

でインストールしたシステムを起動できるはずです。

Discussion

ログインするとコメントできます