変則的なArchインストール

この記事はTUT 今年もTwitterしかしてません Advent Calendar 2017 12月20日の記事となります。

一応自己紹介をしておきます。

名前 パナくま
学年 CS1年
ツイ垢 @pana_pana_kuma
役職 OSインストーラー(物理) 某サークルの鯖管およびネットワーク管もどき

某サークル部室のコンソール用PCをリプレース(?)をしたのでそこにArchをインストールしようとしたのですが…
ArchのLive CDがブートしませんでした。

途中でカーネルエラーを吐いてしまい、ブートが止まってしまいます。

たまたま手元にLinuxMint 18.3 Sylviaのブートディスクがあり、それが上がったのでこれで済ませてしまおうかとも考えたのですが、年代物(CPU:Xeon 3065 メモリ:6GB)のPCには重いよなぁ思ったので、Archをインストールしたい。

ということでなんとかArchをインストールする方法はないかとArch wikiを探っていたらこんなものを見つけました。

「既存の Linux でイメージをマウントし、chroot 環境から Arch をインストールする。」(Arch の入手とインストール)

本来これはシステムのダウンタイムを最小限にArchをセットアップしてしまおうという方法なのですが、これを応用することでLinuxMintのライブCD環境からでも行けるのではないかと思い、ものは試しとやってみることにしました。

LinuxMintだけでなく、どんなLinuxライブ環境でも使えるかと思います。

また同じような手順を踏むことでArchLinuxコンテナを作れたりもします。


手順

1. インストールするディスクを用意する。

Arch Linuxをインストールし始める前に、ハードディスクやSSDのパーティション構成をやっておく必要があります。
LinuxMintでは以下のツールが用意されています。

見た目 ツール名
CUI(TUI) cfdisk
GUI GParted

好きなものを使って下さい。

起動に最低限必要なパーティション

BIOSブート(MBR)の場合は

パーティション種別 形式 サイズ
/boot ext4かxfsがオススメ 500MB程度
swap swap メモリと要相談
/ (Linux root) ext4かxfsがオススメ 残りの領域全部

EFIブート(GUID)の場合は

パーティション種別 形式 サイズ
EFIパーティション FAT32(絶対) 128MB(Microsoft推奨サイズ)
/boot ext4かxfsがオススメ 500MB程度
swap swap メモリと要相談
/ (Linux root) ext4かxfsがオススメ 残りの領域全部

ちなみに、MBRとGUIDでパーティション形式を変更する場合は、HDDやSSDの先頭512バイトを0書きするとパーティション情報が消えるので構築し直すことができます。

sudo dd if=/dev/zero of=/dev/sdX bs=512 count=1

2. tarballを入手して解凍

LinuxMintのライブCD上でArch Linuxのbootstrap(システムインストールツール群)を落としてきて、適当なディレクトリ(ここでは/tmp)に展開します。

cd /tmp
wget https://mirrors.kernel.org/archlinux/iso/latest/archlinux-bootstrap-2017.12.01-x86_64.tar.gz
tar xvfz archlinux-bootstrap-2017.12.01-x86_64.tar.gz

3. Arch Linuxを展開する

chroot環境に移り、Arch LinuxをHDDやSSDに展開していきます。

chroot環境に入る前にvimやnanoで root.x86_64/etc/pacman.d/mirrorlist の270行目あたりを編集し(コメントアウトを外す)、日本のリポジトリサーバーを有効にしておいて下さい。

編集した後に、

$ sudo root.x86_64/bin/arch-chroot root.x86_64/

を実行し、chroot環境に入って下さい。

以下は特筆しない限りchroot環境下です。

まずpacmanキーリングを初期化します。以下を実行して下さい。

# pacman-key --init
# pacman-key --populate archlinux

先程作成したパーティションをマウントします。

# fdisk -l

を実行しパーティションを確認して、マウントします。(Xは確認したアルファベット Yは確認した数字)

# mount /dev/sdXY /mnt
# mkdir /mnt/boot
# mount /dev/sdXY /mnt/boot

以下はEFIブートのとき

# mkdir /mnt/boot/EFI
# mount /dev/sdXY /mnt/boot/EFI

Arch Linuxを展開します。

# pacstrap /mnt base base-devel vim

パーティションのマウント情報を元にfstabを自動生成します。

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

展開したArchLinuxにまたchrootします。

# arch-chroot /mnt

タイムゾーンの設定をします。

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

この後は基本的にはArch wikiのインストールガイド ロケール以下の手順を踏むことでインストールすることができます。

インストールガイド – ArchWiki

手順が終わったら、LinuxMintを終了させ、起動することで、ArchLinuxが起動します。

インストール終了後

起動したら、後はGUIを入れるなり煮るなり焼くなり好きにできます。


一応こんな感じで、ArchLinux以外のLinuxライブ環境からArchをインストールすることが可能です。

ほとんど無いとは思いますが、もしかしたらArch Linuxのライブイメージが上がらない環境にArch Linuxをインストールすることがあるかもしれませんので、頭の片隅においてもらえると良いかなともいます。

TUT今年もTwitterしかしてません アドベントカレンダー 明日の担当はレドノフ @redonofu_xさんです。