自分だけのオペレーティングシステムを構築する方法

13 min

Arch Linuxはミニマリズムを採用しており、ユーザーが望む機能を自由に構築できます。以下では、実際のマシンへのデプロイを例に、Arch Linuxを構築する方法を簡単に紹介します。

準備

必要なもの:コンピュータ、USBドライブ(または任意の可搬型ストレージデバイス)、インターネット接続、基本的な情報検索スキル

  • どのインストールイメージを使用する場合でも、オフライン版イメージであっても、インターネット接続を準備することをお勧めします。これにより、カーネルやツールの更新が確実に行えます。経験豊富な場合は、必要に応じて判断してください。
  • Wi-Fiを使用する場合、ネットワーク名は英語にしてください。tty環境では非ASCII文字(日本語など)が表示できず、認識できないブロック文字として表示されます。
  • 同一ディスクにデュアルブートを計画している場合、Arch Linux用に十分なディスク容量を確保してください。将来のソフトウェアインストールのために、少なくとも100GBを推奨します。また、EFIパーティションの容量が256MB以上であることを確認するか、追加のマウントポイントを作成してください。
  • Windows 10のパーティションがBitLocker暗号化を有効にしているか確認してください。事前にリカバリーキーを取得し、電源設定の「高速スタートアップ」を無効にしてください!

操作前に、内容をよく読み、理解できない部分は検索して学習してください。慎重に操作し、定期的にバックアップを取ってください。データは貴重です。

インストールメディアの作成

  1. Arch Linux公式ダウンロードページからのみインストールイメージをダウンロードしてください。Arch Linuxはローリングリリースディストリビューションであることに注意してください。
  2. カーネルを自分でコンパイルしたい場合は、カーネル/従来のコンパイルを参照してください。
  3. 公式のインストールイメージを使用する場合、Ventoyを使用してブータブルUSBを作成することをお勧めします。

基本インストール

1. Arch Linuxメディアからのブート

電源を切り、USBドライブを挿入して起動します。BIOSに入り、USBを起動デバイスとして選択し、最初のオプションを選んでEnterキーを押すと、Arch Linuxインストール環境に入ります。

2. UEFIの確認

systemctl stop reflector.service
# 自動ミラー更新を無効にします。地理的なネットワーク環境により問題が発生する可能性があるためです。
ls /sys/firmware/efi/efivars
# EFI変数が一覧表示された場合、UEFIモードで起動しています。2025年のほとんどのマシンはUEFIブートです。

3. ネットワーク設定

Arch Linuxのインストールにはインターネット接続が必要です。オフラインインストールはより複雑で、オフラインインストールを参照してください。

有線接続の場合、LANケーブルを接続し、インターフェースのLEDが点滅しているか確認してください。数秒待つと接続が確立します。

キャンパスネットワーク環境では、上位ルーターでの認証が必要な場合があります。nbtverifyプロジェクトを参照してください。

Wi-Fiの場合は、iwctlを使用して接続します。

lspci -k | grep Network
# 無線アダプターが動作しているか確認します。問題がない場合はこの手順をスキップできます。

カーネルが無線ドライバーをロードしているか確認します。

以下のような表示が期待されます:00:14.3 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 20)

表示がない場合、無線接続が無効(blocked: yes)になっていないか確認します。

rfkill list
# 無線アダプターは通常wlan0と呼ばれます。
ip link set wlan0 up
# 「Operation not possible due to RF-kill」などのエラーが出た場合:
rfkill unblock wifi
# iwctlを使用してWi-Fiに接続
iwctl # 対話モードに入る
device list # 無線デバイス(例:wlan0)を一覧表示
station wlan0 scan # ネットワークをスキャン
station wlan0 get-networks # 利用可能なWi-Fiネットワークを一覧表示
station wlan0 connect wifi-name # ネットワークに接続。日本語名はサポートされません。パスワードを入力してEnter
exit # 接続成功後に終了

