LoginSignup
1
2

【備忘録】ArchLinuxをインストールして構築してみた

Last updated at Posted at 2023-08-05

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

再起動(またはログアウトからログイン)をしたら「設定」の「地域と言語」の「あなたのアカウント」から日本語表示にします。
image.png

また「設定」の「キーボード」の「入力ソース」でキーボードを追加します。
+ボタンを押すと日本語キーボードが追加できます。
その中に「日本語(Anthy)」というものがあるのでそれを追加します。
image.png

追記:いろいろやっているうちにわけわからんことになってしまったので、最終的に以下のサイトを参考にfcitxをインストールしました。
http://note.kurodigi.com/archlinux-fcitx5/

おわりに

これで最低限のGUIの日本語環境ができました。
ここからお好みに合わせていろいろインストールしていきます。
またなにかインストールしたら備忘録として残す予定です。
そしてここから始まる恐怖(カーネルパニック)に遭遇したときも備忘録に残します。。。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2