FreeBSD インストール (HP Thin Micro TM200 編)

[HP Thin Micro TM200](https://ascii.jp/elem/000/001/448/1448982/) はもうディスコンの古いモデルですが、[NTT-X Store](https://nttxstore.jp/) で安売りしていた時に購入しました。
8 Core (16 thread)、最大メモリ 64GiB、IMPI(iLO4) 対応、ということで仮想サーバとしてよさそうです。

まずは [FreeBSD](https://www.freebsd.org/) をインストールしますが、IPMI 対応なので ipmitool を使ってリモートからインストールしてみます。

# 構成

購入した状態ではストレージがなく、メモリも最小限のものがついているだけだったため、ストレージ追加とメモリの増設を行っています。

- [HP Thin Micro TM200](https://nttxstore.jp/_II_HP15682053)
- [WD Red™ Plus NAS Hard Drive 3.5](https://shop.westerndigital.com/ja-jp/products/internal-drives/wd-red-plus-sata-3-5-hdd#WD10EFRX)
    - 8G
        - 2台
- [DDR4-2400 / PC4-2400 (* PC4-19200) RDIMM / ADS2400D-Rシリーズ](https://www.adtec.co.jp/product/rdimm/ads2400d-r/)
    - [ADS2400D-R32GDW](https://nttxstore.jp/_II_AD15459070?)
        - 64GiB (32BiB x2)
            - もともとは 8GiB だったので DIMM を入れ替え
- [ADATA SX6000 Lite PCIe Gen3x4 M.2 2280 SSD](https://www.xpg.com/jp/xpg/597)
    - [ADATA XPG SX6000 Lite M.2 2280 PCIe Gen3x4 SSD 256GB (NVMe1.3対応 Read(MAX)1800MB/s Write(MAX)1200MB/s ヒートシンク付き) ASX6000LNP-256GT-C](https://nttxstore.jp/_II_AD16036617)
    - 256GB NVMe SSD
    - [日本語のマニュアル](https://h50146.www5.hpe.com/products/servers/proliant/tm200/pdf/user_guide.pdf)には記述がありませんが、[英語のマニュアル](https://techhub.hpe.com/eginfolib/servers/docs/enterprise/TM200/868923-002a.pdf)には記述があります。
        - [HPE ProLiant Thin Micro Server - Spare Parts](https://support.hpe.com/hpesc/public/docDisplay?docId=a00003745en_us&docLocale=en_US)
    - 接続可能なものは M.2 2280 M-Key になります
    - 英語のマニュアルの記述(PCIe M.2 2280 solid-state devices)と M-key から NVMe を試してみたところ、認識できました
        - 日本語のマニュアルに記述がないため、サポート外になると思われます

# memtest86 の実行

OS などのインストールを始める前に、メモリのチェックを行っておきます。

メモリのチェックには定番の [memtest86](https://www.memtest86.com/) を使いました。

今回は [memtest86](https://www.memtest86.com/) が起動する USB Memory を作成して起動しました。

- [memtest86 download](https://www.memtest86.com/download.htm)
    - [Download MemTest86 Free (Version 9.0 Build 2000)](https://www.memtest86.com/downloads/memtest86-usb.zip)
        - [Image for creating bootable USB Drive](https://www.memtest86.com/downloads/memtest86-4.3.7-usb.img.zip)
        - [Image for creating bootable USB Drive](https://www.memtest86.com/downloads/memtest86-4.3.7-usb.tar.gz)

# オペレーション用ホストの準備

IPMI の LANPLUS 対応のツールを実行できる環境を用意します。

[FreeBSD](https://www.freebsd.org/) の場合 pkg binary があるのでインストールしておきます。

```
pkg instlal -y ipmitool
```

# [HP Thin Micro TM200](https://ascii.jp/elem/000/001/448/1448982/) を最小限セットアップ

OS のインストール

## [HP Thin Micro TM200](https://ascii.jp/elem/000/001/448/1448982/) をネットワークに接続

[HP Thin Micro TM200](https://ascii.jp/elem/000/001/448/1448982/) をネットワークに接続します。

iLO4 専用ポートを持っていますが、初期状態では "WAN/LANポート1" と共有状態になっています。
iLO4 専用ポートとだけでなく、WAN/LANポート1 もネットワークケーブルでつないでおきます。

## 電源ケーブルを接続する

[HP Thin Micro TM200](https://ascii.jp/elem/000/001/448/1448982/) の電源ケーブルを接続し、いつでも電源を入れられる状態にしておきます。

この時点では電源 On にしておく必要はありません。
IPMI の機能を使ってリモートから電源 On/Off が可能です。

## IPMI 接続用アカウントのパスワードを確認する

工場出荷状態で設定されている IPMI 接続用アカウントの初期パスワードを確認しておきます。
初期パスワードについていは [HPE iLO 4ユーザーガイド](https://h50146.www5.hpe.com/lib/products/servers/proliant/manuals/684918-593_ja.pdf) の「iLO に初めてログインする方法」を参照してください。

## [FreeBSD](https://www.freebsd.org/) インストール用 USB メモリを差しておく

ネットワークブートでインストールすることも可能だと思いますが、そのために準備するものがいろいろ必要になります。

今回は [FreeBSD](https://www.freebsd.org/) インストール用 USB メモリを作成し、作成した USB メモリを事前に差しておく方法をとります。

[FreeBSD](https://www.freebsd.org/) インストール用 USB メモリの作成は、https://download.freebsd.org/ftp/releases/ISO-IMAGES/13.0/FreeBSD-13.0-RELEASE-amd64-memstick.img をダウンロードし、dd などを使って USB メモリに書き込むことで作成します。
USB メモリは 2GiB 以上のものを使ってください。

[FreeBSD](https://www.freebsd.org/) 環境では fetch コマンドを使ってダウンロードできます。

```shell:fetch
fetch https://download.freebsd.org/ftp/releases/ISO-IMAGES/13.0/FreeBSD-13.0-RELEASE-amd64-memstick.img
```

取得したファイルを dd などを使って USB メモリに書き込みます。

```shell:dd
dd if=FreeBSD-13.0-RELEASE-amd64-memstick.img of=/dev/da0 bs=8k
```

# ipmitool で接続

ネットワークに接続された [HP Thin Micro TM200](https://ascii.jp/elem/000/001/448/1448982/) に ipmitool で接続します。

接続先の IP アドレスは初期状態では DHCP で取得する設定になっているため、起動時の画面に表示されるアドレスを調べておくか、DHCP サーバで IP アドレスの割り当て情報から確認します。

管理ユーザとして初期状態で Administrator が用意されているので Administrator でログインします。

```
ipmitool -I lanplus -H ${IP アドレス} -A PASSWORD -U Administrator shell
```

# 電源を入れる

IPMI の機能を使って電源を入れます。

```
ipmitool> chassis power on
Chassis Power Control: Up/On
ipmitool>
```

```
ipmitool> chassis power status
Chassis Power is on
ipmitool>
```

# iLO4 で初期設定

- [HPE iLO 4ユーザーガイド](https://h50146.www5.hpe.com/lib/products/servers/proliant/manuals/684918-593_ja.pdf)
    - [iLO に初めてログインする方法](https://h50146.www5.hpe.com/lib/products/servers/proliant/manuals/684918-593_ja.pdf#s_Logging_in_to_iLO_for_the_first_time_201109191835)

# boot デバイスの選択

起動中に "For access via BIOS Serial Console:" という表示が出ると boot デバイスを選択できます。

USB メモリ以外に boot 可能なデバイスがなければそのまま待っていれば USB メモリから boot しますが、HDD/SSD に起動可能な OS をインストールしていた場合は、このタイミングで`ESC`の次に `!` を押して boot デバイスの選択メニューを表示させ、"Generic USB Boot" を選択して明示的に USB メモリから起動させます。

```
For access via BIOS Serial Console:
Press 'ESC+9' for System Utilities
Press 'ESC+!' for One-Time Boot Menu
Press 'ESC+@' for Network Boot
```

```
One-Time Boot Menu


  FreeBSD
  FreeBSD
  FreeBSD
> Generic USB Boot
  Embedded SATA Port 1 HDD : WDC WD80EFAX-68KNBN0
  Embedded SATA Port 2 HDD : WDC WD80EFAX-68KNBN0
  Embedded LOM 1 Port 1 : HPE Ethernet 1Gb 4-port 366i Adapter - NIC (PXE IPv4)
  Embedded LOM 1 Port 1 : HPE Ethernet 1Gb 4-port 366i Adapter - NIC (PXE IPv6)
  Rear USB 2 : Sony Storage Media
  NVMe Drive 1 : NVM Express Controller - 2K5229AE1EP2       -ADATA SX6000LNP                         -0

Run a UEFI application from a file system                                                         
```

# [FreeBSD](https://www.freebsd.org/) をインストール

USB メモリから起動させたら、あとは [FreeBSD](https://www.freebsd.org/) をインストールしていきます。

[FreeBSD](https://www.freebsd.org/) のインストール方法については公式ドキュメントの [第2章 FreeBSD のインストール](https://docs.freebsd.org/ja/books/handbook/bsdinstall/) を参照してください。

他にも[Qiitaにもいくつか記事があります](https://qiita.com/search?q=FreeBSD+%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)し、[Qiita以外にも情報があります](https://www.google.com/search?client=firefox-b-d&q=freebsd+%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)ので探してみてください。

# 最後に

[FreeBSD](https://www.freebsd.org/) をインストール出来たら、次は仮想化機能の利用を考えます。
現時点では Xen Dom0 は起動できない状態ですが、[bhyve](https://bhyve.org) は動いたので [bhyve](https://bhyve.org) で仮想環境を整えてみます。

# 参照

- [HPE ProLiant Thin Micro TM200サーバーユーザーガイド](https://h50146.www5.hpe.com/products/servers/proliant/tm200/pdf/user_guide.pdf)
- [HPE iLO 4ユーザーガイド](https://h50146.www5.hpe.com/lib/products/servers/proliant/manuals/684918-593_ja.pdf)
- [HPE ProLiant Thin Micro TM200 ServerUser Guide](https://techhub.hpe.com/eginfolib/servers/docs/enterprise/TM200/868923-002a.pdf)