😊
さくらインターネットのVPSにArch Linuxをインストールする
さくらインターネット の VPS に Arch Linux をインストールする方法。
さくらインターネットの公式マニュアルをベースに作業を進める。
さくらインターネットの公式マニュアル通りに作業をすればインストールできるが、エンジニアが書いたマニュアルなので、説明が不親切だし、一部あやしかったり、表現が不適切な箇所がある。
インストール
サーバー情報
IPアドレス、サブネットマスク、DNSなどの情報は、さくらのVPSのコントロールパネルにある。
- さくらのVPSのコントロールパネルにログインする
- 左メニューの【サーバー】をクリック
- VPSを選択
- 【ネットワーク】タブをクリック
- 【サブネットマスク】は
255.255.254.0
で23
になる -
broadcast
は省略すると自動的に計算してくれる
インストールメディア
インストール・メディアのisoファイルは自分で用意しなくても良い。さくらインターネットが公式でisoを用意してくれている。
OSの再インストール
- さくらのVPSコントロールパネルを開く
- 左メニューの【サーバー】をクリック
- 該当のサーバーをクリック
- 【OS再インストール】ボタンをクリック
- 【ISOイメージ】を選択
- 【一覧から選ぶ】を選択
- 【Arch Linux x86_64】を選択
- ネットワーク接続は【接続先を保持】を選択
- 【内容確認】をクリック
- 「OS再インストール実行」画面が表示されるので【OS再インストール】をクリック
- 画面が戻ったら【VNCコンソールを起動】をクリック
- https://manual.sakura.ad.jp/vps/_images/os-reinstall_iso-install_arch_011.png
- rootアカウントでログイン済みの状態になる。次項の日本語キーボードの設定をしてインストール作業を始める。
https://manual.sakura.ad.jp/vps/_images/os-reinstall_iso-install_arch_021.png - OSを再インストールすると、パケットフィルター設定 が解除される。インストール作業を始める前にパケットフィルターを設定する。
日本語キーボードの設定
まず最初に、日本語キーボードを使っている場合は、日本語キーボードを使えるように設定を行う。
英語配列なら何もせ設定ずにネットワーク設定に進む。
loadkeys jp106
ネットワークの設定
- NIC(ネットワーク・インターフェース・カード)の状態を確認
eth0
はens3
になる。これがインターネットに繋がる。ip link
-
ens3
の起動
既に起動しているはずだが、もし起動していなければ以下のコマンドで起動する。ip link set ens3 up
- IPアドレスの設定
サーバーの固定IPアドレス(インターネットにアクセスするIPアドレス)を設定する。
IPアドレスのサブネットマスクは23
で固定。(さくらインターネットの場合)
broadcast
は、IPアドレスの最後を255
にする。省略しても構わない。ip addr add 100.200.300.400/23 broadcast 100.200.300.255 dev ens3
- ゲートウェイの設定
ゲートウェイを通じてインターネットにアクセスする。
IPアドレスの末尾が必ず1
とは限らないので、ちゃんと確認する。ip route add default via 100.200.300.1
- ネットワーク設定の確認
ip addr show ens3
- 疎通テスト
次の項で設定するDNSサーバーにアクセスできるか確認する。
-c
で回数(count)を指定する。指定しないと無限に送り続ける。途中で止める時は、Ctrl
キーとC
キーを同時に押す。ping -c 4 210.188.224.10
- DNSサーバーの設定
echo "nameserver 210.188.224.10" >> /etc/resolv.conf
- DNSテスト
ドメイン名をIPアドレスに変換できるか確認する。ping -c 4 sakura.ad.jp
- NTP(時刻)設定
NTPサーバーに同期する。timedatectl set-ntp true
date
コマンドで、サーバーの時刻を確認できる。ただしUTCなので、日本時間は+9時間になる。date
ディスク・パーティションの設定
さくらインターネット公式マニュアルの設定に追加して、/var/lib/mysql
をマウント・ポイントに、専用のパーティションを作って分ける。このメリットは、OS(Arch)を再インストールするハメになっても、データベースのデータそのものは残しておける。(再インストール時にフォーマットしなければ良い)
- vdaの既存パーティション構成をクリア
既存のデータを 消去 する。 再インストール する場合など、既存のパーティションを流用する場合は 不要 。sgdisk -Z /dev/vda
- パーティションの新規作成
1番目は、bootパーティション。
2番目は、swapパーティション(8200)。
3番目は、ルート(/)。
4番目をmysql専用のパーティションにする。sgdisk -n "1::+512M" -t 0:8300 /dev/vda sgdisk -n "2::+512M" -t 0:8200 /dev/vda sgdisk -n "3::+50G" -t 0:8300 /dev/vda sgdisk -n "4::" -t 0:8300 /dev/vda
- パーティションを確認以下のようになる。
lsblk /dev/vda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS vda 254:0 0 200G 0 disk ├vda1 254:1 0 512M 0 part ├vda2 254:2 0 512M 0 part ├vda3 254:3 0 50G 0 part └vda4 254:4 0 149G 0 part
- パーティションをフォーマット
# ext4 mkfs.ext4 /dev/vda1 mkfs.ext4 /dev/vda3 mkfs.ext4 /dev/vda4 # swap mkswap /dev/vda2 swapon /dev/vda2
- パーティションをマウント
# /mnt の下にインストールされる mount /dev/vda3 /mnt # /boot mkdir /mnt/boot mount /dev/vda1 /mnt/boot # MySQL専用パーティション mkdir -p /mnt/var/lib/mysql mount /dev/vda4 /mnt/var/lib/mysql
- パッケージをインストール
pacstrap /mnt base linux linux-firmware vim netctl openresolv grub
- パーティションのマウント場所を
fstab
に保存genfstab -U /mnt >> /mnt/etc/fstab cat /mnt/etc/fstab
システム設定
再インストールの場合は、既存の設定が残っているので確認するだけで良い。
- インストールされたファイルシステムに
chroot
してから作業するarch-chroot /mnt
- timezoneの設定
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
時刻がJSTになっているか確認hwclock --systohc
date
- ローカリゼーションを設定
先頭の#
を消し、必要なロケールを有効にする。
具体的には、en_US.UTF-8
とja_JP.UTF-8
を有効にする。
既に有効になっているか以下のコマンドで確認する。grep -v '^#' /etc/locale.gen | awk 'NF'
en_US.UTF-8
とja_JP.UTF-8
が表示されなければ、以下のコマンドで編集する。ロケールを生成するvim /etc/locale.gen
以下のように表示されれば成功。locale-gen
ロケールを日本語に設定するGenerating locales... en_US.UTF-8... done ja_JP.UTF-8... done Generation complete.
echo "LANG=ja_JP.UTF-8" > /etc/locale.conf
- コンソールキーマップを設定する以下の内容を書き込む。
vim /etc/vconsole.conf
KEYMAP=jp106 FONT=lat9w-16
- Networkを設定する以下のように書き込む。
vim /etc/netctl/ethernet-static
設定を有効にする。Interface=ens3 Connection=ethernet IP=static Address=('XXX.XXX.XXX.XXX/23') Gateway='XXX.XXX.XXX.1' DNS=('210.188.224.10' '210.188.224.11')
以下のように表示された場合は、既に有効になっている。netctl enable ethernet-static
The profile 'ethernet-static' is already enabled
- ホスト名を設定する
vim /etc/hostname
- initramfsを構成する
mkinitcpio -P
- 管理者権限のユーザーを追加する管理者権限のユーザーのパスワードを設定する
useradd -m -G wheel -s /bin/bash (ユーザー名)
passwd (ユーザー名)
-
root のパスワードを設定する
passwd
- GRUB を作成する
grub-install --target=i386-pc /dev/vda
grub-mkconfig -o /boot/grub/grub.cfg
- chrootから抜ける
exit
- サーバーを再起動する
reboot
仮想スイッチ
コントロールパネルからeth1を仮想スイッチに接続する。
現在のネットワークの状況を確認する。
sudo ip -c a
net-tools
をインストールして ifconfig
で確認する。
sudo pacman -S net-tools
sudo ifconfig
一時的に IP アドレスを設定する
以下のコマンドで、すぐに ens4
に 192.168.1.2
を割り当てる。ただし、この設定は再起動後にリセットされる。
sudo ip addr add 192.168.1.2/24 dev ens4
sudo ip link set ens4 up
永続的に IP アドレスを設定する
外部ストレージをNFSで接続
- NFSクライアントのインストール
sudo pacman -S nfs-utils
- NFSのマウント
sudo mount -t nfs 192.168.1.100:/export /www
- UFWを設定
Discussion