このガイドでは、Dell XPS13 9340 (2024)にArch Linuxをインストールする手順を詳しく説明します。各ステップで必要なコマンドと設定を示し、説明を日本語で提供します。とりあえず、現時点までの覚書ですが、随時更新します。
目次
- BIOS設定
- Arch Linux インストールメディアの起動
- ネットワーク接続
- ディスクのパーティショニング
- ファイルシステムの作成とマウント
- ミラーリストの更新
- ベースシステムのインストール
- システムの基本設定
- ブートローダのインストールと設定
- ユーザーの作成と権限設定
- ネットワークの設定
- デスクトップ環境のインストール
- 日本語入力とフォントの設定
- その他の設定
- プリンター設定
- その他のアプリインストール
BIOS設定
Arch Linuxをインストールする前に、BIOS設定を以下のように変更します。
- SATA Operation を AHCI に設定します。
- BIOSメニューで [System Configuration] → [SATA Operation] を選択し、[Advanced Host Controller Interface (AHCI)] を選択します。
- Secure Boot を無効化します。
- BIOSメニューで [Secure Boot] → [Secure Boot Enable] を選択し、[Disabled] に設定します。
Arch Linux インストールメディアの起動
公式のArch LinuxインストールISOをダウンロードし、USBメモリに書き込みます。USBメモリから起動し、Arch Linuxのインストール環境に入ります。
ネットワーク接続
Wi-Fiへの接続 インストール環境でWi-Fiを使用する場合、iwd を使用して接続します。
# iwctl
[iwd]# device list
[iwd]# station <デバイス名> scan
[iwd]# station <デバイス名> get-networks
[iwd]# station <デバイス名> connect <SSID>
[iwd]# exit
<デバイス名> は通常 wlan0 などです。
<SSID> は接続したいWi-Fiネットワークの名前です。
ディスクのパーティショニング
ディスクの確認やパーティションの作成手順です。
// ディスクの確認 インストール先のディスクを確認します。通常、NVMeディスクは /dev/nvme0n1 として表示されます。
# lsblk
// パーティションの作成 gdisk を使用してGPTパーティションテーブルを作成します。
# gdisk /dev/nvme0n1
// EFIシステムパーティションの作成
Command (? for help): n
Partition number (1-128, default 1): <Enter>
First sector (...): <Enter>
Last sector or +size{K,M,G,T,P} (...): +512M
Hex code or GUID (L to show codes, Enter = 8300): ef00
// ルートパーティションの作成
Command (? for help): n
Partition number (2-128, default 2): <Enter>
First sector (...): <Enter>
Last sector (...): <Enter>
Hex code or GUID (...): 8300
// 変更の書き込み
Command (? for help): w
注:これでパーティションテーブルがディスクに書き込まれます。
ファイルシステムの作成とマウント
ファイルシステムの作成およびマウントポイントの設定について説明します。
// ファイルシステムの作成 EFIシステムパーティションのフォーマット
# mkfs.fat -F32 /dev/nvme0n1p1
// Btrfsファイルシステムの作成
# mkfs.btrfs /dev/nvme0n1p2
//サブボリュームの作成 ルートパーティションを一時的にマウントします。
# mount /dev/nvme0n1p2 /mnt
// サブボリュームを作成します。
# btrfs subvolume create /mnt/@
# btrfs subvolume create /mnt/@home
// マウントポイントを再設定します。
# umount /mnt
# mount -o noatime,compress=zstd,subvol=@ /dev/nvme0n1p2 /mnt
# mkdir /mnt/home
# mount -o noatime,compress=zstd,subvol=@home /dev/nvme0n1p2 /mnt/home
// EFIパーティションのマウント
# mkdir /mnt/boot
# mount /dev/nvme0n1p1 /mnt/boot
ミラーリストの更新
日本の高速なミラーサーバーを使用するための設定手順です。
// 日本の高速なミラーサーバを使用するように設定します。
# reflector --country Japan --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
注:reflector がインストールされていない場合は、pacman -Sy reflector でインストールします。
ベースシステムのインストール
必要なパッケージのインストールおよびfstabの生成について解説します。
// パッケージのインストール
# pacstrap /mnt base linux linux-firmware intel-ucode btrfs-progs networkmanager
注:必要に応じて他のパッケージを追加できます。
// ファイルシステムテーブルの生成
# genfstab -U /mnt >> /mnt/etc/fstab
システムの基本設定
// chroot環境に入る
# arch-chroot /mnt
// タイムゾーンの設定
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc
// ロケールの設定 /etc/locale.gen を編集し、以下の行のコメントを外します。
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
// ロケールを生成します。
# locale-gen
# echo "LANG=ja_JP.UTF-8" > /etc/locale.conf
// キーボードレイアウトの設定(オプション)
// 日本語キーボードを使用している場合、/etc/vconsole.conf を作成します。
# echo "KEYMAP=jp106" > /etc/vconsole.conf
// ホスト名の設定
# echo "arch-xps13" > /etc/hostname
// /etc/hosts を設定します。
# cat << EOF > /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 arch-xps13.localdomain arch-xps13
EOF
// ルートパスワードの設定
# passwd
// 初期RAMディスクの生成
# mkinitcpio -P
ブートローダのインストールと設定
systemd-bootを利用したブートローダの設定手順です。
// systemd-bootのインストール
# bootctl install
// ブートローダの設定 /boot/loader/loader.conf を編集します。
===
default arch
timeout 5
editor no
console-mode 1
===
// ブートエントリの作成 /boot/loader/entries/arch.conf を作成します。
===
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=/dev/nvme0n1p2 rootflags=subvol=@ rw transparent_hugepage=never zswap.enabled=0 elevator=noop nvme_core.default_ps_max_latency_us=0 scsi_mod.use_blk_mq=1 quiet loglevel=3 nmi_watchdog=0 scsi_mod.use_blk_mq=1 i2c_i801.disable_features=0x10
===
注:blkid -s PARTUUID -o value /dev/nvme0n1p2 コマンドでルートパーティションのPARTUUIDを取得します。
// systemd-bootの自動更新設定
# mkdir -p /etc/pacman.d/hooks
# cat << EOF > /etc/pacman.d/hooks/100-systemd-boot.hook
[Trigger]
Type = Package
Operation = Upgrade
Target = systemd
Target = systemd-libs
Target = systemd-bootctl
[Action]
Description = Updating systemd-boot...
When = PostTransaction
Exec = /usr/bin/bootctl update
EOF
ユーザーの作成と権限設定
新規ユーザーの作成およびsudoの設定手順について説明します。
// ユーザーの追加
# useradd -m -G wheel -s /bin/bash <ユーザー名>
# passwd <ユーザー名>
// sudoの設定
visudo コマンドでsudoersファイルを編集します。
# visudo
// 以下の行のコメントを外します。
%wheel ALL=(ALL) ALL
ネットワークの設定
NetworkManagerを利用してネットワークを有効化する方法を解説します。
// NetworkManagerの有効化
# systemctl enable NetworkManager
注:再起動後、自動的にネットワークが管理されます。
デスクトップ環境のインストール
GNOME環境および関連ツールのインストール手順です。
// 必要なパッケージのインストール
// X
# pacman -S --needed xorg-xwayland xorg-xlsclients glfw-wayland
// Gnome
# pacman -S --needed gnome gnome-tweaks gnome-nettool gnome-usage gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme networkmanager
// GDM
# pacman -S --needed gdm
// GDMの有効化
# systemctl enable gdm
日本語入力とフォントの設定
日本語入力システムやフォントの設定方法について解説します。
// フォントのインストール
# pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-hack ttf-jetbrains-mono
//日本語入力システムのインストール
# pacman -S fcitx5-im fcitx5-mozc fcitx5-configtool
//環境変数の設定 /etc/environment に以下を追加します。
==
GTK_IM_MODULE=fcitx5
QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5
==
日本語入力には下記の設定を行う
- 「Fcitx Confuguration」-「Input Method」の「Current Input Method」に「Mozk」を追加
- 「Fcitx Confuguration」-「Global Config」の「Hotkey」で「Trigger Input Method」キーを「CTRL + ESCAPE」に変更
その他の設定
AURヘルパーやBluetooth設定など、追加の便利な設定を紹介します。
// AURヘルパーのインストール(paru) ユーザーアカウントでログインし、git を使用して paru をインストールします。
$ sudo pacman -S --needed base-devel git
$ git clone https://aur.archlinux.org/paru.git
$ cd paru
$ makepkg -si
// オーディオの設定
sudo pacman -S pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber
sudo systemctl --user enable --now pipewire pipewire-pulse wireplumber
sudo systemctl daemon-reload
sudo systemctl --user daemon-reload
journalctl --user -u pipewire.service -b
// Bluetoothの設定
# pacman -S bluez bluez-utils
# systemctl enable bluetooth
// スワップ領域の設定
paru zramd
# systemctl enable --now zramd
プリンター設定
プリンターの設定手順を説明します。
sudo pacman -S avahi nss-mdns
sudo systemctl enable --now avahi-daemon.service
vim /etc/nsswitch.conf
==
hosts: files mymachines mdns_minimal [NOTFOUND=return] dns mdns
==
$ lpinfo -v
sudo lpadmin -p home_epson -E -v "dnssd://EPSON%20EP-882A%20Series._ipp._tcp.local" -m everywhere
その他のアプリインストール
便利なツールやユーティリティのインストール手順を紹介します。
# 基本的な圧縮ユーティリティ
paru -S --needed \
zip \
unzip \
unrar \
p7zip \
lzop \
lrzip \
tar \
bzip2 \
gzip \
xz \
zstd \
lz4 \
lzip \
arj \
unarj \
unarchiver \
pigz \
pbzip2
# 基本的なシステムユーティリティ
paru -S --needed \
base-devel \
mlocate \
tree \
wget \
curl \
rsync \
strace \
lsof \
htop \
iotop \
ncdu \
duf \
bat \
exa \
fd \
ripgrep \
fzf \
tmux \
screen \
mc \
ranger
# テキスト処理・編集ツール:
paru -S --needed \
vim \
sed \
awk \
grep \
jq \
yq \
gawk \
dos2unix \
unix2dos
# ネットワークツール:
paru -S --needed \
net-tools \
bind \
whois \
traceroute \
nmap \
wireshark-qt \
tcpdump \
iperf \
mtr \
speedtest-cli \
nethogs \
ethtool \
inetutils \
openssh
# システム診断・モニタリング:
paru -S --needed \
sysstat \
glances \
bpytop \
powertop \
acpi \
lm_sensors \
stress \
inxi \
neofetch \
hwinfo \
dmidecode \
smartmontools
# 開発関連ツール:
paru -S --needed \
git \
clang \
gcc \
gdb \
make \
cmake \
pkgconf \
autoconf \
automake \
yarn \
npm
# マルチメディアツール:
paru -S --needed \
ffmpeg \
imagemagick \
exiftool \
mediainfo \
handbrake