10GbEのついたあやしいミニPCのR86Sを買って、eMMCにProxmoxを入れてみた

はじめましての人ははじめまして。そうでないひとはお久しぶりです。猫ロキP(@deflis/id:deflis55)です。

昨年末に光クロスを導入したので10GbE環境になりました。(ちなみにenひかりクロスでWXR-6000AX12Sを格安で売ってもらっているので実はあまり困っていませんでしたが) というわけで、せっかく10GbE環境を手に入れたので、以前から興味のあったProxmox VE環境を整えたいという意味も込めて10GbE NICが内蔵されたR86Sをポチってみました。

ちなみにAliexpressで買いました。そっちだと9.5万が7万弱なのでアリエクで買うことをオススメします。届くまでおおよそ2週間ぐらいかかりました。 あ、N6005/32GBのモデルを買ったんですがN100/16GBのモデルも同じぐらいの値段で出ていたので、そちらを探す方がきっと幸せになれると思います。 (N100のほうにはまだ32GBモデルはないようです。不幸中の幸い。)

Proxmox VEのインストールは拍子抜けするぐらい簡単にできました。 一つだけ問題があるとするとeMMCをインストール先に選ぶと、インストーラーがエラー落ちするところでしょうか。

ibug.io

このブログに解決法は書かれていたのですが、ざっくり解決法を書いておきます。 eMMCをインストール先に使えるようにインストーラーのコードを書き換えるとよいようです。

Proxmox VE 8.0-2のインストーラーをRufusUSBメモリに焼いたもので確認しています。 あと、ブート順がeMMC優先になってるのでUSBメモリに変更しておきましょう。

  1. インストーラーをデバッグモードで起動する。
    • 起動オプションをもっと見るとするとグラフィカルデバッグモードがあるので、それで起動します。
    • コンソールみたいな方のオプションはCUIインストーラに変わるだけなのでグラフィカルモードのほうで大丈夫です。
  2. 1回目のデバッグコンソールはまだ最低限のLinux環境しか読み込まれていないので、無視して exitCtrl+D して次に進めます。
  3. 2回目のデバッグコンソールはインストーラを起動する直前の状態で止まるのでここで作業をします。
  4. vinano/usr/share/perl5/Proxmox/Sys/Block.pm を開きます。vimははいっていません。
    • 8以前だと異なるらしいです。ブログを参照してください。
  5. 以下のような unable to get device/dev/nvme\d+ のようなところを探します。
} elsif ($dev =~ m|^/dev/[^/]+/hd[a-z]$|) {
    return "${dev}$partnum";
} elsif ($dev =~ m|^/dev/nvme\d+n\d+$|) {
    return "${dev}p$partnum";
} else {
    die "unable to get device for partition $partnum on device $dev\n";
}
  1. 最後のelseの前のNVMeの2行をコピペして /dev/mmcblk\d+ をサポートするように書き換えます。具体的には以下のようにします。
} elsif ($dev =~ m|^/dev/[^/]+/hd[a-z]$|) {
    return "${dev}$partnum";
} elsif ($dev =~ m|^/dev/nvme\d+n\d+$|) {
    return "${dev}p$partnum";
} elsif ($dev =~ m|^/dev/mmcblk\d+$|) {
    return "${dev}p$partnum";
} else {
    die "unable to get device for partition $partnum on device $dev\n";
}
  1. exitCtrl+D してインストーラーを起動します。
  2. /dev/mmcblk0 が選べるようになっているので、そこにインストールします。

あとは普通に使えるようになるのでOpenWRTなどを入れてルータとかにしましょう。 ここも一悶着あったので、後で記事にしようと思います。