ping www.google.com # ネットワーク接続性をテスト

ネットワーク設定に問題がある場合、ネットワーク設定/無線を参照してください。

5. システムクロックの同期

timedatectl set-ntp true # システム時間をネットワーク時間と同期
timedatectl status # サービス状態を確認

6. ミラーリストの更新(日本国内の場合)

vim /etc/pacman.d/mirrorlist # ミラーリストを編集
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch # 日本のミラー
Server = https://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch # 筑波大学
Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch # Osbeckミラー

7. Btrfsパーティションの作成

ディスク情報の確認

lsblk

現在のディスクのパーティション状況を表示します。Arch Linuxをインストールするターゲットディスクを慎重に確認してください

ディスクの命名規則:

  • SATAドライブsdasdbsdc … パーティション:sda1sda2 など
  • NVMeドライブnvme0n1nvme1n1 … パーティション:nvme0n1p1nvme0n1p2 など

この例ではSATAディスクを使用します。実際のディスクに応じて/dev/sdxを置き換えてください。

cfdisk /dev/sdx

使いやすいTUIパーティションインターフェースが表示されます。😄

パーティションの操作手順

1. Swapパーティションの作成
  • 矢印キーでFree spaceを選択。
  • [New]を押してEnter、サイズを入力(RAMの60%~100%を推奨)。
  • [Type]を押し、Linux swapを選択。
2. ルートパーティションの作成(Btrfs用)
  • 残りのFree spaceを選択し、[New]を押してEnter。
  • サイズを入力(デフォルト:残りの全スペースを使用)。
  • タイプはデフォルトのLinux filesystemのまま。
3. パーティションテーブルの書き込み
  • [Write]を選択し、yesを入力してEnter。

    ⚠️ 注意:書き込みを行わないと、変更は反映されません!

パーティションのフォーマット

ディスクの再確認
fdisk -l
EFIパーティションのフォーマット(新規作成の場合)
mkfs.fat -F32 /dev/sdxn

💡 デュアルブートの場合、WindowsのEFIパーティションを再利用可能で、フォーマットは不要ですが、十分な空き容量を確認してください。詳細はWindowsとのデュアルブートを参照。

Swapパーティションのフォーマット
mkswap /dev/sdxn
Btrfsパーティションのフォーマット
mkfs.btrfs -L myArch /dev/sdxn

Btrfsサブボリュームの作成とマウント

mount -t btrfs -o compress=zstd /dev/sdxn /mnt

# サブボリュームの作成
btrfs subvolume create /mnt/@        # ルートサブボリューム
btrfs subvolume create /mnt/@home    # /homeサブボリューム

umount /mnt

⚠️ 最終確認

  • コマンドと操作を再確認してください!
  • 誤操作はデータ損失、特にWindowsパーティションの誤削除を引き起こす可能性があります 😥。

8. パーティションのマウント(ルートから順に)

mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # /ディレクトリをマウント
mkdir /mnt/home # /homeディレクトリを作成
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # /homeディレクトリをマウント
mkdir -p /mnt/boot # /bootディレクトリを作成
mount /dev/sdxn /mnt/boot # /bootディレクトリをマウント
swapon /dev/sdxn # スワップパーティションを有効化
df -h # マウントを確認
free -h # スワップパーティションのマウントを確認

9. システムのインストール

pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
# Btrfsを使用する場合、btrfs-progsパッケージを追加でインストール
pacman -S archlinux-keyring
# GPGキーエラーが出た場合、イメージが最新でない可能性があります。archlinux-keyringを更新して解決。
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
# pacstrapスクリプトで必要な機能パッケージをインストール

10. fstabファイルの生成

現在のマウント状況に基づいて、ディスクパーティションを定義するfstabを生成。

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

11. 新しいシステムに入る

arch-chroot /mnt
# コードハイライトが消えた?心配無用、chrootに成功しています!

12. ホスト名とタイムゾーンの設定

