これまで4回に分けてArch LinuxをThinkPad E495にインストールしてGNOMEで日本語を使えるところまで書いてきたんですが、コマンドは1ページに通して書いておかないと読み返しても分かりづらいよなあ、と思ったのでまとめてみようかと思います。理解が甘いのと自分向けなので割と適当になるでしょうが、まあそれはそれで。タイムスタンプ的には2021年8月1日のisoイメージを利用しています。
流れとしてはこうなります。
【1.CUI環境インストール】
【2.環境設定】
最後にGNOME環境で日本語が使えるようになるところまで。
四苦八苦しながらもどうやらArch Linuxを使える状態にまでできるようになりました。
ここからあとの日常的な環境作成もやらなきゃなあ。主にブラウザ周り。
《改版》
2021.8.13 初版
2021.8.14 3-15〜3-19 追加
《目次》
- 【前提条件】
- 【1.CUI環境インストール】
- 1-1.インストーラ作成
- 1-2.USBメモリを挿して起動
- 1-3.日本語キーボードの設定
- 1−4.インストール先のデバイス確認
- 1−5.ブートモードの確認
- 1−6.無線LANのインターフェース名を確認
- 1−7.アクセスポイントの確認
- 1−8.アクセスポイントに接続
- 1−9.導通確認
- 1−10.パーティション作成
- 1−11.パーティションの確認
- 1−12.EFI用のファイルシステム作成
- 1−13.root用のファイルシステム作成
- 1−14.root用のファイルシステムをマウント
- 1−15.EFI用のデバイスをマウントするディレクトリを作成
- 1−16.EFI用のファイルシステムをマウント
- 1-17.マウント確認
- 1−18.アンマウント
- 1−19.パッケージをインストール
- 1−20.fstabの作成
- 1-21.chrootする
- 1-22.systemd-bootのインストール
- 1-23.ローダーの設定
- 1−24.ローダーに対するエントリーファイルの作成
- 1−25.ローダーの確認
- 1-26.rootユーザのパスワードを設定
- 1−27.chrootを終了
- 1−28.OS再起動
- 【2.環境設定】
- 2-1.キーマップの設定
- 2-2.キーマップを日本語配列に変更
- 2-3.locale.genの編集
- 2-4.編集内容の確認
- 2-5.ロケールを生成
- 2-6.ロケールの確認
- 2-7.ロケールの変更
- 2-8.ログオフ&ログイン
- 2-9.ロケールの確認
- 2-10.インターフェース名を確認
- 2-11.アクセスポイントに接続
- 2-12.dhcpcd起動
- 2-13.導通確認
- 2-14.マイクロコードをインストール
- 2-15.時刻の確認
- 2−16.Time Zoneの存在確認
- 2−17.TimeZoneのセット
- 2−18.Time Zoneの設定確認
- 2−19.NTPサーバの設定
- 2−20.NTPとの同期開始
- 2−21.NTPとの同期確認
- 2-22.一般ユーザ追加
- 2−23.一般ユーザのパスワード設定
- 2−24.sudoで権限追加
- 2-25.一般ユーザでログイン
- 2-26.GNOMEとNetworkManagerをインストール
- 2-27.GNOMEを有効化
- 2-28.NetworkManagerを有効化
- 2-29.OS再起動
- 【3.GNOME環境設定】
- 3−1.ネットワーク設定の呼び出し
- 3−2.アクセスポイントの選択
- 3−3.passphrase の入力
- 3−4.ターミナルを起動
- 3−5.日本語フォントのインストール
- 3−6.ロケールを日本語に変更
- 3−7.ログアウト
- 3−8.ログイン
- 3−9.日本語入力関係をインストール
- 3−10. /etc/environment の編集
- 3−11.ログアウト
- 3-12.ログイン
- 3−13.Mozc起動確認
- 3−14.日本語入力の確認
- 3-15.fcitx設定起動
- 3-16.キーボード - 英語(US) を削除
- 3-17.追加ボタンをクリック
- 3-18.「キーボード - 日本語」を追加
- 3-19.キーボード - 日本語 の順位を上げる
- 【終わりに】
- 【謝辞】
【前提条件】
-
2021年8月1日のisoイメージを使いました。
-
インストール先のPCは Thinkpad E495です。
-
インストール先のストレージはNVMe M.2です。
-
コマンドのプロンプトですが
# …rootユーザ(主に1章と2章)
$…一般ユーザ(主に3章)
とそれぞれ実行ユーザが異なります。
【1.CUI環境インストール】
1-1.インストーラ作成
まずは
に記載されているリンク先からisoファイルをダウンロードしてUSBメモリに書き込み。ここは環境によるので特に記載はしません。今回自分はMacOS上でbalenaEtcherを使って32GBのUSBメモリに書き込みました。
1-2.USBメモリを挿して起動
E495にUSBメモリを挿して起動。起動時に「F12」を押してboot menuに移行します。その際一番上に表示される
を選択してEnterキーを押下して先に進むと、rootでログインした状態でインストーラが起動します。
1-3.日本語キーボードの設定
# loadkeys jp106
起動時はキーボードが英語配列で認識されていますが、このコマンドで一時的に日本語キーボードとして認識させます。
1−4.インストール先のデバイス確認
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 16M 0 part
└─sda2 8:2 0 465.7G 0 part
nvme0n1 259:0 0 232.9G 0 disk
1−5.ブートモードの確認
# efivar -l | head -3
ここでリストが表示されればブートモードはUEFIだそうです(このあたりまだ良くわかってない)。
1−6.無線LANのインターフェース名を確認
# ip link
今回のインターフェース名はwlan0でした。
1−7.アクセスポイントの確認
これでアクセスポイント名が表示されますので、お使いになるものをメモしてください。
1−8.アクセスポイントに接続
# wpa_supplicant -B -i [Interface] -c <(wpa_passphrase [SSID] [password])
これでアクセスポイントにIPv6で接続できます。なお、[Interface] [SSID] [password]の括弧部分は入力不要です。注意点としては”-c”の後のリダイレクションと括弧の間にスペースがいらないこと。離れてるとエラーになります。
IPv4での接続が必要な方は上記に続けて
# dhcpcd
と入力することでIPv4のアドレスを取得できます。
1−9.導通確認
# ping -c 4 archlinux.org
pingが通れば正常です。
1−10.パーティション作成
# gdisk /dev/nvme0n1
手順1−4.で確認した /dev/nvme0n1 にパーティションを切ります。
1−10−1.現状確認
Command (? for help): p
〜〜
Number Start (sector) End (sector) Size Code Name
1 2048 1048576 511.0 MiB EF00 EFI system partition
2 1050624 488397134 232.4 GiB 8300 Linux filesystem
Commandにpを入力することで現状を表示
1−10−2.古いパーティションの削除
Command (? for help): d
Partition number (1-2): 1
Command (? for help): d
Using 2
古いパーティションを削除する場合Commandにdを入力します。削除の必要がなければ1-10−3.へ。
1−10−3.EFI用パーティション作成
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-488397134, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-488397134, default = 488397134) or {+-}size{KMGTP}: 512M
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
Partition number (2-128, default 2):
First sector (34-488397134, default = 1050624) or {+-}size{KMGTP}:
Last sector (1050624-488397134, default = 488397134) or {+-}size{KMGTP}:
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
Commandにnと入力してroot用のパーティションを作成します。推奨値は好きなだけ。Hex Codeは8300(default値なので、エンターキー叩くだけ)。
1−10−5.パーティションの確認
Command (? for help): p
〜〜〜〜〜〜〜〜〜〜
Total free space is 4061 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1048576 511.0 MiB EF00 EFI system partition
2 1050624 488397134 232.4 GiB 8300 Linux filesystem
パーティションが作業通りの結果になっているか確認します。
1−10−6.パーティション情報の書き込み
Command (? for help): w
1−11.パーティションの確認
# lsblk /dev/nvme0n1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 232.9G 0 disk
├─nvme0n1p1 259:1 0 511M 0 part
└─nvme0n1p2 259:2 0 232.4G 0 part
nvme0n1の下に nvme0n1p1/nvme0n1p2 が作成されたことを確認します。
1−12.EFI用のファイルシステム作成
# mkfs.fat -F32 /dev/nvme0n1p1
mkfs.fat 4.2 (2021-01-31)
1−13.root用のファイルシステム作成
# mkfs.ext4 /dev/nvme0n1p2
mke2fs 1.46.3 (27-Jul-2021)
/dev/nvme0n1p2 contains a ext4 file system
last mounted on / on Wed Aug 11 08:37:15 2021
Proceed anyway? (y,N) y
root用のパーティションをフォーマットします。続けるかどうか聞かれるので「y」を入力してエンターキーを押下します。
1−14.root用のファイルシステムをマウント
# mount /dev/nvme0n1p2 /mnt
root用のファイルシステムを/mnt にマウントします。
1−15.EFI用のデバイスをマウントするディレクトリを作成
# mkdir /mnt/boot
1−16.EFI用のファイルシステムをマウント
# mount /dev/nvme0n1p1 /mnt/boot
1-17.マウント確認
# mount | grep /mnt
/dev/nvme0n1p1 on /mnt/boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
/dev/nvme0n1p1 が /mnt/boot 、 /dev/nvme0n1p2 が /mnt にマウントされていることを確認します。
OKなら手順1−19.へ。
1−18.アンマウント
# umount -R /mnt
1−17.でマウントを間違えていた場合はアンマウントして手順1−14.からやり直します。
1−19.パッケージをインストール
最小限の base linux linux-firmware の3つだけだとE495ではインストール後無線LANでネットワークに繋げなかったので、無線LAN周りのコマンドとエディターとsudoを同時にインストールしてます。
エディターはviだけで良かったんですが、rootユーザでvisudo使うときはvi、一般ユーザでvisudoを使うときにvimが指定されたので両方入れてます。
ダウンロード先はできるなら日本のミラーサイトを指定したかったんですが、準備されていたミラーサイトのリストに日本のサイトが含まれていなかったのでそのまま使いました。それでも5分とはかからずにインストールできましたけども。
1−20.fstabの作成
# genfstab -U /mnt >> /mnt/etc/fstab
genfstabコマンドを使ってfstabを作成します。
1-21.chrootする
# arch-chroot /mnt
これでインストールしたパッケージの環境で作業できるようになります。
1-22.systemd-bootのインストール
# bootctl install
Created "/boot/EFI".
〜〜〜〜〜〜〜〜〜〜
ブートローダーを/boot にインストールします。
1-23.ローダーの設定
/boot/loader/loader.conf を下記内容に編集します。timeoutの値はお好きな値でどうぞ。
/boot/loader/loader.conf
default arch
timeout 10
editor no
1−24.ローダーに対するエントリーファイルの作成
1−24−1.vmlinuz-linux の文字列をエントリーファイルに書き込む
1−24−2.initramfs-linux.img の文字列をエントリーファイルに書き込む
1−24−3.UUIDの文字列をエントリーファイルに書き込む
# blkid -o export /dev/nvme0n1p2 | grep ^UUID >>/boot/loader/entries/arch.conf
1−24−4.エントリーファイルを編集する
1−24−1〜1−24−3までで作成した /boot/loader/entries/arch.conf を以下の内容に編集します。
title Arch Linux
initrd /initramfs-linux.img
options root=UUID=c1da676d-287b-46ba-adce-31bd1643be03 rw
実際にやらかしたのが4行目の「options」の後に「root=」を追加するところを忘れて、この後のOS起動が正常にできなかったことがありました。あと、同じく4行目の最後に「rw」を追記するのも忘れがちでした。
1−25.ローダーの確認
# bootctl list
Available boot entries:
title: Arch Linux (default)
initrd: /initramfs-linux.img
options: root=UUID=c1da676d-287b-46ba-adce-31bd1643be03 rw
〜〜〜〜〜〜〜〜〜〜〜
1−24で作成したarch.confの内容が表示されればOKです。
1-26.rootユーザのパスワードを設定
# passwd
New password:
Retype new password:
rootユーザのパスワードを設定します。
1−27.chrootを終了
# exit
1−28.OS再起動
# shutdown -r 0
【2.環境設定】
2-1.キーマップの設定
# localectl list-keymaps | grep jp
jp106
日本語配列が使えるか確認します。この時点で日本語キーマップを導入してないので”|”の入力に迷いますがShift+「む」で行けます。
2-2.キーマップを日本語配列に変更
# localectl set-keymap jp106
恒常的に日本語配列に設定します。
2-3.locale.genの編集
/etc/locale.gen をエディターで開き、以下2行をアンコメントします。
2-4.編集内容の確認
# grep -v ^# /etc/locale.gen
2-5.ロケールを生成
# locale-gen
ロケールを生成します。
2-6.ロケールの確認
# locale -a
C
en_US.utf8
ja_JP.utf8
ロケールにen_US.utf8とja_JP.utf8 が追加されていることを確認します。
2-7.ロケールの変更
# localectl set-locale en_US.utf8
この時点ではターミナルに日本語は表示できないので、ロケールにen_US.utf8 をセットします。
2-8.ログオフ&ログイン
一度ログアウトしてログインし直します。
2-9.ロケールの確認
# locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
〜〜〜〜〜〜〜〜〜〜
LC_ALL=
ロケールが「LC_ALL=」以外「en_US.utf8」に変更されていることを確認します。
2-10.インターフェース名を確認
# ip link
インストール後の無線LANのインターフェース名はwlp4s0でした。
2-11.アクセスポイントに接続
# wpa_supplicant -B -i [Interface] -c <(wpa_passphrase [SSID] [password])
SSIDの確認は1-7.で確認してるので割愛してます。
2-12.dhcpcd起動
# dhcpcd
dhcpcdを起動します。
2-13.導通確認
# ping -c 4 archlinux.org
2-14.マイクロコードをインストール
です。
2-15.時刻の確認
# timedatectl
Local time: Thu 2021-08-12 01:19:10 UTC
Universal time: Thu 2021-08-12 01:19:10 UTC
RTC time: Thu 2021-08-12 01:19:10
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
Local TimeとTime Zoneが「UTC」、System clock synchronizedが「no」、NTP serviceが「inactive」です。
2−16.Time Zoneの存在確認
# timedatectl list-timezones | grep Tokyo
Asia/Tokyo
Asia/Tokyo が表示されればOKです。
2−17.TimeZoneのセット
# timedatectl set-timezone Asia/Tokyo
コマンドが正常終了すればOKです。
2−18.Time Zoneの設定確認
# timedatectl
Local time: Thu 2021-08-12 10:21:03 JST
Universal time: Thu 2021-08-12 01:21:03 UTC
RTC time: Thu 2021-08-12 01:21:02
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
Local Timeが「JST」、Time zoneが「Asia/Tokyo」に変更されていればOKです。
2−19.NTPサーバの設定
/etc/systemd/timesyncd.conf に以下の2行を追加します。
NTP=ntp.nict.jp
2−20.NTPとの同期開始
# timedatectl set-ntp true
2−21.NTPとの同期確認
# timedatectl
Local time: Thu 2021-08-12 10:21:49 JST
Universal time: Thu 2021-08-12 01:21:49 UTC
RTC time: Thu 2021-08-12 01:21:48
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
NTP serviceが「active」になっていればOKです。
2-22.一般ユーザ追加
# useradd -m -G wheel *******
普段使う一般ユーザを追加します。
-mでホームディレクトリ作成、ーG で追加するユーザに2つ目のグループwheelを付与してます。
2−23.一般ユーザのパスワード設定
# passwd *******
New password:
Retype new password:
追加した一般ユーザのパスワードを設定します。
2−24.sudoで権限追加
# visudo
〜〜〜〜〜〜〜〜〜
root ALL-(ALL) ALL
******* ALL = (ALL) ALL
一般ユーザの行を追加して権限を与えます。自分しか使わないのにあまり権限つけてもなあ、ということでグループではなくユーザ単位で設定しました。
2-25.一般ユーザでログイン
一度ログアウトして一般ユーザでログインしなおします。
2-26.GNOMEとNetworkManagerをインストール
2-27.GNOMEを有効化
$ sudo systemctl enable gdm
gdmがOS起動時に起動するよう有効化します。
2-28.NetworkManagerを有効化
$ sudo systemctl enable NetworkManager
NetworkManagerがOS起動時に起動するよう有効化します。
2-29.OS再起動
$ sudo shutdown -r 0
OSを再起動するとGNOMEのログイン画面が表示されるのでログインします。
【3.GNOME環境設定】
3−1.ネットワーク設定の呼び出し
画面右上をクリックして設定画面を呼び出します。
3−2.アクセスポイントの選択
Wi-Fiメニューからつなぎたいアクセスポイントを選択します。
3−3.passphrase の入力
アクセスポイントのパスフレーズを入力します。これでネットワークに接続できます。
3−4.ターミナルを起動
画面左上のActivityをクリック⇨画面右下の…からターミナルを選択します。
3−5.日本語フォントのインストール
$ sudo pacman -S otf-ipafont
ここではIPAフォントを選択してます。
3−6.ロケールを日本語に変更
$ localectl set-locale ja_JP.utf-8
3−7.ログアウト
ログアウトします。
3−8.ログイン
ログイン時の表記が日本語表記に変更されていることを確認します。
ログイン完了後に各種フォルダを日本語に変更するか聞かれるけど、そこはお好みで。
3−9.日本語入力関係をインストール
$ sudo pacman -S fcitx fcitx-mozc fcitx-configtool fcitx-im
インストール前にこれも入れるかあれも入れるかと聞かれますが、とりあえず全部インストールしました。
3−10. /etc/environment の編集
下記3行を /etc/environment に追記します。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
3−11.ログアウト
ログアウトします。
3-12.ログイン
ログインします。
3−13.Mozc起動確認
ブラウザの検索バー等テキストを入力できるところにカーソルを合わせて
Ctrl+スペース
と押下して「Mozc」という小さいウィンドウが表示されることを確認します。
3−14.日本語入力の確認
テキストを入力できるところで、日本語入力が可能であるか確認します。
3-15.fcitx設定起動
アクティビティから「fcitx設定」 を起動します。
3-16.キーボード - 英語(US) を削除
「キーボード - 英語(US)」を選択した状態で画面下の「-」をクリックして、「キーボード - 英語(US)」を削除します。
3-17.追加ボタンをクリック
画面下の「+」をクリックします。
3-18.「キーボード - 日本語」を追加
「キーボード - 日本語」を選択した状態で「OK」ボタンをクリックします。
3-19.キーボード - 日本語 の順位を上げる
画面下の上矢印で「キーボード - 日本語」の順位を上にあげます。
【終わりに】
とりあえず記憶によらずArch Linuxを構築できる手順が作れました。途中何度も挫けて放り出しそうになりましたが、それでも面白そうと思い返して諦めなかったあたりは我ながらよくやったと思います(途中で飽きてUbuntuをインストールしてみたりしたのは内緒)。たまには知らないディストリビューション触るの、楽しいですね。
【謝辞】
最後になりますが、この手順を書くにあたり以下のブログを参考・参照させていただきました。ありがとうございました。