2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

記事投稿キャンペーン 「2024年!初アウトプットをしよう」

自分用Arch Linux インストールガイド

Last updated at Posted at 2024-01-17

はじめに

Arch Linuxを何度かインストールしてきて,自分なりのインストールの仕方が固まってきたので書き残しておきます。なにか気になることがあればArchWikiに多分書いてあると思うので見てみて下さい。
環境として

  • UEFI対応
  • NetworkManager
  • WMはgnome
  • imはFcitx5+mozc
  • NVIDIAのGPU
  • 有線LANに接続
  • 言語は英語,英語配列キーボード,日本語環境も入れる
    を想定しています。多少違っても一部分を読み替えるだけで行けるはずです。
    また,Arch Linuxをインストールしてみようと思う人はすでにUbuntuとか入れて触ったことがある人だと思うので,ブートUSBの作り方とかは適当に説明します。

そもそもArch Linuxって何?って方ここここを読んでみてください。

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

isoイメージをダウンロードします。物理マシンにインストールする場合はrufusなりddなりでUSBメモリに書き込みます。毎月1日に新しいイメージが公開されています。

USBをインストールしたいPCに挿して起動,BIOS(UEFI)からメディアを選択します。セキュアブート等はOFFにしておきましょう。

こんな感じのメニューが出てきますので一番上のInstallを選択します。ちなみにこのときにスピーカーから爆音でマリオのコインの音が鳴るので注意。
Screenshot_archlinux_2024-01-17_12:56:21.png

ちょっと待ってコマンドが打てるようになるまで待ちます。

ディスクの設定

最初にインストールするディスクのパーティションを切ります。

UEFIの場合には最低でも2つに分ける必要があります。EFI用とルートディレクトリ用です。Swapはなくても動きますが作っておきましょう。

番号 サイズ 説明
0 ~1GBくらい EFI用ディレクトリ
1 自由 ルートディレクトリ
2 任意(必要ではない) Swap用

この3つ(2つ)に最低でも分ける必要があります。ほかにパーティションを分けたい場合にはご自由に。以下では/dev/sdaを上の3つに分けるものとします。環境に合わせて適宜読み替えて下さい。
それぞれの容量は,EFI用に1GB,Swap用に8GB,残りを/用にしています。

fdisk -lでディスク一覧からインストールするディスクを確認します。今回は例として/dev/sdaにインストールしていきます。nvmeだったり仮想環境だとちょっと変わるので読み替えて下さい。当然ですがデータ消えるので消えて大丈夫なところを選びましょう。

# fdisk -l
Disk /dev/sda: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: SAMSUNG MZNTE256
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: CD2965CA-75BB-4D61-B6C2-BC0E97884C7D


Disk /dev/sdb: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model:  SanDisk 3.2Gen1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x99a0587f

Device     Boot   Start     End Sectors  Size Id Type
/dev/sdb1  *         64 1755135 1755072  857M  0 Empty
/dev/sdb2       1755136 1785855   30720   15M ef EFI (FAT-12/16/32)


Disk /dev/loop0: 748.33 MiB, 784683008 bytes, 1532584 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

gdiskを使ってパーティションを切ります。[]の中が入力するところです。[]だけのときはそのままEnterを押して下さい。

# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.9.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): [o]
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): [y]

Command (? for help): [n] //EFI
Partition number (1-128, default 1): []
First sector (34-500118158, default = 2048) or {+-}size{KMGTP}:[] 
Last sector (2048-500118158, default = 500117503) or {+-}size{KMGTP}: [+1G]
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): [ef00]
Changed type of partition to 'EFI system partition'

Command (? for help): [n] //root
Partition number (2-128, default 2): []
First sector (34-500118158, default = 2099200) or {+-}size{KMGTP}: []
Last sector (2099200-500118158, default = 500117503) or {+-}size{KMGTP}: [-8G]
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): []
Changed type of partition to 'Linux filesystem'

Command (? for help): [n] //swap
Partition number (3-128, default 3): []
First sector (34-500118158, default = 483342336) or {+-}size{KMGTP}: []
Last sector (483342336-500118158, default = 500117503) or {+-}size{KMGTP}: []
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): [8200]
Changed type of partition to 'Linux swap'

Command (? for help): [p] //確認
Disk /dev/sda: 500118192 sectors, 238.5 GiB
Model: SAMSUNG MZNTE256
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 6FF68645-A01E-4725-B42C-780AA657C45D
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 500118158
Partitions will be aligned on 2048-sector boundaries
Total free space is 4062 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         2099199   1024.0 MiB  EF00  EFI system partition
   2         2099200       483340942   229.5 GiB   8300  Linux filesystem
   3       483342336       500117503   8.0 GiB     8200  Linux swap

Command (? for help): [w] //大丈夫そうなら書き込む

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): [y]
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.

次に作ったパーティションをフォーマットします。EFI用のパーティションはFAT32である必要があります。私はルート用のものはext4にしていますが,他のファイルシステムにすることも出来ます。詳しくはArchwiki参照。

//EFI用,FAT32
# mkfs.fat /dev/sda1
mkfs.fat 4.2 (2021-01-31)

//ルート用,ext4
# mkfs.ext4 /dev/sda2
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done                            
Creating filesystem with 60155217 4k blocks and 15040512 inodes
Filesystem UUID: fd5f378d-01ca-4221-96a2-9f64f1471691
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done    

