Arch Linux のインストール

メモ:  Category:arch_linux

ずいぶん前に Linux の勉強のため Plamo Linux を触っていたのですが、再入門という事でドキュメントがしっかり用意されている Arch Linux で再度勉強していきます。

まずは、最小構成でのインストールについて作業を記録していきます。

Arch Linux のドキュメントは、とても詳細に作成されていますので、このページは個人的なメモとしてのページになります。

Arch Linux のインストール準備

Arch Linux の公式ページにあるダウンロードリンクから Arch Linux のインストールイメージをダウンロードします。

ページ内のファイル名の最新日付が含まれる archlinux-[日付]-x86_64.iso をダウンロードします。

ダウンロードした iso イメージファイルからブートし、インストールを開始します。

しばらく待つと、 archiso の画面が起動します。

archiso は、 Arch Linux のインストールに必要な最低限のパッケージが詰まった環境で、ここからインストールを進めていきます。

キーボードレイアウトの変更

最初にキーレイアウトを変更します。

# loadkeys jp106

パーティションの設定

Arch Linux のインストールに使用するパーティションを構成します。今回は、UEFI(GPT)環境での構築で進めます。

まず、パソコンに接続されているブロックデバイス(ハードディスクや SSD、CD、DVD、USB メモリーなど)を確認します。

# lsblk
NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0   7:0    0 846.7M  1 loop /run/archiso/airootfs
sda     8:0    0    30G  0 disk
sr0    11:0    1   1.2G  0 rom  /run/archiso/bootmnt

GPT 形式のパーティションで構成するため、 gdisk コマンドを使用してパーティションを設定します。パーティションの割り方については、 Arch Wiki のインストールガイドの例を参考に設定します。

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

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

Creating new GPT entries in memory.

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-62914526, default = 2048) or {+-}size{KMGTP}:[]
Last sector (2048-62914526, default = 62912511+1G) or {+-}size{KMGTP}: [+500M]
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}: [-2G]
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: 62914560 sectors, 30.0 GiB
Model: VBOX HARDDISK
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 2772B865-E216-4509-928B-7377909967EE
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 62914526
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         1026047   500.0 MiB   EF00  EFI system partition
   2         1026048        58720222   27.5 GiB    8300  Linux filesystem
   3        58720256        62912511   2.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.

作成したファイルシステムをフォーマットします。

# mkfs.fat -F 32 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkswap /dev/sda3

フォーマットしたパーティションをマウントします。

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

ここまでで Arch Linux をインストールするためのインストール先の準備ができました。

Arch Linux のインストール

インストールされるパッケージは、 /etc/pacman.d/mirrorlist に定義されているミラーからダウンロードされるようですが、速度が早く同期頻度の高いミラーからダウンロードされるように reflector コマンドでミラーリストを更新します。

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

それでは、最小構成で必要なパッケージをインストールします。

# pacstrap -K /mnt base linux linux-firmware

システムの設定

基本パッケージのインストールが終わったので、システム周りの設定をします。

まず、OS が起動する際にどのデバイスにどのディレクトリをマウントするか指定する「 fstab 」ファイルを生成します。

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

インストールしたシステムに chroot で入ります。 ※Bash スクリプト arch-chroot(/usr/bin)

# arch-chroot /mnt
[root@archiso /]#

タイムゾーンを日本(Tokyo)に設定します。

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

ハードウェアクロックの設定( /etc/adjtime )を生成します。

# hwclock --systohc

ロケールの設定

次はロケールの設定になるのですが、テキストエディタが必要なため vim をインストールします。

# pacman -Syyu
# pacman -S vim

pacman はパッケージマネージャで-Syyu とするとパッケージリストを更新し、インストール済みのパッケージを更新してくれます。

パッケージをインストールするときは、-S オプションとパッケージ名を指定します。

インストールしたテキストエディタで /etc/locale.gen を開きます。

# vim /etc/locale.gen

コメントアウトされたロケールが表示されるので、次の 2 行をコメントアウトするか先頭行に直接追記します。

ja_JP.UTF-8 UTF-8
en_US.UTF-8 UTF-8

上記で指定したロケールのデータを生成するため、 locale-gen を実行します。

# locale-gen
Generating locales...
  en_US.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.

システム全体のロケールを設定するため、locale.conf に LANG 環境変数を設定します。

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

コンソールキーマップを設定します。

次のコマンドで使用可能なキーマップを確認します。

# localectl list-keymaps | grep -i jp
jp106

106 キーボードレイアウトが指定できますので、 vconsole.conf に設定します。

# echo KEYMAP=jp106 > vconsole.conf

ホスト名の設定

任意のホスト名を設定します。(ここでは、hogehost とします)

# echo hogehost > /etc/hostname

ブートローダーのインストール

ブートローダーをインストールしていきます。

ブートローダーには、 LILO ・ GRUB ・ Limine ・ rEFInd などいくつかの種類がありますが、今回は GRUB を選択します。

GRUB のインストールとインストールに必要な efibootmgr をインストールします。

※efibootmgr はブートエントリを NVRAM に書き込むために GRUB のインストールスクリプトによって使用されるそうです。

# pacman -S grub
# pacman -S efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
Installing for x86_64-efi platform.
Installation finished. No error reported.
# grub-mkconfig -o /boot/grub/grub.cfg

ユーザー関係の設定(とりあえずのセキュリティ対策)

別途セキュリティー設定についても勉強していきますが、はじめの一歩として root のパスワードを設定します。

# passwd

root の使用はよろしくないので一般ユーザーを作成します。

sudo コマンドを使って一時的に root 権限を与えられるように wheel グループにも属すようにします。

# useradd -m -g users -G wheel -s /bin/bash hoge-user
# passwd hoge-user

sudo をインストールします。

# pacman -S sudo

wheel グループにも属すユーザーに権限を与えるため /etc/sudoers を編集します。

# vim /etc/sudoers

/etc/sudoers ファイルの次の部分をアンコメントします。

%wheel ALL=(ALL:ALL) ALL

最小限の構成ができたので、 chroot から抜けて再起動します。

# exit
# reboot

再起動すると、GRUB の画面が出てきて OS が起動しログインプロンプトが表示されます。作成した一般ユーザーでログインできれば、 Arch Linux のインストールは完了です。

日本語設定にしていますので、文字化けする場合は次のコマンドで一時的に英語へ変更することができます。

$ export LANG=C

bluenote by BBB