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 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フラッシュメモリを使ってインストールディスクを作成する手順。
*コマンドの打ち間違い注意。意味がわからない人はやめておいた方がいいです。
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…)が読み込まれるようにブートドライブの順番を設定しておく。
ブートドライブの順番
1番目 Arch Linuxのインストールディスク *レガシードライブではなく、UEFIドライブ(重要)
2番目 HDD
3番目〜 なんでもいい
Arch LinuxインストールディスクからPCを起動
準備が整ったらインストールディスクを挿入した状態で電源ON。
正常にUEFIブートされていれば、ここでテキストの選択画面が表示される。間違ってレガシーブートになっている場合はArchLinuxのロゴ画像で表示されるので、ブートドライブの設定からやりなおし。
成功(UEFIブート)
失敗(BIOSブート)
インストール開始
インストールディスクからの起動が完了。ここからはシェル操作でインストールを進めていく。
日本語キーボードを設定。
# 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
・・・
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
KEYMAP=jp106
FONT=lat9w-16
ホストネームの設定
下記の「archlinux」を任意のホストネームに変更
# echo archlinux > /etc/hostname
# vim /etc/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
[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などが使えるようにしておく。
# pacman -S openssh dnsutils
シェルのログインプロファイルに設定追加
/etc/profile の末尾に2行追加。
$ sudo vim /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
・・・
・・・
/swapfile none swap defaults 0 0
再起動してSwapfileの動作を確認
# reboot
# free -m
Swap: ***** *指定した数値が表示されればOK
一般ユーザーを設置
「user01」をこれから設置する一般ユーザーのアカウント名に変更。
# useradd -m -G wheel user01
# passwd user01
wheelグループを有効にする。
# visudo
・・・
%wheel ALL=(ALL) ALL #コメントを外す
・・・
一般ユーザーに切り替えて、sudo権限のテストを兼ねて再起動。
# su - user01
$ sudo reboot
yay(AURヘルパー)
AUR(Arch User Repository) を使うためにyayをインストール。
一般ユーザーでインストールしないとエラーになるので注意。
yayをダウンロードするためにgitをインストール。
$ sudo pacman -S git
ホームディレクトリに移動して、git cloneでyayをダウンロード。
$ cd
$ git clone https://aur.archlinux.org/yay.git
ダウンロードしたyayディレクトリに移動して、makepkg でインストール。
$ cd yay
$ makepkg -si
終わったらダウンロードしたyayのデータは不要なので削除。
$ cd
$ rm -rf yay
これでArch LinuxのCUI環境のインストールは完了。
デスクトップ環境
続いて、下記のページへ移動してGUI環境をセットアップ。