yamax_1024の倉庫

yamax_1024の無駄話の倉庫です.

VPSにArch Linuxをインストールします

この記事は,”東京高専プロコンゼミ② Advent Calender 2019" 15日目の記事です.
遅れてしまいすみません.

アクセスはこちらからどうぞ.

adventar.org
adventar.org

はじめに

VPSを契約したので,一通りの環境を整えたいと思いました.

初期構成OSのままでも良かったのですが,自由度の高そうな(偏見)Arch Linux をインストールすることにしました.

ダウンロード+この記事を書くにあたって,以下のサイトを参考にさせていただきました.
内容がほぼ同じ点もありますが,ご了承ください.

qiita.com

インストール前の作業

まずは http://archlinux.jp からISOイメージファイルをダウンロードし,指定されたアップロード先にダウンロードしたISOイメージをアップロードします.

SFTPアカウントを発行し,VPSのコントロールパネルに記載された通りのホスト名やらポート番号やらを入力すればOKです.(僕は WinSCP を使いました)

アップロードが完了し,VPSを再度立ち上げると,仮想サーバよりコンソールでインストールをしろとの指示が来ます.
正直ここに一番時間を取られました.

インストール

ぶっちゃけデュアルブートとほぼ変わらないです.ネットワークの設定がほんのちょっと違うくらいかもしれません.
起動すると,BIOSブートの画面が表示されるので,そのまま進めていきます.

f:id:yamax_1024:20191219192622p:plain
起動画面

PC側の初期設定

まずは,キーボードの設定を更新します.

$ loadkeys jp106

パーティションを切っていきます.cfdiskやfdiskが有名です.

$ cfdisk

どうでもいいですが,僕は以下のような構成にしました.

f:id:yamax_1024:20191219192504p:plain
パーティション構成

パーティションごとにフォーマットをします.

$ mkfs.ext4 /dev/vda1
$ mkswap /dev/vda2
$ swapon /dev/vda2
$ mkfs.ext4 /dev/vda3

マウントをします.ここで間違えると色々と悲惨なことになります.

$ mount /dev/vda3 /mnt
$ mkdir /mnt/boot
$ mount /dev/vda1 /mnt/boot


続いて,ネットワークの設定です.

予め,VPSのコントロールパネルで
IPアドレス
ゲートウェイ
・プライマリDNS
セカンダリDNS
を確認しておいてください.


次に,インターフェースを確認します.

$ ip a

いくつか表示されると思うので,好きなものを使います.

$ ip addr add [IPアドレス]/23 dev [インターフェース]
$ ip route add default via [ゲートウェイ]

続いて,DNSの設定です.

$ nano /etc/resolv.conf

上のファイルに以下の内容を追加します.

nameserver [プライマリDNS]
nameserver [セカンダリDNS]

以上でネットワークの設定はおしまいです.
接続できているかどうか,確認してください.

pingを打てば何でも大丈夫です.

$ ping goo.gl


ネットワークに接続できたところで,時計を合わせます.

$ timedatectl set-ntp true


最後にミラーリストを編集します.
これをやっておかないとインストールがとても遅くなります.

$ nano /etc/pacman.d/mirrorlist

上のファイルから,以下のようなものを探してください.

## Japan

見つかったら,その下に記載されているURLを一番上に持ってきます.
以下のようになれば大丈夫です.

f:id:yamax_1024:20191219194006p:plain
ミラーリスト

これでPC側の初期設定はおしまいです.

インストール

ベースシステムと,必要であろうものを色々入れます.

$ pacstrap /mnt base base-devel linux vim git grub efibootmgr netctl

これには少し時間がかかるかもしれません.

PC側の設定①

まずはfstabの設定です.
システムを起動する際にストレージを自動でマウントするためのものです.

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

ここからは,インストールしたシステムに入って作業をします.

$ arch-chroot /mnt

時計の設定です.

$ ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ hwclock -w -u

次にロケールを設定します.

$ locale-gen
$ echo LANG=en_US.UTF-8 > /etc/locale.conf
$ echo KEYMAP=jp106 > /etc/vconsole.conf

ホストネームです.好きなものを設定してください.

$ echo [ホストネーム] >> /etc/hostname
$ echo [ホストネーム] >> /etc/hosts

ネットワーク環境の設定です.

$ cp /etc/netctl/examples/ethernet-static /etc/netctl/mynetwork
$ vim /etc/netctl/mynetwork

中身を下のように編集してください.

Description='A basic static ethernet connection'
Interface=[インターフェース]
Connection=ethernet
IP=static
Address=('[IPアドレス]/23')
Gateway='[ゲートウェイ]'
DNS=('[プライマリDNS]' '[セカンダリDNS]')

保存後,次のコマンドを実行します.

$ netctl enable mynetwork

ブートローダーの設定です.

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


ここで,いったん再起動します.システム内でコマンドを叩くのではなく,VPSのコントロールパネルよりシャットダウンを行ってください.

PC側の設定②

root(管理者)のパスワードを設定します.

$ passwd

管理者権限のままでいるのは色々危険なので,ユーザーを追加します.

$ useradd -m -g wheel [ユーザ名]
$ passwd [ユーザ名]

ユーザーにsudoの権限を与えます.

$ vim /etc/sudoers

ファイルの中から,以下の行を探し,コメントアウトしてください.

%wheel ALL=(ALL) ALL

もう一度再起動し,システムが正常に動くことを確認してください.

正常に動けば,とりあえずこれで終了です.
お疲れさまでした.

おわりに

あとは色々な設定をすれば色々使えると思うので,僕も頑張ります.

※誤字脱字や間違っている部分等ありましたら,コメントで連絡を頂けると幸いです.