naoketa.net

Arch Linuxを始めた(1)

July 11, 2020

はじめに

小型のベアボーンPCを組み立ててみたくなり、ASRockのDeskMini A300と第3世代のRyzen3で組んでみました。こちらのツイート画像のような構成です。

このDeskMini A300にArch Linuxをセットアップしたので、やったことメモを残しておきます。

セットアップでやったこと

基本的には公式のインストールガイドを参考にセットアップをしています。

ライブUSBから起動

別マシンでArch Linux用のライブUSBを作って、DeskMiniに突っ込んだところから始めます。
まずはUEFIで、boot option prioritiesの順序を入れ替えUSBブートするように変更。「Arch Linux archiso x86_64 UEFI CD」を選択して、LiveUSB内の環境で作業していきます。

日本語キーボードレイアウトを設定

# loadkeys jp106
# 利用可能なキーマップ
# ls /usr/share/kbd/keymaps/**/*.map.gz | grep jp

ネットワークの確認

今回は有線ネットワークで進めました。

ipコマンドで自分の有線ネットワークのNIC名を確認。pingが通ることを確認します。

# ip link
# ping www.google.co.jp

自分の環境だとenp2s0みたいなNIC名で読み込まれています。ちなみにenp2s0などの命名規則は以下のようなです。 https://qiita.com/fetaro/items/b61282130fa638de4528

システムクロックの更新

NTPサーバから取るようにしました。

# timedatectl set-ntp true
# date

パーティションきる

今回はUEFI環境にGPT形式でパーティションを切ります。

とりあえず現在のブロックデバイスを確認。

lsblk

自分の場合は、ライブUSB自体がsdaとして、またNVMe接続のSSDがnvme0n1として認識されていました。nvme0n1gdiskでGPTでパーティションを切ってきます。

# 現在のパーティション
gdisk -l /dev/nvme0n1
# 対話モードで起動
gdisk /dev/nvme0n1

gdiskを対話モードで起動して、既存のパーティションを削除&公式の通り以下の感じで切ってきます。

パーティション パーティションタイプ 容量
/dev/nvme0n1p1 EFIシステム 512MB
/dev/nvme0n1p2 Linuxファイルシステム(/) その他全部

自分の組んだマシンはメモリ16GBに対してSSDが128GBと少なめなことと、suspend-to-diskを利用することもなさそうなので、今回はスワップパーティションは切りません。 必要そうだと感じたら、後からスワップファイルを作成しようと思います。参考

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

nvme0n1p1のシステムパーティションをFAT32で、nvme0n1p2 をext4でフォーマットしてきます。

mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2 

パーティションのマウント

公式を参考に、それぞれ以下にマウントしてきます。

マウントポイント パーティション パーティションタイプ 容量
/mnt/boot /dev/nvme0n1p1 EFIシステム 512MB
/mnt /dev/nvme0n1p2 Linuxファイルシステム(/) その他全部

ルートパーティション

mount /dev/nvme0n1p2 /mnt

システムパーティション

mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot

最後にlsblkで上記の表のようになってるか確認。

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

パッケージを落としてくるミラーサイトのリスト/etc/pacman.d/mirrorlistを書き換える。 上から優先的に読まれるので、とりあえず日本のミラーサイトを上に持って行っておきます。あとはpacstrapで。

pacstrap /mnt base linux linux-firmware

システムの設定

SSD側にシステムが入ったので、次はSSDでブートした時向けの設定をしてきます。

fstab の生成

毎回のブート時に自分でmount /dev/nvme0n1p2 /mntとか叩いてマウントしなくていいように、fstabにマウント情報を記載して自動でやってくれるようにします。

# さっきmountした状態でfstab生成
genfstab -U /mnt >> /mnt/etc/fstab
# 確認
less /mnt/etc/fstab

chroot

これまでインストールしてきた/mntをルート/として扱います。

arch-chroot /mnt

タイムゾーン

タイムゾーンを設定。dateがJST

# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime

ハードウェアクロック(マザボの時間)を、先ほどNTPと同期したシステムクロックと同期反映させます。

#hwclock --systohc

Vim 入れる

ライブUSB側ではvim入ってましたが、先ほどのインストールしたパッケージには含まれていなかったので、ここで入れときます。

sudo pacman -S vim

ロケール

en_US.UTF-8 UTF-8a_JP.UTF-8 UTF-8をアンコメントして locale-genでロケール生成。

vim /etc/locale.gen
locale-gen

日本語キーボードの設定を設定ファイルに記載しておきます。

echo KEYMAP=jp106 > /etc/vconsole.conf

ホスト設定

ホストネームファイルを作成(今回はa300)

echo a300 > /etc/hostname

etc/hostsも記載

127.0.0.1   localhost
::1         localhost
127.0.1.1   a300.localdomain    a300

Rootパスワード

passwd

ブートローダー

GRUBではなく、シンプルで速く起動できるらしいsystemd-bootを使ってみる。(UEFI環境のみでしか使えない。)

  • EFIシステムパーティションにsystemd-bootをインストール
bootctl --path=/boot install

Arch Linuxのローダーントリーファイル追加

touch /boot/loader/entries/arch.conf
# 自分のSSDに作ったルートパーティションの対象領域のUUIDを追記してあとで直す
blkid -o export /dev/nvme0n1p1 >> /boot/loader/entries/arch.conf
vim /boot/loader/entries/arch.conf 

options rootはデバイス名でも大丈夫ですが、変わることもあるのでUUIDで記載しています。

title Arch Linux  
linux /vmlinuz-linux  
initrd /intel-ucode.img  
initrd /initramfs-linux.img  
options root=UUID={blkidで追記したUUID} rw  

/boot/loader/loader.confファイルでローダーを設定

vim /boot/loader/loader.conf

直近ブートメニューは表示しなくて良いのでtimeout 0にした

default arch
timeout 0
editor  no
# 確認
bootctl list

再起動して、続きはArch Linuxを始めた(2)に記載します。


© 2024, Built with Gatsby by Naoki Tazawa