Arch Linux - デスクトップPCにインストール

Arch Linuxをクリーンインストールする手順をアップしておく。サーバー用途ではなく、クライアントPCとして使う前提。これからインストールする人の参考になれば。

仕様

デスクトップPC

  • CPU Core i7 6700 3.40Ghz
  • メモリ 16GB DDR4-2133
  • マザボ ASUS H170M-PLUS, UEFI-BIOS American Megatrends ALASKA-1072009
  • HDD 1TB
  • Nvidia GeForce GT730
  • dhcpクライアント。LANケーブルで有線接続
  • 日本語キーボード

Arch Linux

  • UEFI/GPT環境

Arch Linuxインストールディスクを作成

公式サイトで Arch Linuxのisoイメージファイルをダウンロード。
https://archlinux.jp/download/

ページ中段の「HTTPで直接ダウンロード」の中にある「日本のサーバー」でどれか選択。ディレクトリ一覧表示から「archlinux-YYYY.MM.DD-x86_64.iso」をダウンロードする。

インストールディスクをメディアに焼く

isoファイルのダウンロードサイズは630MB程度(2019.10時点)とCD-Rにも収まるサイズなので、インストールディスクに使うメディアはいろいろ選べる。USBメモリスティック、BD-R、DVD-R、CD-R…等。そのメディアでUEFIブートができれば問題ない。

Arch Linuxの場合、インストールディスクは基本的にいつでも取り出せるように保管しておきたい。インストールが終わった後でもArch Linuxが起動しなくなったときにレスキューディスクとして使ったり、ブートパーティションが入っているHDDをバックアップしたりするのに使えるからだ。ここでは場所を取らず保管しやすいUSBフラッシュメモリでインストールディスクを作成する手順を紹介する。

Linux

Linuxで、USBフラッシュメモリを使ってインストールディスクを作成する手順。
*コマンドの打ち間違い注意。意味がわからない人はやめておいた方がいいです。

ddコマンド

# dd if=[ISOイメージファイルのパス] of=[USBドライブ] bs=1M status=progress && sync

Sample:
    [ISOイメージ] /home/user1/archlinux-2019.08.01-x86_64.iso
    [USBドライブ] /dev/sd[n]

	# dd if=/home/user1/archlinux-2019.08.01-x86_64.iso of=/dev/sd[n] bs=1M status=progress && sync

Mac OSX以降

Macで、USBフラッシュメモリを使ってインストールディスクを作成する手順。
*コマンドの打ち間違い注意。意味がわからない人はやめておいた方がいいです。

Mac OSX-

USBフラッシュメモリのデバイスファイル名を調べる
$ diskutil list

	/dev/disk0 (internal):
		・・・
	/dev/disk1 (synthesized):
		・・・
	/dev/disk2 (external, physical):
		#:	TYPE    				NAME					SIZE		IDENTIFIER
		0:	FDisk_partition_scheme							*8.0 GB		disk2
		1:							DOS_FAT_32 XXXXXXXX
										↑
									 USBドライブ

Sample:
    [ISOイメージ] ./Downloads/archlinux-2019.08.01-x86_64.iso
    [USBドライブ] /dev/disk[n]   *上記で調べたデバイスファイル名

    MS DOS(FAT)形式で初期化
    $ diskutil eraseDisk MS-DOS ARCH-LINUX /dev/disk[n]

    USBドライブをアンマウント
    $ diskutil unmountDisk /dev/disk[n]

    ISOファイルを書き込む
    $ sudo dd if=./Downloads/archlinux-2019.08.01-x86_64.iso of=/dev/disk[n] bs=1m

Windows

Windowsだとツールを使った方がはやくて安全。
おすすめは Rufus。

Rufus
https://rufus.ie/

*詳細は ArchWiki を参照

BIOSの設定画面を開く

BIOSの設定画面は、PCの電源を入れた時に特定のキーを連打していれば開くことができる。どのキーを押せばいいかはマザーボード(BIOS)によって異なるが、だいたい「Del」キーか「F2」キーでいけることが多いので、まずはこれを試してみてだめだったらネットで調べるといい。

ASUS、Giga-byte、MSI製のマザーボード
→ 電源ON,「Del」キー連打

ASROCK、Intel製のマザーボード
→ 電源ON,「F2」キー連打

