Zenn
😊

さくらインターネットのVPSにArch Linuxをインストールする

2025/02/04に公開

さくらインターネットVPSArch Linux をインストールする方法。

さくらインターネットの公式マニュアルをベースに作業を進める。
https://manual.sakura.ad.jp/vps/os-reinstall/iso-install/arch.html

さくらインターネットの公式マニュアル通りに作業をすればインストールできるが、エンジニアが書いたマニュアルなので、説明が不親切だし、一部あやしかったり、表現が不適切な箇所がある。

インストール

サーバー情報

IPアドレス、サブネットマスク、DNSなどの情報は、さくらのVPSのコントロールパネルにある。

  1. さくらのVPSのコントロールパネルにログインする
  2. 左メニューの【サーバー】をクリック
  3. VPSを選択
  4. 【ネットワーク】タブをクリック
  5. 【サブネットマスク】は 255.255.254.023 になる
  6. broadcast は省略すると自動的に計算してくれる

インストールメディア

インストール・メディアのisoファイルは自分で用意しなくても良い。さくらインターネットが公式でisoを用意してくれている。

OSの再インストール

  1. さくらのVPSコントロールパネルを開く
  2. 左メニューの【サーバー】をクリック
  3. 該当のサーバーをクリック
  4. 【OS再インストール】ボタンをクリック
  5. 【ISOイメージ】を選択
  6. 【一覧から選ぶ】を選択
  7. 【Arch Linux x86_64】を選択
  8. ネットワーク接続は【接続先を保持】を選択
  9. 【内容確認】をクリック
  10. 「OS再インストール実行」画面が表示されるので【OS再インストール】をクリック
  11. 画面が戻ったら【VNCコンソールを起動】をクリック
  12. https://manual.sakura.ad.jp/vps/_images/os-reinstall_iso-install_arch_011.png
  13. rootアカウントでログイン済みの状態になる。次項の日本語キーボードの設定をしてインストール作業を始める。
    https://manual.sakura.ad.jp/vps/_images/os-reinstall_iso-install_arch_021.png
  14. OSを再インストールすると、パケットフィルター設定 が解除される。インストール作業を始める前にパケットフィルターを設定する。

日本語キーボードの設定

まず最初に、日本語キーボードを使っている場合は、日本語キーボードを使えるように設定を行う。
英語配列なら何もせ設定ずにネットワーク設定に進む。

loadkeys jp106

ネットワークの設定

  1. NIC(ネットワーク・インターフェース・カード)の状態を確認
    eth0ens3 になる。これがインターネットに繋がる。
    ip link
    
  2. ens3 の起動
    既に起動しているはずだが、もし起動していなければ以下のコマンドで起動する。
    ip link set ens3 up
    
  3. IPアドレスの設定
    サーバーの固定IPアドレス(インターネットにアクセスするIPアドレス)を設定する。
    IPアドレスのサブネットマスクは 23 で固定。(さくらインターネットの場合)
    broadcast は、IPアドレスの最後を 255 にする。省略しても構わない。
    ip addr add 100.200.300.400/23 broadcast 100.200.300.255 dev ens3
    
  4. ゲートウェイの設定
    ゲートウェイを通じてインターネットにアクセスする。
    IPアドレスの末尾が必ず 1 とは限らないので、ちゃんと確認する。
    ip route add default via 100.200.300.1
    
  5. ネットワーク設定の確認
    ip addr show ens3
    
  6. 疎通テスト
    次の項で設定するDNSサーバーにアクセスできるか確認する。
    -c で回数(count)を指定する。指定しないと無限に送り続ける。途中で止める時は、Ctrl キーと C キーを同時に押す。
    ping -c 4 210.188.224.10
    
  7. DNSサーバーの設定
    echo "nameserver 210.188.224.10" >> /etc/resolv.conf
    
  8. DNSテスト
    ドメイン名をIPアドレスに変換できるか確認する。
    ping -c 4 sakura.ad.jp
    
  9. NTP(時刻)設定
    NTPサーバーに同期する。
    timedatectl set-ntp true
    
    date コマンドで、サーバーの時刻を確認できる。ただしUTCなので、日本時間は+9時間になる。
    date
    

ディスク・パーティションの設定

さくらインターネット公式マニュアルの設定に追加して、/var/lib/mysql をマウント・ポイントに、専用のパーティションを作って分ける。このメリットは、OS(Arch)を再インストールするハメになっても、データベースのデータそのものは残しておける。(再インストール時にフォーマットしなければ良い)

  1. vdaの既存パーティション構成をクリア
    既存のデータを 消去 する。 再インストール する場合など、既存のパーティションを流用する場合は 不要
    sgdisk -Z /dev/vda
    
  2. パーティションの新規作成
    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
    
  3. パーティションを確認
    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
    
  4. パーティションをフォーマット
    # ext4
    mkfs.ext4 /dev/vda1
    mkfs.ext4 /dev/vda3
    mkfs.ext4 /dev/vda4
    # swap
    mkswap /dev/vda2
    swapon /dev/vda2
    
  5. パーティションをマウント
    # /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
    
  6. パッケージをインストール
    pacstrap /mnt base linux linux-firmware vim netctl openresolv grub
    
  7. パーティションのマウント場所を fstab に保存
    genfstab -U /mnt >> /mnt/etc/fstab
    cat /mnt/etc/fstab
    

システム設定

再インストールの場合は、既存の設定が残っているので確認するだけで良い。

  1. インストールされたファイルシステムに chroot してから作業する
    arch-chroot /mnt
    
  2. timezoneの設定
    ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
    
    hwclock --systohc
    
    時刻がJSTになっているか確認
    date
    
  3. ローカリゼーションを設定
    先頭の # を消し、必要なロケールを有効にする。
    具体的には、en_US.UTF-8ja_JP.UTF-8 を有効にする。
    既に有効になっているか以下のコマンドで確認する。
    grep -v '^#' /etc/locale.gen | awk 'NF'
    
    en_US.UTF-8ja_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
    
  4. コンソールキーマップを設定する
    vim /etc/vconsole.conf
    
    以下の内容を書き込む。
    KEYMAP=jp106
    FONT=lat9w-16
    
  5. 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
    
  6. ホスト名を設定する
    vim /etc/hostname
    
  7. initramfsを構成する
    mkinitcpio -P
    
  8. 管理者権限のユーザーを追加する
    useradd -m -G wheel -s /bin/bash (ユーザー名)
    
    管理者権限のユーザーのパスワードを設定する
    passwd (ユーザー名)
    
  9. root のパスワードを設定する
    passwd
    
  10. GRUB を作成する
    grub-install --target=i386-pc /dev/vda
    
    grub-mkconfig -o /boot/grub/grub.cfg
    
  11. chrootから抜ける
    exit
    
  12. サーバーを再起動する
    reboot
    

仮想スイッチ

コントロールパネルからeth1を仮想スイッチに接続する。

現在のネットワークの状況を確認する。

sudo ip -c a

net-tools をインストールして ifconfig で確認する。

sudo pacman -S net-tools
sudo ifconfig

一時的に IP アドレスを設定する

以下のコマンドで、すぐに ens4192.168.1.2 を割り当てる。ただし、この設定は再起動後にリセットされる。

sudo ip addr add 192.168.1.2/24 dev ens4
sudo ip link set ens4 up

永続的に IP アドレスを設定する

外部ストレージをNFSで接続

  1. NFSクライアントのインストール
    sudo pacman -S nfs-utils
    
  2. NFSのマウント
    sudo mount -t nfs 192.168.1.100:/export /www
    
  3. UFWを設定

Discussion

ログインするとコメントできます