vim /etc/hostname
# マシンに名前を付けてください(特殊文字やスペースは避けてください。問題が発生する可能性があります。ホスト名を設定しないと、一部のGUIアプリが予期せず終了することがあります)。
vim /etc/hosts
# hostsファイルを編集

以下の内容を入力(myarchをあなたのホスト名に置き換え、間隔はタブで揃えます):

127.0.0.1   localhost
::1         localhost
127.0.1.1   myarch.localdomain  myarch
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# 東京タイムゾーンにシンボリックリンクを作成
ls /usr/share/zoneinfo/
# 使用可能なタイムゾーンを確認し、必要に応じて上記コマンドのタイムゾーンを変更

13. ハードウェアクロックの設定

hwclock --systohc
# システム時間をハードウェアクロックに同期

14. ロケールの設定

vim /etc/locale.gen
# /etc/locale.genを編集し、en_US.UTF-8 UTF-8とja_JP.UTF-8 UTF-8の行頭のコメント(#)を解除
# このステップでソフトウェアの言語と文字セットを決定
locale-gen
# ロケールを生成
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# locale.confを設定。日本語ロケールはttyで文字化けする可能性があるため推奨しません

15. rootパスワードの設定

passwd root
# パスワード入力は非表示です。キーボードの不具合ではありません!😄

16. マイクロコードのインストール

pacman -S intel-ucode # Intel CPU用
pacman -S amd-ucode # AMD CPU用

17. Grubブートローダーのインストール

pacman -S grub efibootmgr os-prober
# grubはブートローダー、efibootmgrはNVRAMにブートエントリを書き込むために使用、os-proberはWindows 10の検出用
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
# EFIパーティションにgrubをインストール
vim /etc/default/grub
# ブートパラメータを編集
# "loglevel=3 quiet"を"loglevel=5 nowatchdog"に変更
# ファイル末尾に以下を追加:GRUB_DISABLE_OS_PROBER=false
  • GRUB_CMDLINE_LINUX_DEFAULTのquietパラメータを削除。
  • loglevelを3から5に変更して、エラー時のデバッグを容易に。
  • nowatchdogを追加して、起動/シャットダウンの速度を向上。
  • os-proberを有効にしてWindows 10を検出。
grub-mkconfig -o /boot/grub/grub.cfg
# grubの設定ファイルを生成
# Windows 10が検出された場合、「Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi done」のような出力が表示されます
# Windowsが別のディスクにある場合、出力されないことがあります。システムに入った後、再マウントしてこのコマンドを再実行してください。

全パラメータの詳細はArch Wikiを参照。

18. インストールの完了

exit # インストール環境に戻る
umount -R /mnt # 新しいパーティションをアンマウント
reboot # 再起動

再起動後、rootアカウントでログイン。

systemctl enable --now NetworkManager # NetworkManagerサービスを有効化し即時起動
ping www.google.com # ネットワーク接続性をテスト

Wi-Fiの場合:

nmcli dev wifi list # 近くのWi-Fiネットワークを表示
nmcli dev wifi connect "Wi-Fi SSID" password "ネットワークパスワード" # 指定のWi-Fiネットワークに接続
nmtui
# nmtuiの方が使いやすいですよ!😄
pacman -S fastfetch
fastfetch
# fastfetchをインストールしてシステム情報を確認
# 伝統的なneofetchの時間です!😄
shutdown 0
shutdown -h now
poweroff
# 上記3つのコマンドはいずれもシャットダウンです。😄 電源ポリシーがまだ設定されていないので、きちんとシャットダウンしてください。

おめでとう 🎉

これで、グラフィカルインターフェースなしの基本的なArch Linuxのインストールが完了しました!

グラフィカルインターフェースのガイドは次回の更新で公開予定ですが、いつものように:マニュアルをよく読んでください!

このガイドはきっかけに過ぎません。より多くの技術愛好者がコミュニティに参加してくれることを願っています!


関連リンク:NBTCA