Arch Linuxを簡単インストール – 「楽しいさくらのクラウド」(17)

こんにちは、さくらインターネット クラウドチームの大喜多です。

皆さんはArch Linux(アーチ・リナックス)というLinuxディストリビューションをご存知でしょうか。「Keep It Simple を標榜する、軽量で柔軟性に優れたLinuxディストリビューション」として、コンピュータサイエンスを専門とする学生・研究者やカッティングエッジなエンジニアに人気の高いLinuxディストリビューションです。

Arch Linuxは、ローリング・リリースと呼ばれるリリースモデルを採用しています。他のLinuxディストリビューションで見られるような明確な「バージョン番号」や「リリース・スケジュール」は存在しません。リポジトリ上のソフトウェアパッケージは日々新しいバージョンへと更新されており、定期的にソフトウェアアップデートを行うことで、システムを常に最新の状態に保つことができるようになっています。

※インストール用のイメージファイルは定期的に更新されており、さくらのクラウドのパブリックISOイメージもこれに合わせて更新しておりますが、これは基本的にシステムパッケージ群のその時点での最新スナップショットが定期的に更新されているもので、「バージョンアップ」という概念とは異なります。

・シンプル
・軽量
・常に最新を保てる
・優秀なパッケージマネージャ
wikiが充実している
が特徴のLinuxディストリビューションです。

さくらのクラウドでArch Linuxを簡単インストール

2016年10月の時点では、さくらのクラウドにおいてArch Linuxはパブリックアーカイブとしては提供されておらず、パブリックISOイメージを利用してインストールすることになります。

これまではインストール時とインストール後にそれぞれIPアドレスを手動で設定する必要がありましたが、共有セグメントにてDHCPに対応したことで、インストール時のIPアドレス手動設定が不要になり、最低限の設定をした後はsshdをインストールし起動しておくことで、使い慣れたSSHクライアントで接続し、セットアップができるようになりました。

サーバ作成・Arch LinuxのISOイメージ起動・SSH接続

それでは、さくらのクラウドに仮想サーバを作成し、Arch Linuxをインストールしてみましょう。

コントロールパネルの左メニュー「サーバ」をクリックし、右上の「追加」をクリックします。

・ISOイメージからインストールを行う際は、ディスクソースの項目で「ブランク」を選択します。
・パブリックISOイメージとしてArch Linuxが用意されていますので、こちらを選択します。

共有セグメントのDHCP機能を利用してインストールを行いますので、「インターネットに接続」を選択します。

必要事項の入力が完了したら、右下の「作成」をクリックします。

サーバの作成が完了した後、左メニューの「サーバ」をクリックし、サーバ一覧を表示させます。
今回作ったサーバの行をダブルクリックして詳細画面を表示させます。

「コンソール」タブをクリックすると、Arch LinuxのISOイメージ起動画面が表示されています。
ここで「リモートスクリーンに接続」し、「Boot Arch Linux (x86_64)」が選択された状態でEnterキーを押下します。

archisoのコンソール画面に遷移しますので、ここで以下のコマンドでIPアドレスを確認してみましょう。

ip a

以下スクリーンショットのように、ens3インタフェースにグローバルIPアドレスが表示されていることが確認できるはずです。

また、SSH接続する前にコンソールで以下のコマンドを実行します。

# rootパスワードを設定
passwd
# sshdを起動
systemctl start sshd

SSHクライアントでグローバルIPアドレス宛に接続を試み、以下のように接続に成功すれば準備は完了です。
使い慣れたSSHクライアントからインストールができるので便利です。(以下スクリーンショットではTera Termを使用しています)

Arch Linuxのインストール

それでは実際にArch Linuxをセットアップしていきましょう。

初期設定ではUSキーボードになっていますので、日本語キーボードを使用されている方は以下コマンドを入力します。

loadkeys jp106

文字化け対策としてフォントを変えておきます。

setfont Lat2-Terminus16

