UEFI+GPT 環境での Arch Linux インストーレーション

Linux を UEFI 環境にインストールするというのは結構めんどくさい。ArchWiki はわかりやすいけれどいくつかリンクをたどらなければならず、インストールガイドはやや不親切だ。

今回ブートローダに使い慣れてる GRUB を選択したが、 systemd-boot のほうがシンプルで良いかもしれない。ただ UUID を入力する手間があるので Vim などのコマンドが使えるエディタを使える人でないとハードルが高いかもしれない。


UEFI USBモードでブートする。 Virtualbox の場合起動にかなり時間がかかるので気長に待とう。

パーティション管理

UEFI 環境かどうか確認をする。

# ls /sys/firmware/efi/efivars

ファイルを発見できなかった場合通常の BIOS モードとなっている。マザーボードの設定を変更してから再度確認しよう。

ここからパーティションを作成していく。

まず、現在のパーティションレイアウトを確認する。

# lsblk

EFI パーティション作成

UEFI 環境で OS を起動するには FAT32 でフォーマットされた EFI システムパーティションが必要だ。ここには UEFI ファームウェアが読み込む OS 起動のために必要なプログラムが格納される。システム EFIパーティションの容量は Linux だけの起動ならば 200MB〜 512MBで必要十分だ。

# gdisk /dev/sda 

作成例

Command (? for help): n
Partition number (1-128, default 1): 1
First sector (**-*********, default = ****) or {+-}size{KMGTP} :
Last sector (****-*******, default = *******) or {+-}size{KMGTP} : 512M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): EF00
Changed type of partition to 'EFI System'

パーティションの種類を聞いてくるので以下のように入力。

Hex code or GUID : EF00

ここだけ注意して作成、他のパーティションは適当に作ろう。


ファイルシステムの設定とマウント

EFI パーティションの設定を行う。 EFI ブートパーティションは FAT32 である必要があるため以下のように設定。

# mkfs.fat -F32 /dev/sda1

他のパーティションの設定。ルートとホームパーティションを ext4 に。

# mkfs.ext4 /dev/sda2 
# mkfs.ext4 /dev/sda3

実際にパッケージのインストールを行うパーティションとディレクトリを指定しマウントする。ルートパーティションのマウント。

# mount /dev/sda2 /mnt

ホームパーティションをマウントする。ルート以外は事前にディレクトリを作成して置かなければマウントできない。

# mkdir /mnt/home
# mount /dev/sda3 /mnt/home

マウントされているか確認

 # lsblk 

パッケージのインストール

パッケージをインストールするスクリプトを実行。pacstrap は arch-install-scripts パッケージ内に存在する ArchLinux 独自のスクリプト。

# pacstrap -i /mnt

fstab のコピーを行う。 fstab はどのパーティションにどのファイルシステムか、どこにマウントするかなど起動時に読み込まれる設定ファイル。

# genfstab -U -p /mnt >> /mnt/etc/fstab

ディレクトリを変更し、各種設定を行う

arch-chroot コマンドを実行し、マウントした新しいルートディレクトへ擬似的に移動する。arch-chroot は /proc などの API ファイルシステムもマウントする Arch 独自のスクリプト。これによって chroot でありながら /etc/resolv.conf などが有効になる。

# arch-chroot /mnt /bin/bash

無事に新ディレクトリへ移行できたかどうか確認。

# ls

locale の設定。テキストレンダリング、時間日時、地域設定など。

# nano /etc/locale.gen
# locale-gen 


タイムゾーンの設定。

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

PCの時刻を合わせる。

# hwclock --systohc --utc

ホスト名(PC名)の設定。

# echo hogehoge > /etc/hostname
# nano /etc/hosts
127.0.1.1    localhost.localdomain    hogehoge

ネットワークマネージャのインストール。

# pacman -S networkmanager

ネットワークマネージャの有効化。 systemd を介してネットワークマネージャを起動時に立ち上がるように設定。

# systemctl enable NetworkManager

パスワードの設定。

# passwd 

ブートローダのインストール

必要なパッケージのインストール。

# pacman -S grub efibootmgr

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

# mkdir /boot/efi
# mount /dev/sda1 /boot/efi

確認

# lsblk

GRUB をブートパーティションへインストール。

# grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi

grub-mkconfig を実行し、Linux カーネルの所在を検知させ、ファイルに設定を保存させる。

# grub-mkconfig -o /boot/grub/grub.cfg

何らかのエラーで GRUB が起動しなくなった場合のバックアップを行う。

# mkdir /boot/efi/EFI/BOOT
# cp /boot/efi/EFI/GRUB/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI

終了処理

chroot から抜ける。

# exit

マウントを解除

# umount -R /mnt

再起動

# reboot

― 終 ―

こちらの記事もどうぞ

Arch Linux – AURヘルパー「yay」を試す... Arch Linux には野良ソフトのインストールを支援する非公式ツールがある。ユーザが作ったスクリプト(PKGBUILD)に従い、ほぼ何もコマンドを打たずに野良ソフトをインストールできるスグレモノだ。これを「AURヘルパー」と呼ぶ。 今までならば、「yaourt」というヘルパーを使っていれば...
LinuxとWindowsをデュアルブートするのは止めたほうが良い... Photo by Edgar Castrejon on Unsplash 更新:2019年1月24日 ※ これは Linux ビギナー向けのテキスト。 Linux と Windows のパーティションやブートローダに精通しているのならば読むだけ時間の無駄。...
Arch Linux をメイン PC の OS にと考えてる人へ... 約5年間 Arch Linux をメインPCに入れて生活をともにしてきたが、しんどくなってきたので Manjaro Linux に移行した。そのときに思ったこと。 Linux いじりにどっぷりハマっていて、手間暇トラブルどんとこいな人ならば関係のない話。 ■疲れるディストリビュ...

コメントを残す

メールアドレスが公開されることはありません。