ArchLinuxを構築してみた
メインPCをWindowsからArchLinuxにするべく、我々はサバンナの奥地へ向かった…。
ということでArchLinuxのインストールから構築(GUIデスクトップ、日本語環境の最低限の構築)までの備忘録というかメモのようなものです。
本来の目的は自分のメモ用なので、ArchLinuxとは関係ない知識も書いてますのでご了承ください。
インストーラー作成、USBからarchlinuxを起動
今回はUSBにarchlinuxのisoを書き込んでインストーラーを作成しました。
下記リンクからisoファイルをダウンロードしてください。(たしかBitTorrentでダウンロードのリンクのものをダウンロードした気がする…)
ArchLinuxをダウンロード
PCにUSBを指し、Rufusを使ってUSBにisoファイルを書き込みます。
Rufus
※archlinuxはセキュアブートがオンになっている状態では起動できないため、セキュアブート(UEFI)をWindows上でオフにしてから起動する。
パソコンのセキュアブートを有効/無効にする方法 - Windows 11 / Windows 10
USBを指したまま、一度電源を切りbootmenuを起動する。
Windowsの電源を切るときにshiftを押しながらシャットダウンボタンを押すことでPCを完全にシャットダウンすることができる。(これをしないとbootmenuが起動しませんでした)
(自分用:その後、lenovoの表示時にエンターキーを連打してbiosを立ち上げる。)
bootmenu起動後、自分のUSBのメーカー名とUSBの名前が表示されると思うのでそれを選択してUSBからarchlinuxを起動する。
PCへarchlinuxをインストール
基本的に以下のインストールガイドを見ながら行います。
archwikiは内容がとても充実しているのでwikiだけでインストール、構築可能ですが、内容が充実しすぎて何を使えばいいかわからなくなります…。(個人的な感想)
その時はその都度ググってみてください。
インストールガイド
インストールガイドを元にインストールを行う(一部省略してます)
キーボードを日本語配列にする。
(GNOMEのGUI上で設定をしない限り、電源を切ったらリセットされるので注意)
# loadkeys jp106
ネットワークに接続する。
今回はiwctl(パッケージ名はiwd)を使って無線lan(wifi)に繋げました。
iwd
iwctlを起動する
$ iwctl
wifiデバイスを表示する(デバイス名取得)
[iwd]# device list
ネットワークをスキャンする
[iwd]# station <device> scan
デバイス名とSSIDでwifiに接続する
[iwd]# station <device> connect <SSID>
最後にpingで接続確認をする
# ping archlinux.jp
タイムゾーンの設定
タイムゾーンを日本に設定
timedatectl
# timedatectl set-timezone Japan
パーティションの設定
BIOS+MBR(マスターブートレコード)の場合はfdisk、UEFI+GPTの場合はgdiskを使用してパーティションを設定する。
古いPCでない限りUEFI+GPTにした方が良いため、今回はUEFI+GPTでパーティションを設定する。
参考サイト:
ArchLinuxインストール(2)
参考サイト:
UEFI+GPTの場合、以下のリンクの図のBIOSとMBRの部分を読み替えれば良い。
UEFIはGPTを呼び出し、GPTはブートローダ(今回はGRUBをインストールする)を呼ぶ。
Bootup Sequence
UEFI+GPTでパーティショニングを行う場合、archlinuxを起動するための必要なパーティションは最低で2つ(EFIシステムパーティションとarchlinux用パーティション)。
PCのメモリが少ない場合は任意でスワップ用パーティションを設定する。(メモリが足りなくなった場合にメモリ配列を変える。その際に一時的に退避する用のパーティション)
EFI システムパーティション
今回は以下のようにパーティショニングを行った。
パーティションタイプ | マウントポイント | パーティションナンバー | 容量 |
---|---|---|---|
EFIシステムパーティション | /mnt/boot | 1 | 512MiB |
Linux x86-64 root (/) | /mnt | 2 | デバイスの残り容量全て |
編集したいデバイス名を指定してgdiskを起動する。
# gdisk /dev/sda
まずoコマンドで、空のパーティションテーブルを作成する。
※デバイスの内容がクリアされるので要注意
次にnコマンドでパーティションを順番に追加する。
- EFIシステムパーティション
Partition number : <Enter> (省略)
First sector : <Enter> (省略)
Last sector : +512M<Enter>
Hex code or GUID : ef00<Enter>
- archlinux
Partition number : <Enter> (省略)
First sector : <Enter> (省略)
Last sector : <Enter> (省略)
Hex code or GUID : <Enter> (省略)
パーティション追加したらwコマンドで書き込む。
パーティションが正常に設定されているか確認する。
# lsblk
フォーマット
パーティショニングしたデバイスを実際に使えるようにするためにはフォーマットする必要があります。
- EFIシステムパーティションのフォーマット
/dev/sda1 の部分はパーティションのデバイス名に置き換えてください。-F32オプションでFAT32 でフォーマットします。
# mkfs.vfat -F32 /dev/sda1
- その他(archlinux)のパーティションのフォーマット
/dev/sda2 の部分はパーティションのデバイス名に置き換えてください。ext4でフォーマットします。
# mkfs.ext4 /dev/sda2
フォーマットしたら、以下のコマンドでフォーマットできているか確認しましょう。
# lsblk --fs
必須パッケージのインストール
pacstrapでbaseパッケージとLinuxカーネル、一般的なハードウェアのためのファームウェアをインストールします。
# pacstrap -K /mnt base linux linux-firmware
fstab の生成
# genfstab -U /mnt >> /mnt/etc/fstab
chroot
# arch-chroot /mnt
タイムゾーン
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc
ローカリゼーション
# locale-gen
# vi /etc/locale.conf
以下の記述をアンコメントする。
ja_JP.UTF-8 UTF-8
パスワード
rootパスワードを設定する。
# passwd
ブートローダのインストール
先程書いたように、今回はGRUBをインストールします。
ブートローダー
GRUB
再起動
GRUBがインストールできたら再起動します。
再起動後、archlinuxが立ち上がればPCにインストールができています!
archlinuxの構築
archlinuxがPCにインストールできたらいよいよ構築です。
この時点ではcuiのみなので引き続き頑張りましょう。
ここでは以下のページを参考に進めます。
一般的な推奨事項
ユーザー追加
常にrootの状態で作業するのは愚かです(archwikiのお言葉)
ユーザーを追加しましょう。
ユーザー管理
現在システムにログインしているユーザーを一覧表示する。
# who
ユーザーを追加する。
# useradd -m <username>
ユーザーにパスワードを登録する。
# passwd <username>
ネットワーク接続
「インストールの時みたいにiwctlでwifiに繋げば良いんでしょ〜?」って思った方。
残念ながらiwctlはこの時点ではインストールされていません涙
私はめんどくさいので無線で接続したかったのですが、無線接続に必要なパッケージはこの時点ではインストールされていないので仕方なく有線LANでやりました。
ネットワークインターフェイス
ネットワークインターフェイス(無線、有線)を確認する。
# ip link
ネットワークインターフェイスを有効化にする(無効化はdown)
# ip link set <interface> up
ネットワークインターフェイスごとに割り振られたIPアドレスを確認する。
(有線はeから始まり、無線はwから始まる名前だったような…)
# ip address show
DHCP(IPアドレスを割り振る)
DHCPとは、自動でipアドレスを割り振るやつ。(パッケージはdhcpcdとか)
今回はこれは使わないで手動でipアドレスを振った。
IPアドレスをインターフェイスに追加。(かぶらないIPアドレスを設定)
# ip address add <address>/<prefix_len> broadcast + dev <interface>
ルーティングテーブル
振ったIPアドレスのデフォルトゲートウェイ(ルート)を振る。
ルートを追加(PREFIXは、デフォルトゲートウェイに対してはdefault)
(addressはデフォルトゲートウェイだから1)
# ip route add <PREFIX> via <address> dev <interface>
DNSサーバー
IPアドレスとドメイン名(Google.comなど)を紐づける。名前解決する。
名前解決を有効にするサービスを有効にする
systemd-resolved
# systemclt enable systemd-resolved
# systemclt start systemd-resolved
GNOME
GUIのインストール環境をインストールする。
GDMはGNOMEを管理するマネージャーのようなものです。
startを実行するとすぐにGNOMEが起動します。
GNOME
# pacman -S gdm
# pacman -S gnome
# systemclt enable gdm.service
# systemclt start gdm.service
ネットワークマネージャ
GUIの画面からネットワーク設定ができるようにネットワークマネージャを入れましょう。
NetworkManager
# pacman -S networkmanager
# systemclt enable NetworkManager.service
# systemclt start NetworkManager.service
sudoのインストール、追加
以下のコマンドで/etc/sudoersの内容を編集する。
どうして普通の開き方をしないかというと、この設定ファイルに誤った記述をしてしまうともしかしたらsudoが使えなくなる可能性があるからです。
(sudoが使えなくなるということは、ユーザからこのファイルを開けなくなります)
# EDITOR=vim visudo
ファイルに以下の内容を追加。こうすることでこのユーザはsudoが使えるようになる。
<username> ALL=(ALL:ALL) ALL
またvisudoとは、/etc/sudoersを開くためのコマンドです。
manコマンドをインストールして確認してみましょう。
# pacman -S man-db
# man visudo
日本語入力
今回はanthyで日本語入力、表示を行いました。
いろいろインストールしたので何が効いたかはっきり分からなくなってしまったので、とりあえず参考にしたサイトとコマンドを載せておきます。
参考サイト:
Arch Linuxに日本語環境を構築する
ローカリゼーション
補足:二行目以降はどれか一つでいいみたいです。。。
# pacman -S anthy
# pacman -S fcitx-anthy
# pacman -S ibus-anthy
# pacman -S scim-anthy
# reboot
再起動(またはログアウトからログイン)をしたら「設定」の「地域と言語」の「あなたのアカウント」から日本語表示にします。
また「設定」の「キーボード」の「入力ソース」でキーボードを追加します。
+ボタンを押すと日本語キーボードが追加できます。
その中に「日本語(Anthy)」というものがあるのでそれを追加します。
追記:いろいろやっているうちにわけわからんことになってしまったので、最終的に以下のサイトを参考にfcitxをインストールしました。
http://note.kurodigi.com/archlinux-fcitx5/
おわりに
これで最低限のGUIの日本語環境ができました。
ここからお好みに合わせていろいろインストールしていきます。
またなにかインストールしたら備忘録として残す予定です。
そしてここから始まる恐怖(カーネルパニック)に遭遇したときも備忘録に残します。。。