LoginSignup
3
3

More than 5 years have passed since last update.

Arch Linux + rEFInd をインストールする(2015/1/14)

Last updated at Posted at 2016-08-21

(これは以前、別のブログに私がまとめた記事を移植したものです。内容がやや古いかもしれませんが、大きなズレはないと思います。)
  
 ThinkPad T420sが届いたので、Linuxをインストールしていく。Ubuntuを入れる予定だったが、せっかくなので今流行のArch Linuxに挑戦してみることにした。Linuxを使う以上Linuxくささは必要だ。公式マニュアルやブログを読みながら、試行錯誤している間にインストールできたのですが、試行錯誤しすぎて何をしてきたのか分からなくなったのでブログに記録していこうと思う。また各操作が謎の儀式にならないよう、なるべく自分なりの解釈で説明も加えてみた。

参考サイト

以下のサイトがなければ、OSインストールまで辿りつけなかったと思う。心から感謝したい。自分の手順も下記サイトと似ていますが、公式手順と照らし合わせながら取捨選択しているので全て同じではない。また今回はブートローダーにrEFIndを選んだのでその点に関してはオリジナルである。

Arch Linux + rEFIndインストール手順

Ubuntu、Mint、Fedoraなどなど、最近のディストリビューションから使い始めたひとは、「これすべて手打ちで実行するの?」と面食らうかもしれませんが頑張りましょう。
グラフィカルなインストール画面の裏側で、こういったコマンドが実行されたいるんだなと学ぶことも多いと思います。
今回ThinkPad T420sにインストールしたが、まとめた手順はマシンに依存しないはずです。

インストールの下準備

キーボードレイアウトの設定

日本語キーボードの人は、以下のコマンドを実行。英語キーボードはの人は何もしなくて良い。
sh
$ loadkeys jp106

インターネット接続

LANケーブルをついないでいる人は特に設定は必要ない。
無線LANを使う人は、wifi-menuをつかうと良いです。

インターネットに接続出ているかpingコマンドで確認する。

$ ping www.google.com

パーティショニング

 ブートローダーはrEFIndを使用するのでUEFI領域を作成する。メモリ8GBなのでswapは16GB。のこりはすべて「/」(ルートWindowsのC:)に割り振る。

 swapのサイズは、RAMの2倍設定する。swapというとメモリが足りなくなったときに緊急でメモリ代わりに使われる領域だが、ハイバーネート(Windowsの休止状態)する際にメモリの中身を書き出す場所としても使われる。
メモリの中身をすべて書き出すので、当然メモリ以上のサイズが必要になる。RedHatのサイトでもRAMと同じサイズ〜2倍が薦められている。

⁠16.17.5. パーティション設定に関する推奨

  • /dev/sda1: /boot (1 GB, UEFI)
  • /dev/sda2: swap (16 GB, swap)
  • /dev/sda3: / (残りすべて)

(/homeとは/optとかにパーテションを振り分ける人もいますが、あれはハードディスクやSSDが複数個あるときに意味があると思っている。ラップトップに2個、3個ディスクを積んでいるなら試してみるのも良いとおもう。)

$ gdisk /dev/sda
Command (? for help): o (新しいパーティションテーブルを作る。現在のパーティションは削除される)

Command (? for help): n
Partition number : 1
First sector: (何も入力せずにリターン)
Last sector: +1G (1GB割り振る)
Hex code or GUID: ef00 (ef00は、UEFI System partition用のパーティション)

Command (? for help): n
Partition number: 2
First sector:
Last sector: +16G (16GB割り振る)
Hex code or GUID: 8200 (swap用は8200)

Command (? for help): n
Partition number: 3
First sector:
Last sector: (何も入力しないと残りすべて)
Hex code or GUID: (デフォルトが8300)

Command (? for help): w
Do you want to proceed?: Y

最後のに念のため、パーティションの構成を確認しておくとよい。

$ gdisk -l /dev/sda

ファイルシステムのフォーマット

ディスクの領域を区切っただけなので、それぞれフォーマットしていく。
EFPはfat32, swapはswap, ルートはext4でフォーマとする。

  • /dev/sda1: fat32 (ESP)
  • /dev/sda2: swap (swap)
  • /dev/sda3: ext4 (root)