//スワップ用
# mkswap /dev/sda3
Setting up swapspace version 1, size = 8 GiB (8588881920 bytes)
no label, UUID=efc6df54-d35b-4076-bef6-60d294b1261f


それぞれを/mnt以下にマウントしていきます。efi用パーティションは/mnt/bootにマウントします。ここにブートローダーがインストールされます。

# mount /dev/sda2 /mnt
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot 
# swapon /dev/sda3

パッケージのインストール

いよいよpacstrapを使って/mntにカーネルとかのパッケージをインストールしていきます。が,その前にいくつかコマンドを実行します。

# pacman -S archlinux-keyring

この後まれに鍵がどうだでエラーを吐かれることがあるのでその対策でarchlinux-keyringを更新しておきます。

次に,reflectorを使ってミラーリストを更新します。日本またはオーストラリアのサーバーで,httpsで24時間以内に更新されているサーバーをレイテンシが短い順に並び替えてくれます。これでこの後のインストールが結構早くなります。

# reflector --country Japan,Australia --age 24 --protocol https --sort rate --save /etc/pacman.d/mirrorlist 

nano /etc/pacman.confで,以下の部分のコメントアウトを消します。これで出力がカラーになり,ダウンロードが並列化されて早くなります。

/etc/pacman.conf
# Misc options
#UseSyslog
Color //ここ
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 5//ここ

ようやくpacstrapで最低限のパッケージのインストールをします。ここで欲張っていろいろ入れると面倒になるので最低限のものだけにしておきます。

# pacstrap /mnt \
base \
linux \
linux-firmware \
linux-headers

さっき変更した設定ファイルをコピーしてchrootします。genfstabfstabを生成。

# cp /etc/pacman.conf /mnt/etc/pacman.conf 
# cp /etc/pacman.d/mirrorlist /mnt/etc/pacman.d/mirrorlist 
# genfstab -U /mnt >> /mnt/etc/fstab 

# arch-chroot /mnt

chrootしたら必要なパッケージを入れていきます。

# pacman -Sy
# pacman -S \
networkmanager \
sudo \
gdm \
fcitx5 \
fcitx5-im \
fcitx5-configtool \
fcitx5-mozc \
git \
gcc \
make \
automake \
pkgconf \
fakeroot \
git \
curl \
wget \
grub \
efibootmgr \
os-prober \
emacs \
go \
adobe-source-han-sans-jp-fonts \
gnome-terminal \
which

userの追加とパスワードの設定

# useradd -m -G wheel username
# passwd username //userのパスワード
New password: 
Retype new password: 
passwd: password updated successfully
# passwd // rootのパスワード
New password: 
Retype new password: 
passwd: password updated successfully

visudoでsudo権限の設定をします。 エディタはお好みで。

# EDITOR=emacs visudo

以下の部分のコメントアウトを解除します

%wheel ALL=(ALL:ALL) ALL

タイムゾーンの設定。

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

言語の設定。

# emacs /etc/locale.gen

/etc/locale.genの2行をコメントアウト解除します。

/etc/locale.gen
en_US.UTF-8
ja_JP.UTF-8
# locale-gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf

マシンの名前を/etc/hostnameに書く。

# echo hostname > /etc/hostname

ブートローダーのインストール。Grubを使います。UEFIではない場合はコマンドがちょっと変わります。

# grub-install --target=x86_64-efi --efi-directory=/boot --recheck --bootloader-id=archlinux
# grub-mkconfig -o /boot/grub/grub.cfg

NetworkManagergdmsystemd-timesyncdsshdの起動設定

# systemctl enable NetworkManager gdm systemd-timesyncd sshd 

一般ユーザーに切り替えてyayのインストール。

# su username
$ cd
$ mkdir Downloads
$ cd Downloads
$ git clone https://aur.archlinux.org/yay.git
$ cd yay

/etc/makepkg.confMAKEFLAGSの行を変えておくとコンパイルが早くなります。コア数と同じくらいにしましょう。

/etc/makepkg.conf
MAKEFLAGS="-j24"

ビルドします

$ makepkg -si

aurから必要なパッケージをインストールします。Gnomeの拡張機能を入れます。ChromeとかVScodeとかもyayで入れられます。

$ yay -S gnome-shell-extension-appindicator \
gnome-shell-extension-clipboard-indicator \
gnome-shell-extension-dash-to-dock \
gnome-shell-extension-kimpanel-git \
gnome-shell-extensions

最後にnvidiaのドライバをインストールします。他のところのGPUを使っている人はスキップしてOKです。
dkmsにすることでカーネルが更新されたときに自動で再ビルドしてくれるようになります。
NVIDIAのサイトからrunファイルをダウンロードしてインストールしてもいいですが面倒なので手抜きします。ドライバとかCUDAのバージョンを固定しないといけない人はそっちでもいいかもしれません。一応aurにnvidia-xxx-dkmsとかいうパッケージもあります。環境によってはちょっと時間かかるかもしれません。

$ yay -S nvidia-dkms

最後に再起動します。Ctrl+Dを適当に何回か押してsuとchrootを抜けます。

# reboot

再起動したらgnomeのログイン画面が立ち上がるはずです。お疲れ様でした。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?