2014年2月15日土曜日

Arch Linux インストール (OSインストール編) | UEFI, GPT, GRUB, 2014.02.01でインストール

インストール関連記事
インストール関連記事はArch Linuxインストールのページにまとめてあります。それぞれ好みのインストールモードに合わせて参照してください。

OSインストール編の最新記事はこちら(2015/2/6)。

はじめに
Arch Linux x86_64をUEFIでインストールする。ブートローダはGRUBを使い、パーティショニングはGPTで行う。

インストールするPCの環境は、
MB: ASUS P8Z77-M PRO, (UEFI BIOSのVersion 0801)
CPU: Intel i7-3770S
SSD: Crucial m4 CT512M4SSD2

*現在はUEFIでの起動は使っていない。GRUBや Gummibootを使ってUEFI起動には成功したものの、インストール後のSSDを別のSSDに繋ぎ変えたところ、OSが起動できなくなった。以下の手順で、UEFIで起動できなくなる現象が発生する。
Arch Linuxインストール直後のSSDをつないでいたSATAポートに、別のOSが入っているSSDをつないで起動
-> Arch Linuxインストール直後のSDDに繋ぎ戻して、Arch LinuxをUEFI起動を試みる
-> OSが検出されず起動失敗

以下の手順を踏めば、SSDの繋ぎ変えさえしなければ、とりあえず問題なく使えるはず。


他のディストリビューションとの違い
Arch Linuxのインストールは以下のようにコマンドラインで行うので、始終キーボードの操作になります。UbuntuやFedora、Cent OSとかの、グラフィックなインストールはないので、多少勝手が違います。Ubuntuみたいに「おまかせ設定でインストール」も、もちろんないのでビギ ナーは少し苦労する。


isoファイルからイメージディスクを作成する
https://www.archlinux.org/download/のミラーサイトから、archlinux-2014.02.01-dual.isoをダウンロードし、イメージディスクとして書き込む。braseroを使う場合は、「イメージの書き込み」から、「書き込むディスクイメージの選択」でarchlinux-2014.02.01-dual.isoを選んで、書き込めばよい。



インストール
作製したイメージディスクをCDドライブに入れて起動。bios (uefi) からBoot Priorityを、UEFIマークが付いているCDドライブに変更しておく。CDからインストーラが起動するので、Arch Linux archiso x86_64 UEFI CDを選択。Arch Linuxのインストーラがrootで起動する。
はじめに、キーボードに合わせて、キーボードレイアウトを選択。デフォルトではusになっている。
# loadkeys jp106


インターネット接続の確立をする。有線でdhcp環境であれば、自動でdhcpcdが起動するので特に設定は不要。www.google.comにpingを打てばインターネット接続ができているか分かる。


ドライブの準備1 (パーティショニング)
以下のような設定でパーティショニングする。UEFIで起動したいので、GPT(gdiskでパーティショニングすればよい)、UEFI System Partition (ESP)の作製がポイント。

/dev/sda1: UEFI System Partition (512 MB)
/dev/sda2: swap (32 GB)
/dev/sda3: /boot (512 MB)
/dev/sda4: / (残りの領域)

コマンドで、
# gdisk /dev/sda
Command (? for help): o (新しいパーティションテーブルを作る)
Command (? for help): n
Partition number : 1
First sector: (デフォルトで2048から始まるようになっているので、何も入力せずにリターン)
Last sector: +512M
Hex code or GUID: ef00 (UEFI System partition用のパーティションなのでef00にする)
Command (? for help): n
Partition number: 2
First sector: 
Last sector: +32G
Hex code or GUID: 8200 (swap用は8200)
Command (? for help): n
Partition number: 3
First sector: 
Last sector: +512M
Hex code or GUID: (デフォルトが8300)
Command (? for help): n
Partition number: 4
First sector: 
Last sector: 
Hex code or GUID: 
Command (? for help): w
Do you want to proceed?: Y


ドライブの準備2(パーティションのフォーマットとマウント)
以下の形式でフォーマットする。
/dev/sda1: fat32
/dev/sda2: swap
/dev/sda3: ext4
/dev/sda4: ext4

コマンドで、
# mkfs.fat -F32 /dev/sda1
# mkswap /dev/sda2
# swapon /dev/sda2
# mkfs.ext4 /dev/sda3
# mkfs.ext4 /dev/sda4