UEFI/BIOSの設定

  • FastBoot(高速ブート)を「無効」に設定
  • セキュアブートを「無効」に設定
  • CSM を「有効」に設定

Arch Linuxのインストールディスクを起動するために、HDDよりも先にインストールディスクのデバイス(USB、DVD…)が読み込まれるようにブートドライブの順番を設定しておく。

UEFI/BIOS

ブートドライブの順番

    1番目    Arch Linuxのインストールディスク    *レガシードライブではなく、UEFIドライブ(重要)
    2番目    HDD
    3番目〜  なんでもいい

Arch LinuxインストールディスクからPCを起動

準備が整ったらインストールディスクを挿入した状態で電源ON。
正常にUEFIブートされていれば、ここでテキストの選択画面が表示される。間違ってレガシーブートになっている場合はArchLinuxのロゴ画像で表示されるので、ブートドライブの設定からやりなおし。

成功(UEFIブート)

ArchLinux_UEFIブート

失敗(BIOSブート)

ArchLinux_BIOSブート

インストール開始

インストールディスクからの起動が完了。ここからはシェル操作でインストールを進めていく。

ArchLinux_ライブDVDの起動画面

日本語キーボードを設定。


# loadkeys jp106

ネットに接続できるか確認。


# ping -c 3 google.com

HDDの確認

lsblkでHDDのデバイス名を確認。


# lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom
sda    253:0    0   30G  0 disk
├─sda1 253:1    0    1M  0 part
├─sda2 253:2    0  500M  0 part /boot
├─sda3 253:3    0    4G  0 part [SWAP]
└─sda4 253:4    0 25.5G  0 part /

HDDの接続が1つだけであれば、 /dev/sda という名前で認識されているはずだ。上記のサンプルはスクショ用の別のHDDで別のlinuxのパーティションが残っている状態。新品のHDDだったらパーティション情報(sda1, sda2…)は表示されない。

パーティションを決める

クライアントPCとして使うので、パーティションは最小構成でいく。


/dev/sda1    512M   vfat  /boot
/dev/sda2    999GB  xfs   /

サーバーとして使うなら耐障害性を重視して /var /usr /home… と細かく分けてもいいが、自分しか使わないクライアントPCだったらこの方がわかりやすくていい。ただでさえ小さいHDDの空き容量も節約できる。

HDDの初期化・パーティション設定

HDDの残存パーティションを含めてすべて初期化。


# sgdisk -z /dev/sda

パーティション設定。


# sgdisk -n 1:0:+512M -t 1:ef00 -c 1:"EFI System" /dev/sda

# sgdisk -n 2:0: -t 2:8300 -c 2:"Linux filesystem" /dev/sda

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


# mkfs.vfat -F32 /dev/sda1

# mkfs.xfs /dev/sda2

ルートディレクトリをマウント。


# mount /dev/sda2 /mnt

/mnt/boot のマウントポイントを作成してマウント。


# mkdir /mnt/boot

# mount /dev/sda1 /mnt/boot

pacmanのパッケージリストを更新

pacman(パッケージ管理ツール)のミラーリストは、デフォルトでは海外サーバーが優先して接続される設定になっている。このままだとダウンロードに時間がかかるので、「Japan」のミラーサーバーを上にもってきてダウンロードが早くなるように設定を変更する。


# vim /etc/pacman.d/mirrorlist

参考:
公式サイト「Pacman Mirrorlist Generator」で取得
https://www.archlinux.org/mirrorlist/

## Japan
Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = https://jpn.mirror.pkgbuild.com/$repo/os/$arch

ミラーリストの設定が終わったら、パッケージリストを更新


# pacman -Syy

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

*2019.10.19 linuxのインストールを追加


# pacstrap /mnt base base-devel linux

fstabの設定


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

インストールしたHDDへルートディレクトリを変更


# arch-chroot /mnt

vimをインストール


# pacman -S vim

ビープ音がうるさいので鳴らないように設定


# echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf

日本語ロケールを生成

ロケール生成用の設定ファイルを開いて、下記2つのコメントを外しておく。


# vim /etc/locale.gen
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

エクスポートしておく。


# export LANG=en_US.UTF-8

日付・時刻同期の設定

タイムゾーンファイルの変更


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

ntpで時刻同期


# timedatectl set-ntp true

システムクロックの時刻をハードウェアクロックへ設定


