Arch LinuxをUEFI + GPT環境にインストールする
2015-04-25
【2022年版】Arch LinuxをUEFI + GPT環境にインストールするを公開しました。こちらの情報の方がより新しい内容となっていますのでご参考にしてください。
こんにちは。今回のテーマは『Arch LinuxをUEFI + GPT環境にインストールする』です。最近はUEFI対応のマシンが増えてきてLinuxディストリビューションもUEFI対応が進んでいます。Arch LinuxもUEFIに対応しています。しかし、インストール方法はBIOSマシンと若干異なる点がありますので今回記事にしてみました。 【関連記事】 Arch Linuxをインストールする [adsense02] 【目次】 UEFIマシンが主流に パーティション管理はMBRからGPTが主流に インストールメディアの入手 UEFIモードでの起動 インストール準備 パーティショニングとファイルシステムの作成 システムのインストール システム設定 ブートローダーのインストール 再起動・起動確認
UEFIマシンが主流に
本記事を書いている2015年現在、UEFIはBIOSを代替として主流になってきました。現在新品で販売されているPCやマザーボードの多くがUEFIマシンだと思います。LinuxディストリビューションもUEFI対応のディストリビューションが増えてきました。 まだUEFIに未対応のディストリビューションもあります。もしUEFIマザーボードにインストールする場合には「レガシーモード」等のBIOS互換モードにすることでBIOSマシンと同様のインストールができます。
パーティション管理はMBRからGPTが主流に
UEFIの普及に伴いハードディスクドライブのパーティションテーブルも従来のMBR(マスターブートレコード)からGPT(GUID パーティションテーブル)へ置き換わっていく流れだと思います。 MBRでは2TB以上のパーティションを扱えず、プライマリパーティションの数が4つに制限されるなどの問題がありましたが、GPTでは2TBの壁を越え、パーティションも最大128個(gdiskを使うと更に増やせるらしい)作成可能です。ただ、GPTをBIOS経由で起動するにはブートローダーのインストール場所を工夫するなど従来のMBRと同じ感覚で使えない点もあります。
インストールメディアの入手
Arch LinuxのインストールメディアはUEFIに対応しています。Arch Linuxのダウンロードページからインストールメディアをダウンロードしてください。
UEFIモードでの起動
UFEIマシン側でHDDよりもメディアのブートを優先に設定して下さい。インストールメディアを入れて起動すれば自動的にArch Linuxのブートローダーが起動します。以下のような画面が出るので最初のアイテムを選択します。 この後しばらく真っ黒な画面が続きますが、慌てず待って下さい。Arch Linuxが起動します。
インストール準備
キーボードレイアウトの設定
まずはキーボードレイアウトを設定しましょう。
# loadkeys jp106
ネットワーク接続の確立
有線で接続することを強くオススメします。大抵の場合、起動時にネットワーク接続は確立されます。以下コマンドで確認して下さい。
# ping -c 3 www.google.com
もしping: unknown hostのエラーが出た場合はArch wikiを参考にネットワーク接続を確立して下さい。
パーティショニングとファイルシステムの作成
パーティショニングにはgdiskがオススメ
UEFIブートではGPTを使うことが推奨されています。今回もGPTでパーティショニングをします。 Arch Linuxのインストールメディアに同梱されているパーティショニングツールは以下の3つです。
- parted:MBR/GPT対応
- fdisk:MBR対応
- gdisk:GPT対応
PartedはMBRとGPTに対応していますが、少々使い勝手が悪いです。筆者としてはGPTでパーティショニングをする場合はgdiskをオススメします。gdiskは以下コマンドで実行します。(OSをインストールするHDDがsdaの場合)
# gdisk /dev/sda
gdiskを起動したら以下のようにoでGPTのパーティションテーブルを作成します。(この作業で既存パーティションは全て削除されますので注意して下さい)
Command (? for help):o
ESP(EFI System Partition)の作成
UEFIブートをする場合はESPと呼ばれるFAT32でフォーマットされたパーティションを作成する必要があります。容量は512MB程度が推奨されています。
Command (? for help):n Permission number: 1 First sector : 何も押さずエンター Last sector : +512M Hex code or GUID : EF00
その他のパーティショニング
ESP以外は自由にパーティショニングして下さい。root,swap,home等のパーティションに分けるのが一般的です。今回はrootとswapのみ作成します。 swapパーティション(作成例)
Command (? for help):n Permission number: 2 First sector : 何も押さずエンター Last sector : +1G Hex code or GUID : 8200
rootパーティション(作成例)
Command (? for help):n Permission number: 3 First sector : 何も押さずエンター Last sector : 何も押さずエンター Hex code or GUID : 8300
ファイルシステムとswapの作成
ESPのフォーマット
# mkfs.vfat -F32 /dev/sda1
Linuxファイルシステム(ext4)のフォーマット
# mkfs.ext4 /dev/sda3
スワップの作成と読み込み
# mkswap /dev/sda2
swapon /dev/sda2
パーティションのマウント
先ほど作成したパーティションをマウントしましょう。まずはルートからです。
# mount /dev/sda3 /mnt
次にESPを/mnt/bootにマウントします。ESPの場所は後に重要になってきます。
# mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
システムのインストール
ミラーリストの設定
インストールするためのシステムをダウンロードするミラーを設定します。以下コマンドで設定ファイルを開きます。設定例のように使いたいミラーを一番上にコピーします。
# nano /etc/pacman.d/mirrorlist
例
Arch Linux repository mirrorlist
Sorted by mirror score from mirror status page
Generated on YYYY-MM-DD
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
インストール
ではシステムのインストールの準備が整いましたのでマウントした/mntにシステムをインストールしていきます。以下コマンドを実行します。
# pacstrap -i /mnt base base-devel
fstabの作成
# genfstab -U -p /mnt >> /mnt/etc/fstab
nano /mnt/etc/fstab
システム設定
以下ではインストール時に必要と思われる設定項目につき設定を行っていますが、必ずしもこのタイミングで行う必要のあるものばかりではありませんので、再起動後に行ってもOKをですが最低限rootパスワード設定は忘れずに行って下さい。
新システムへの移動
さて、必要なファイルのコピーは完了したので、新しいシステムに入っていきます。以下コマンドを実行して下さい。
# arch-chroot /mnt /bin/bash
ロケール設定
# nano /etc/locale.gen
以下の行をコメントアウトします。
en_US.UTF-8 UTF-8 ja_JP.UTF-8 UTF-8
次に以下コマンドを実行します。
# locale-gen
次にlocale.confファイルを作成します。この段階では日本語設定はせずに、GUI環境導入後に設定することをオススメします。
# echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8
コンソールフォントとキーボードレイアウトの設定
/etc/vconsole.confファイルを作成します。
# nano /etc/vconsole.conf
以下のフレーズを記載します。(フォントなどはお好みでどうぞ)
KEYMAP=jp106 FONT=Lat2-Terminus16
エリア設定
次にエリア設定をします。以下のコマンドは日本在住の場合です。海外にお住まいの場合は/usr/share/zoneinfo/ディレクトリ内の地域とエリアを選択して下さい。
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
時刻設定
ハードウェアクロックをUTCに設定します。
# hwclock -u -w
ホスト名の設定
以下コマンドを実行してホストネームを設定します。
# echo ホスト名 > /etc/hostname
ネットワーク設定
再起動後にネットワーク接続が有効なようにdhcpcdサービスを有効にしておきましょう。(NetworkManagerを使う場合はそちらを有効にします)
# systemctl enable dhcpcd.service
rootパスワード設定
この設定を忘れると再起動後にログインできなくなります。以下コマンドを実行して忘れず設定しましょう。
# passwd
ブートローダーのインストール
今回はGRUBをインストールすることにします。gummibootをインストールしたい場合はArch Wikiを参考にしてください。
Grubのインストール
grubと他の必要なパッケージをインストールします。今回はx86_64を前提として説明しています。Grubはpacmanでインストールしただけでは設定が反映されないのでgurb-installを実行します。
# pacman -S grub dosfstools efibootmgr
grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=arch_grub —recheck —debug
grub-mkconfig -o /boot/grub/grub.cfg
UEFIファームウェアによってはブータブルスタブが特定の名前で特定の場所に置かれていないと起動できないものがあります。念の為に以下のコマンドを実行しておきます。
# mkdir /boot/EFI/boot
cp /boot/EFI/arch_grub/grubx64.efi /boot/EFI/boot/bootx64.efi
再起動・起動確認
インストール作業はここまでです。では再起動して起動できるか試してみましょう。まだchrootでインストール先のシステムに入っているのでexitします。
# exit
インストールメディアを抜いて以下のコマンドで再起動します。
# reboot
以下の様にGRUB画面が出てArchが起動できればUEFIブート成功です。 現段階ではGUI環境が入っていませんのでArch wikiや以下の記事を参考にしてください。 Arch Linuxのインストール後の環境設定まとめ
最後に
少々長くなりましたが、UEFI環境にArch Linuxを導入する際のお役に少しでも立てばと思い記事にしました。ブート周りの変更に戸惑う声もあると思いますが、今後主流になっていくUEFIブートには馴染んでおく必要があるかなと思いました。 [adsense]