フォーマットできたら、以下の通りマウントする。順番を変えないように注意する。

# mount /dev/sda4 /mnt (ルートパーティション(ここではsda4)を、/mntにマウントする)
# mkdir /mnt/boot
# mount /dev/sda3 /mnt/boot
# mkdir /mnt/boot/efi (efiのパーティションのESPは、このディレクトリにマウントする)
# mount /dev/sda1 /mnt/boot/efi


ドライブにインストール
/etc/pacman.d/mirrorlistでjaistのサーバーを一番上に持ってくる。
# vi /etc/pacman.d/mirrorlist


pacstrapで、baseとbase-develをインストール。
# pacstrap /mnt base base-devel


fstabの生成。
# genfstab -U -p /mnt >> /mnt/etc/fstab


/mntにchrootする。
# arch-chroot /mnt /bin/bash


Localの設定。/etc/locale.genで、en_US.UTF UTF-8とja_JP.UTF UTF-8のコメントアウトを解除する。
# vi /etc/locale.gen

...
#en_SG ISO-8859-1  
en_US.UTF-8 UTF-8  ←#を削除。
#en_US ISO-8859-1  
...
#ja_JP.EUC-JP EUC-JP  
ja_JP.UTF-8 UTF-8   ←#を削除。
#ka_GE.UTF-8 UTF-8 
...


locale-genでlocaleを生成。
# locale-gen


locale.confを作成。ただし、システムのインストールが終わって、Xと日本語フォントをインストールしたら、ja_JP.UTF-8に変更する。
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# export LANG=en_US.UTF-8


キーマップを変更。
# loadkeys jp106


また、/etc/vconsole.confにも、KEYMAP=jp106と記入しておく。
# vi /etc/vconsole.conf


タイムゾーンの設定。
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc --utc


ホストネームの設定
# echo myhostname > /etc/hostname


ネットワーク接続の設定をする。有線でdhcp回線がひとつ繋がっているだけの時は、以下の通り。
# systemctl enable dhcpcd.service


pacmanの設定。必要であれば、/etc/pacman.confの[multilib]とInclude = /etc/pacman.d/mirrorlistのコメントアウトを解除する。そして、pacman -Syでデータベースをアップデート。[multilib] リポジトリを有効にすることで、64ビット環境の Arch Linux で32ビットアプリケーションの動作・ビルドができるようになる。自分は、32ビットアプリケーションを使っていないので、[multilib]はコメントアウトしたままにしている。
# vi /etc/pacman.conf

...
[multilib]
Include = /etc/pacman.d/mirrorlist
...

# pacman -Sy 


ルートパスワードを設定
# passwd


*2014/12/23追記
Intel製のCPUを使っている場合は、Intel のマイクロコードのアップデートを有効にするために、intel-ucodeをインストールする。
# pacman -S intel-ucode

linux 3.17-2および、linux-lts 3.14.21-2のバージョン以降、マイクロコードが、ブートプロセスの初期に読み込まれないと有効にならなくなったためである。intel-ucodeをインストールしておけば、以下のgrub-mkconfigを実行すると、ブート時にintel-ucode.imgを読み込む設定が自動的に加わる。

AMD CPUの場合は、特にucodeのインストールは必要ないっぽい。ベースシステムのインストールの際、linux-firemwareがインストールされてこのパッケージの中に/usr/lib/firmware/amd-ucode/microcode_amd.bin等が含まれている。
*2014/12/23追記ここまで

grub-installする前に/boot/efiにEFIディレクトリを作成しておく
# mkdir /boot/efi/EFI


ブートローダ(GRUB)のインストール
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars (今回の場合は既にマウントは済んでいた)
# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot/efi/EFI --recheck --debug


grub.cfgを作成。
# pacman -S os-prober (複数OSのデュアルブートをするときは、os-proberをインストールすると、インストール済みのOSが自動検出される。)
# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg (ここのディレクトリを間違えるとOSが起動されない。一度ミスってしまった。)


設定はこれで終わりなので、再起動する。reboot直後、CDを取り出し、bios (uefi) で、Boot PriorityをUEFIマークのついたSSDに変更しておく。
# exit
# umount -R /mnt
# reboot



参考:
[1]Beginners' Guide/Installation
[2]http://opamp.hatenablog.jp/entry/2013/10/30/233548

スポンサーリンク

スポンサーリンク

0 件のコメント:

コメントを投稿