# hwclock --systohc --utc

キーマップを日本語に設定


# vim /etc/vconsole.conf
vconsole.conf

KEYMAP=jp106
FONT=lat9w-16

ホストネームの設定

下記の「archlinux」を任意のホストネームに変更


# echo archlinux > /etc/hostname

# vim /etc/hosts
hosts

127.0.0.1    localhost
::1          localhost
127.0.1.1    archlinux.localdomain archlinux

ネットワークデーモンの起動設定

デーモンが自動起動されるように設定しておいて、あとでネットワーク設定。


# systemctl enable systemd-networkd

# systemctl enable systemd-resolved

rootのパスワード設定


# passwd

grubの設定

grubとEFIを扱うためのツールをインストール。


# pacman -S grub efibootmgr dosfstools

ブートローダーをインストール。


# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch --boot-directory=/boot/efi/EFI --recheck

grub.cfg を生成。


# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg

/boot/EFI/boot にブータブルスタブをリネームして複製。


# mkdir /boot/EFI/boot

# cp /boot/EFI/arch/grubx64.efi  /boot/EFI/boot/bootx64.efi

インストールしたArch Linuxを起動

chrootからexitして、シャットダウン。


# exit

# shutdown -h now

シャットダウンが終わったら、インストールディスクを取り外して電源ON。

ネットワークのリゾルバ設定


# mv /etc/resolv.conf /etc/resolv.conf.orig

# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

NICの設定

NIC名を調べる
例) enp0s31f6 など


# ip a

有線ネットワークの設定ファイルをdhcpクライアントとして設定


# vim /etc/systemd/network/20-wired.network
20-wired.network

[Match]
Name=en*     //ip a で調べたNIC名

[Network]
DHCP=yes

ネットワークの再起動


# systemctl restart systemd-networkd

# systemctl restart systemd-resolved

pingでネットワークの疎通確認


# ping -c 3 google.com

ネットワークの基本コマンドを実装

ssh、digなどが使えるようにしておく。

openssh/dnsutils

# pacman -S openssh dnsutils

シェルのログインプロファイルに設定追加

/etc/profile の末尾に2行追加。


$ sudo vim /etc/profile
/etc/profile

・・・
・・・
export SYSTEMD_LESS=FRXMK   #journalctlのログ表示を画面幅で折り返す
export EDITOR=vim           #visudoで使うエディター

Swapfileを設置

メモリ16GBあればswapは無駄かもしれない。自分は「メモリの2倍swap派」なので32GBで設置するが、これは最適値でもないし、そもそもswap自体が必須ではないので不要だと思う人は設置しなくてもいい。あとになって必要だと思ったら設置するのもあり。


# fallocate -l 32G /swapfile

# chmod 600 /swapfile

# mkswap /swapfile

# swapon /swapfile

再起動しても自動マウントされるように fstabの末尾に設定追加


# vim /etc/fstab
fstab

・・・
・・・
/swapfile none swap defaults 0 0

再起動してSwapfileの動作を確認


# reboot

# free -m

Swap: *****   *指定した数値が表示されればOK

一般ユーザーを設置

「user01」をこれから設置する一般ユーザーのアカウント名に変更。


# useradd -m -G wheel user01

# passwd user01

wheelグループを有効にする。


# visudo
/etc/sudoers

・・・
%wheel ALL=(ALL) ALL        #コメントを外す
・・・

一般ユーザーに切り替えて、sudo権限のテストを兼ねて再起動。


# su - user01

$ sudo reboot

yay(AURヘルパー)

AUR(Arch User Repository) を使うためにyayをインストール。
一般ユーザーでインストールしないとエラーになるので注意。

yayをダウンロードするためにgitをインストール。

git

$ sudo pacman -S git

ホームディレクトリに移動して、git cloneでyayをダウンロード。

yay

$ cd

$ git clone https://aur.archlinux.org/yay.git

ダウンロードしたyayディレクトリに移動して、makepkg でインストール。

yay

$ cd yay

$ makepkg -si

終わったらダウンロードしたyayのデータは不要なので削除。


$ cd

$ rm -rf yay

これでArch LinuxのCUI環境のインストールは完了。

デスクトップ環境

続いて、下記のページへ移動してGUI環境をセットアップ。

Arch Linux - xfceデスクトップ環境のインストール