$ mkfs.fat -F32 /dev/sda1
$ mkswap /dev/sda2
$ swapon /dev/sda2
$ mkfs.ext4 /dev/sda3

マウントする

フォーマットしたファイルシステムにLinuxをインストールしていくわけだが、インストール用OS(今コマンドを叩いている画面)が、まだ接続していないので読み書きできない。読み書きできる状態にするために、それぞれマウントしていく。swapには何もインストールする必要がないのでマウントしない。

$ mount /dev/sda3 /mnt (ルートを、/mntにマウントする)
$ mkdir /mnt/boot (ESPは、このディレクトリにマウントする)
$ mount /dev/sda1 /mnt/boot

OSインストール

pacmanのミラーリスト変更

pacmanのミラーリストにtsukubaなど日本サーバーがあるので、それをリストの一番上に移動する。
OSインストールはインターネットからダウンロードしながら進むのだが、リストの一番上が海外サーバーのままだとダウンロードに時間がかかってしまう。

$ nano /etc/pacman.d/mirrorlist

## Score: 1.7, Japan
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch

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

pacstrapを使って/mntにマウントしたパーティションにOSをインストールしていく。
ここでは必要最低限のパッケージだけインストールする。

$ pacstrap /mnt base base-devel

 fstabの設定

ファイルシステムをOS起動時に自動的にマウントするようfstabを設定する

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

chrootでルート・ディレクトリを変更する

今まではインストール用OSのコマンド(USBメモリ内のデータ)を使って、ドライブに対してOSに必要なデータを書き込んでいた。以降はインストールしたArch Linuxのコマンドを使って作業を進める。arch-chrootコマンドを使うと、ルートディレクトリの場所を一時的に変更できるので、インストール用OSからArch Linuxへと、rootユーザでログインしたような状態になる。

$ arch-chroot /mnt /bin/bash

ロケールの設定

/etc/locale.genのen_US.UTF UTF-8とja_JP.UTF UTF-8のコメントを外し、locale-genコマンドを実行すると、英語環境と日本語環境に必要なデータを生成してくれます。

$ nano /etc/locale.gen
en_US.UTF UTF-8
...
ja_JP.UTF UTF-8
$ locale-gen

英語環境で起動するか日本語環境できどうするかをlocale.confに設定しておく。CUIで日本語表示されると色々不便なので、英語環境で起動するようにする。

$ echo LANG=en_US.UTF-8 > /etc/locale.conf

タイムゾーンの設定

タイムゾーンを日本のTokyoに設定する。

$ ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ hwclock --systohc --utc

コンピュータ名の設定

コンピュータ名を設定する。

# (例 nch_PC.localdomain など)
$ echo [好きなコンピュータ名] > /etc/hostname

キーマップの設定

日本語のキーボードの方は設定をしておく。英語キーボードのひとは何もしなくてよい。
一番最初にしたじゃないかと思いますが、一番最初の設定はインストール用OSの設定で、こちらはインストールしたArch Linuxの設定です。
/etc/vconsole.confにKEYMAP=jp106と書いておきましょう。

nano /etc/vconsole.conf

KEYMAP=jp106

ネットワーク設定

$ systemctl enable dhcpcd

initial ramdisk環境を作成

$ mkinitcpio -p linux

rootユーザーのパスワードを設定

$ passwd

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

今回はブートローダーにrEFIndを使用する。EFP(/dev/sda1)にrEFIndをインストールする。
https://wiki.archlinux.org/index.php/REFInd

$ pacman -S refind-efi
$ refind-install --usedefault /dev/sda1 --alldrivers
$ refind-mkrlconf

インストール終了と再起動

$ exit              #arch-chrootを終了
$ umount -R /mnt        #/mntをアンマウントすると/dev/sda1 /dev/sda3両方アンマウントできる
$ reboot

以上でOSインストール終了です。ですが、まだ真っ黒い画面に白い文字しか出てきません。ブラウザもないしメールも見れません。インターネットにはつながりますので、いろいろインストールしていき実用的な状態にする必要があります。

3
3
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
3
3