さくらの VPS で FreeBSD 13.1-RELEASE をセットアップ
いつもはクラウドサービスである、さくらのクラウドを使用してインスタンスを作成しているが、さくらのクラウドより少し制限があるものの、単純な 1 IPv4アドレス、1 IPv6アドレス、インターネットへのルーティング、という環境で良ければさくらの VPS でもインスタンスを作成できるとのことだった。
新しい環境の構築のテストを兼ねて、さくらの VPS で FreeBSD 13.1-RELEASE をインストールしたのでその作業の様子を記録しておく。
デフォルトでは FreeBSD を選択できない
さくらの VPS はコントロールパネルから新規インスタンス(サービス内ではサーバと書かれている)を作成する際に、デフォルトでインストールする OS を選択できる。
デフォルトでインストールする OS は限られていて、FreeBSD は古いバージョンを含めて選択することができない。
仕方ないので適当な OS を選んでインスタンスの作成を進める。
最終画面まで行くと、セットアップが終わるまでしばらく待つように言われる。マニュアルなどでは約1時間以内にセットアップが終わると書かれていたが、私がやったときは 2時間以上掛かった。(作業当時、別のデータセンターで障害が発生していて、その影響かもしれない)
インスタンスの作成依頼を出してからセットアップが終わるまでの間はなにもメッセイジが表示されないので、インスタンスの作成依頼が届いているかもわからない。この点は不便だと思ったのでサポートにフィードバックしておいた。
どうもセットアップを行ったタイミングでデータセンターで障害が起きていて、その影響を受けたらしい。別日に試したところ、インスタンスはすぐに作成され、使うことができた。
さくらのVPSコントロールパネルにログインし、左のメニューから新規作成をクリックする。
今回は大阪リージョン、東京リージョンで使えるクーポンが発行されていたのでこれを使った。
利用したいプランを選択、ストレージを選択し、次へをクリック。
サーバ名は他の VPSインスタンスとの識別用なのでわかりやすい名前を入れておく。
インストールする OS やスタートアップスクリプトなどは、どうせ FreeBSD で上書きしてしまうのでなんでもよい。テキトーに選んで、次へをクリック。
支払い方法はクレジットカードを選択する。クレジットカード以外だとすぐにインスタンスを使えないので注意する。(銀行振込などを選ぶと、入金確認後の作業になる)
お試しはテスト用サーバのためにとっておいて、利用しないを選択。約款に同意して、お支払いをクリックする。
これでインスタンスの作成が完了する。数分すれば、サーバ一覧にいま作成したインスタンスが現れる。
FreeBSD をインストール
セットアップが終わるとコントロールパネルから様々な操作ができるようになる。
OS再インストールというボタンがあるので、ボタンをクリックする。
カスタムOS の中に、FreeBSD があるので選択して、内容確認へ進む。
標準OS の場合、ssh の公開鍵の登録など、基本的なセットアップまでこの画面で行えるが、カスタムOS の場合は OS のインストーラーを使ってセットアップを進めることになる。
内容を確認して、OS再インストールをクリックする。
VNCコンソールを起動、をクリックする。
ブラウザの別ウインドウで、VNCコンソールが立ち上がり、FreeBSD のインストーラが自動で起動する。
このインストーラは FreeBSD のインストールに使うが、OS が立ち上がらなくなったときの緊急シェルとしても使える。(例えば、HDD のマウントを間違えたときなど、緊急シェルから /etc/fstab を書き換えることで復旧することができる。また、root のパスワードを忘れてログインできなくなったときなども、緊急シェルから修復できることがある)
今回は、FreeBSD のインストールなので、Install を選択して Enterキーを押す。
キーボードのキーマップを選択する。英語配列で良い場合は、Continue with default keymap のまま、Enterキーを押す。
選択する場合は、カーソルを上下移動し、Spaceキーで選択する。
hostname の設定。/etc/rc.conf の hostname の設定に反映される。インストール後、変更可能。
デフォルトで OK。
ネットワーク越しにファイルを取ってくるという注意表記。OK。
FTPサイトの選択画面。さくらの VPS はデフォルトで IPv6 が使えるので、IPv6 Japan を選択。
2022年7月現在、ftp1.jp は bbtower.net (ブロードバンドタワー、SoftBank系)、ftp2.jp は IIJ、ftp3.jp はさくらインターネット(ただし、IPv4 のみ)がホストしている。
ftp3.jp ならさくらインターネット内なら速いかもしれないが、FTPサーバ自体は石狩データセンターに置かれているようなので、さくらインターネット大阪第3データセンターの環境から使う場合、ftp3.jp(石狩、23msec)より ftp2.jp(東京第1、8.9msec)、ftp1.jp(東京エッヂ、7.5msec) のほうがネットワーク的には近そう。
ちなみに東京第1データセンターからだと、ftp1.jp(東京、1.5msec)、ftp2.jp(東京、2.5msec)、ftp3.jp(石狩、19msec)くらい。AS9370(SAKURA-B)とAS2497(IIJ)は物理的にも近い。AS7530(BBTower-Lab)の場合は直接ピアリングしていないので、IIJ などから抜けていく。(さくらインターネットはトランジット(上流ISP)として、IIJ(AS2497)、NTT Com(AS2914)、KDDI(AS2516) を使っている)
なお、石狩は AS7684(SAKURA-A)、東京は AS9370(SAKURA-B)、大阪は AS9371(SAKURA-C) を使って対外接続している。
HDD のファイルシステムの選択。特に宗教上の理由がなければ、Auto(ZFS) を選択。
内容を確認されるので、Install を選択して Enterキー。
HDD(SSD) は 1台しか無いので、Stripe を選択。
インストール先の HDDパーティションを選択する画面。VirtIOデバイスしか無いので、vtbd0 上で Spaceキーを押して、Enterキーを押す。
vtbd0パーティションの中身(いまは、Ubuntu 22.04 amd64 がインストールされているは)を完全に削除するが良いか、最後のコンファーム。YES を選択。
インストール作業が進むので、少し休憩。
root のパスワード設定。2回、同じパスワードを入れて、Enter を押す。
Timezone の設定。Asia -> Tokyo(JST) を選んでも良いし、UTC にしてもよい。UTC だと日本時間(JST)より、表記が 9時間遅れる。
コンファームされるので YES を選択。
日付の設定。インストール後、ntp を使うので Skip を選択。
こちらも同じく、Skip。
デフォルトで立ち上げる service をいくつか選べるが、sshd、ntpd、dumpdev あたりが選択されていればよい。あとから /etc/rc.conf の編集で変更可能。
デフォルトのセキュリティ設定。お好みで。
root以外のユーザを追加する。インストール後の、adduserコマンド相当の事ができる。VPC今ソースからログインできるので、どちらでもお好みで。
インストール後のちょっとした細かい設定ができる。必要なければ、Exit を選択。
インストール完了画面。インストール後に、マニュアル(シェル)での作業が必要か聞いてくるので、必要なければ No を選択。
OS を立ち上げるため、いったん Reboot する。
sshd の立ち上げ
/etc/rc.conf に以下を追加。ssh のポートを TCP/IP 8022 に変更し、Root でのログインを制限する。
sshd_enable="YES"
sshd_flags=" -oPort=8022 -oPermitRootLogin=no"
追加後、以下のコマンドで sshd が立ち上がる。
# service sshd start
FreeBSD 13.1-RELEASE へアップデート
さくらインターネットで用意されているカスタムOS のインストーライメージは、13.0-RELEASE と、記事執筆時点で一つ前のバージョンなので各種セットアップを進める前に、最新の 13.1-RELEASE にアップデートしておく。
OS のバージョンアップのコマンドは、freebsd-update -r (アップデート先のバージョン) upgrade なので、root になってコマンドを実行する。
コンファームされるので、y を入力して Enter。
差分ファイルをダウンロードしてくるのでしばらく時間がかかる。
ファイルのダウンロードが終わると、設定ファイルの書き換えについてコンファームされるので、問題なければ y を入力していく。
すべてのコンファームが終わるといったんインストーラが終了するので、freebsd-update install コマンドを実行する。
kernel を置き換えたので、新しい kernel を適用するため、一旦、reboot する。reboot のコマンドは、shutdown -r now。
reboot が終わったら、再び、freebsd-update install コマンドを実行する。
これで最新版へアップデートが完了した。
dmesg
さくらの VPS の仮想環境で起動直後の dmesg
# dmesg
Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212 GENERIC amd64
FreeBSD clang version 13.0.0 (git@github.com:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303)
VT(vga): text 80x25
CPU: Intel Core Processor (Broadwell) (2200.10-MHz K8-class CPU)
Origin="GenuineIntel" Id=0x306d2 Family=0x6 Model=0x3d Stepping=2
Features=0x783fbfd<FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2>
Features2=0x9ffa3203<SSE3,PCLMULQDQ,SSSE3,FMA,CX16,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,HV>
AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
AMD Features2=0x101<LAHF,Prefetch>
Structured Extended Features=0x1c07a9<FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,RDSEED,ADX,SMAP>
XSAVE Features=0x1<XSAVEOPT>
Hypervisor: Origin = "KVMKVMKVM"
real memory = 1073741824 (1024 MB)
avail memory = 995733504 (949 MB)
Event timer "LAPIC" quality 100
ACPI APIC Table: <BOCHS BXPCAPIC>
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 2 package(s) x 1 core(s)
random: registering fast source Intel Secure Key RNG
random: fast provider: "Intel Secure Key RNG"
random: unblocking device.
ioapic0 <Version 1.1> irqs 0-23
Launching APs: 1
random: entropy device external interface
kbd1 at kbdmux0
vtvga0: <VT VGA driver>
kvmclock0: <KVM paravirtual clock>
Timecounter "kvmclock" frequency 1000000000 Hz quality 975
kvmclock0: registered as a time-of-day clock, resolution 0.000001s
smbios0: <System Management BIOS> at iomem 0xf61d0-0xf61ee
smbios0: Version: 2.4, BCD Revision: 2.4
aesni0: <AES-CBC,AES-CCM,AES-GCM,AES-ICM,AES-XTS>
acpi0: <BOCHS BXPCRSDT>
acpi0: Power Button (fixed)
cpu0: <ACPI CPU> on acpi0
atrtc0: <AT realtime clock> port 0x70-0x71,0x72-0x77 irq 8 on acpi0
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x608-0x60b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
isab0: <PCI-ISA bridge> at device 1.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX3 WDMA2 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xc0e0-0xc0ef at device 1.1 on pci0
ata0: <ATA channel> at channel 0 on atapci0
ata1: <ATA channel> at channel 1 on atapci0
uhci0: <Intel 82371SB (PIIX3) USB controller> port 0xc040-0xc05f irq 11 at device 1.2 on pci0
usbus0: controller did not stop
usbus0 on uhci0
usbus0: 12Mbps Full Speed USB v1.0
pci0: <bridge> at device 1.3 (no driver attached)
vgapci0: <VGA-compatible display> mem 0xfe400000-0xfe7fffff,0xfebd0000-0xfebd0fff at device 2.0 on pci0
vgapci0: Boot video device
virtio_pci0: <VirtIO PCI (legacy) Network adapter> port 0xc060-0xc07f mem 0xfebd1000-0xfebd1fff irq 11 at device 3.0 on pci0
vtnet0: <VirtIO Networking Adapter> on virtio_pci0
vtnet0: Ethernet address: 9c:a3:ba:43:5f:6e
vtnet0: netmap queues/slots: TX 1/256, RX 1/128
000.000096 [ 450] vtnet_netmap_attach vtnet attached txq=1, txd=256 rxq=1, rxd=128
virtio_pci1: <VirtIO PCI (legacy) Network adapter> port 0xc080-0xc09f mem 0xfebd2000-0xfebd2fff irq 11 at device 4.0 on pci0
vtnet1: <VirtIO Networking Adapter> on virtio_pci1
vtnet1: Ethernet address: 9c:a3:ba:44:5f:6e
vtnet1: netmap queues/slots: TX 1/256, RX 1/128
000.000097 [ 450] vtnet_netmap_attach vtnet attached txq=1, txd=256 rxq=1, rxd=128
virtio_pci2: <VirtIO PCI (legacy) Network adapter> port 0xc0a0-0xc0bf mem 0xfebd3000-0xfebd3fff irq 10 at device 5.0 on pci0
vtnet2: <VirtIO Networking Adapter> on virtio_pci2
vtnet2: Ethernet address: 9c:a3:ba:45:5f:6e
vtnet2: netmap queues/slots: TX 1/256, RX 1/128
000.000098 [ 450] vtnet_netmap_attach vtnet attached txq=1, txd=256 rxq=1, rxd=128
virtio_pci3: <VirtIO PCI (legacy) Block adapter> port 0xc000-0xc03f mem 0xfebd4000-0xfebd4fff irq 10 at device 6.0 on pci0
vtblk0: <VirtIO Block Adapter> on virtio_pci3
vtblk0: 51200MB (104857600 512 byte sectors)
virtio_pci4: <VirtIO PCI (legacy) Balloon adapter> port 0xc0c0-0xc0df irq 11 at device 7.0 on pci0
vtballoon0: <VirtIO Balloon Adapter> on virtio_pci4
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
WARNING: Device "psm" is Giant locked and may be deleted before FreeBSD 14.0.
psm0: model IntelliMouse Explorer, device ID 4
fdc0: <floppy drive controller> port 0x3f2-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: does not respond
device_attach: fdc0 attach returned 6
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
orm0: <ISA Option ROM> at iomem 0xeb000-0xeffff pnpid ORM0000 on isa0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff pnpid PNP0900 on isa0
attimer0: <AT timer> at port 0x40 on isa0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
attimer0: non-PNP ISA device will be removed from GENERIC in FreeBSD 14.
fdc0: No FDOUT register!
Timecounters tick every 10.000 msec
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
ugen0.1: <Intel UHCI root HUB> at usbus0
uhub0 on usbus0
uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
Trying to mount root from zfs:zroot/ROOT/default []...
cd0 at ata1 bus 0 scbus1 target 0 lun 0
cd0: <QEMU QEMU DVD-ROM 1.5.> Removable CD-ROM SCSI device
cd0: Serial Number QM00003
cd0: 16.700MB/s transfers (WDMA2, ATAPI 12bytes, PIO 65534bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present
uhub0: 2 ports with 2 removable, self powered
Root mount waiting for: usbus0
ugen0.2: <QEMU QEMU USB Tablet> at usbus0
intsmb0: <Intel PIIX4 SMBUS Interface> irq 9 at device 1.3 on pci0
intsmb0: intr IRQ 9 enabled revision 0
smbus0: <System Management Bus> on intsmb0
lo0: link state changed to UP
vtnet0: link state changed to UP
vtnet1: link state changed to UP
uhid0 on uhub0
uhid0: <QEMU QEMU USB Tablet, class 0/0, rev 2.00/0.00, addr 2> on usbus0
Security policy loaded: MAC/ntpd (mac_ntpd)
DNS の設定、逆引き設定など
ここまでの作業で、さくらの VPS で FreeBSD が使えるようになっている。
この先の作業は、必要であればやる内容なので、不要ならやらなくてもよい。
通常は自前で用意する DNS も、さくらの VPS をセットアップしたユーザには、1インスタンスあたり、5~10 の独自ドメイン名について、さくらインターネット側で用意した DNS を無料で使うことができる。(設定はコントロールパネルから行える)
左のメニューから、DNS登録をクリック。
さくらインターネットの DNS で使いたい独自ドメイン名を入力し、ドメインを登録する、をクリックする。
ここで入力する独自ドメイン名は取得済みのものを入力する。さくらのドメインでも良いし、他社のドメイン登録サービスを使っているものでもよい。
いま追加したドメイン名はゾーン状態が、未設定になっている。
ドメイン名を登録したサービスにログインし、設定を変える。
これは私が使っている、enom という独自ドメイン名登録サービスの設定画面だが、Nameserver などという設定項目があるので、さくらインターネットで指定されている Nameserver、ns1.dns.ne.jp と ns2.dns.ne.jp を入力する。
設定後、伝播するのにすこし時間がかかることがあるので、先にさくらインターネット側の設定を進めておく。
ネームサーバサービスの一覧に戻り、さきほど追加した独自ドメイン名のゾーンをクリック。
詳細設定の追加して設定をクリック。
編集をクリック。
いったん、別の画面でさくらの VPS のコントロールパネルで、さきほど作成した VPSインスタンスを選択する。
グローバルネットワークタブの中にある、アドレスにかかれている IPv4アドレスをメモ(コピー)する。
エントリ名に @、タイプを IPアドレス(Aレコード)、データに先ほどメモした IPv4アドレスを入力し、追加をクリック。
保存をクリック。
コンファームされるので、OK をクリック。
いま設定した DNS を使って、IPv4アドレスの逆引きを設定する。
さくらの VPS のコントロールパネルに戻って、グローバルネットワークの中のホスト名逆引き登録をクリック。
カスタムホスト名に先ほど DNS に登録した独自ドメイン名を入力し、登録をクリック。
コンファームされるので、再度、登録をクリック。
IPv4 の逆引きを登録しました。という表示が出て、登録完了。
(おまけ)IPv6 の逆引き設定
IPv6 も IPv4 と同じように逆引き設定ができる。
さくらのネームサーバサービスを使う場合は、予め、AAAAレコードを追加しておく。AAAAレコードに登録する IPv6アドレスは VPSインスタンスのグローバルネットワークの中に書かれている。
ホスト名逆引き登録をクリック。
カスタムホスト名を入力し、登録をクリック。
コンファームも登録をクリック。
IPv6 も逆引きが登録できた。
さいごに
技術的な小難しい話題でしたが、最後まで読んでいただいてありがとうございました。
よければ ↓ にある、♡ をクリックしていただけると励みになります。質問のコメントも歓迎です。
この記事が気に入ったらサポートをしてみませんか?