ディスク上にパーティションを作成していきます。

fdisk /dev/vda

今回は20GBの仮想ディスク上に以下のパーティション構成で作成してみました。

SWAP:2GiB
root:残り全部

まず最初にSWAPパーティションを作成します。

Welcome to fdisk (util-linux 2.28.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x32555bee.
Command (m for help): o
Created a new DOS disklabel with disk identifier 0x95656ef1.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +2G
Created a new partition 1 of type 'Linux' and of size 2 GiB.

続いてrootパーティションとして使用するパーティションを作成します。
First sectorおよびLast sectorでEnterキーを押下し、デフォルト値を採用すると、ディスクの残り全ての領域を使用してパーティションが作成されます。

Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (2-4, default 2):
First sector (4196352-41943039, default 4196352):
Last sector, +sectors or +size{K,M,G,T,P} (4196352-41943039, default 41943039):
Created a new partition 2 of type 'Linux' and of size 18 GiB.

作成したパーティションの内容を確認します。

Command (m for help): p
Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x95656ef1
Device Boot Start End Sectors Size Id Type
/dev/vda1 2048 4196351 4194304 2G 83 Linux
/dev/vda2 4196352 41943039 37746688 18G 83 Linux

wコマンドで設定した内容を書き込んで、fdiskを終了します。

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

rootパーティション用に、/dev/vda2をext4フォーマットします。

mkfs.ext4 /dev/vda2

/dev/vda1をswapパーティションとして有効化します。

mkswap /dev/vda1
swapon /dev/vda1

rootパーティションをマウントします。

mount /dev/vda2 /mnt/

インストール前に、日本のミラーサーバを使用するよう設定します。

vi /etc/pacman.d/mirrorlist

MirrorListの一番上に以下の行を追記します。

Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

最低限のシステムをインストールします。

pacstrap -i /mnt base base-devel

パーティションを手動でマウントしたので、再起動時にマウントされるようfstabを作成します。

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

Arch Linuxのシステム設定

最低限のインストール作業が完了しましたので、ここから仮想ディスク上のArch Linuxに対してシステム設定を行っていきます。

インストールしたArch Linuxに入ります。

arch-chroot /mnt /bin/bash

Localeの設定を行います。

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

インストールしたシステム用にキーボードレイアウトとフォントを設定します。

loadkeys jp106
setfont Lat2-Terminus16

再起動後もキーマップ設定を持続させるために、vconsole.conf を作成します。

vi /etc/vconsole.conf

以下の内容を記載し、保存します。

KEYMAP=jp106
FONT=Lat2-Terminus16

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

ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

ハードウェアクロックはUTCが推奨されています。

hwclock -w -u

ホスト名を設定します。

echo arch01 > /etc/hostname

DHCPの自動起動設定を行います。再起動後もDHCPによってIPアドレスを取得するようになります。

systemctl enable dhcpcd.service

rootユーザのパスワードを設定します。

passwd

通常使用する一般ユーザーを作成しておきます。

useradd -m -g users -G wheel -s /bin/bash sacloud
passwd sacloud

ブートローダーとしてGRUBをインストールします。

pacman -S os-prober
pacman -S grub
grub-install --target=i386-pc --recheck /dev/vda
grub-mkconfig -o /boot/grub/grub.cfg

先ほどのインストールではOpenSSHがインストールされていないので、インストールし、自動起動設定を有効にしておきます。

pacman -S openssh
systemctl enable sshd

パーティションをアンマウントし、システムを再起動します。

exit
umount -R /mnt
reboot

以上でArch Linuxのインストールは完了です。

注記:
さくらのクラウドでは、DHCP設定のままサーバを運用することはできません(あくまでもインストール作業を便利にするための機能です)。
インストール完了後は、GUIをインストールしGUIのネットワーク管理ツールで固定IPの設定を行うか、CLI上でsystemd-networkdによる固定IPの設定を行ってください。