HouseServerProj 2 台目のミニ PC を購入し自宅サーバ環境をアップデートする

はじめに

Proxmox を 2 台目のミニ PC に導入します。 Proxmox を導入することで

  • 仮想化環境を用意できる
  • 好きな OS を好きなだけ用意できる
  • Linux を動かしている裏で Windows を実行できる
  • CPU/Memory を実際の個数よりも多く仮想的に利用できる

メリットがあるようです。

Ref

url: https://www.youtube.com/watch?v=96yZuFbmyuY
title: "省電力小型PCに本格仮想化環境を構築する。Proxmoxで自宅サーバーを簡単セットアアップ"
description: "自宅サーバーをやるのですProxmox: https://www.proxmox.com/Proxmox VE Helper-Scripts: https://community-scripts.github.io/ProxmoxVE/balena Etcher: https://etcher.balena.io..."
host: www.youtube.com
favicon: https://www.youtube.com/s/desktop/2253fa3d/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/96yZuFbmyuY/maxresdefault.jpg
url: https://www.youtube.com/watch?v=8j4vk3skv3s
title: "Vlog#402 ミニPCを仮想化したWindows11で運用してみるTry2 #GMKtec #ミニPC #Proxmox #iGPU #パススルー"
description: "今回は以前の動画に引き続き、ミニPC内に仮想環境を構築する動画です。CPU内蔵のGPUを特定のVMと紐づけることで、PCのHDMI出力をVMに占有させるという魂胆だったのですが・・・▶チャプタリスト00:00 Chapter0 Windowsを仮想化してiGPUを使うTry01:10 Chapter1 パススルー..."
host: www.youtube.com
favicon: https://www.youtube.com/s/desktop/2253fa3d/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/8j4vk3skv3s/maxresdefault.jpg
url: https://www.youtube.com/watch?v=oygZxJP_3Fk
title: "Proxmox VE超入門 〜 無料で作れるご自宅仮想化プラットフォーム"
description: "多数の仮想マシンを管理しようとすると、どうしてもWeb UIを備えたハイパーバイザー型の仮想化プラットフォームが欲しくなってきます。長らくホビーユーザー向けの定番であったVMware ESXiの無償提供が終了したこともあり、それに代わるプロダクトを探している人も多いのではないでしょうか。今回はそんな用途にピッタリ..."
host: www.youtube.com
favicon: https://www.youtube.com/s/desktop/2253fa3d/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/oygZxJP_3Fk/maxresdefault.jpg

ライセンスキーと Driver のバックアップ

インストール済みの Windows PC を削除して proxmox に移行します。 移行前にミニ PC に入っていたドライバー、そしてライセンスキーをバックアップしておきます。

ライセンスキーについては ShowKeysPlus を利用してライセンスキーを写真にとって控えておきます。 Driver については下記の記事を参考にバックアップしました。

https://qiita.com/tadayasu/items/74dac0f79f859589d599 https://www.vwnet.jp/windows/w10/2018041501/ExportDeviceDriver.htm

driverquery > driver_query.txt
dism /online /export-driver /destination:C:\yourpath

USB に proxmox を焼く

url: https://qiita.com/kapibarasensei/items/9fb81f0102f9ccc31559
title: "MacでISOを焼いてブート可能なUSBを作る - Qiita"
description: "しばしば忘れるので、備忘録として… 実行時の環境 macOS 10.14.6 Mojave 準備 iTerm2などのコンソールが利用できること 対象ISOイメージはカレントディレクトリにあるものとして、予めcdしておくこと USBメモリのフォーマット USBメモリ..."
host: qiita.com
favicon: https://cdn.qiita.com/assets/favicons/public/production-c620d3e403342b1022967ba5e3db1aaa.ico
image: https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1pbWFnZS1zdG9yZSUyRjAlMkY2MzE3MDYlMkY2ODllNTljY2Y2MjU1NTllNWI4ZWU0MTYxY2YxYmM4OTc0ZDFmNGI5JTJGeF9sYXJnZS5wbmclM0YxNTg4Njg0MzA2P2l4bGliPXJiLTQuMC4wJmFyPTElM0ExJmZpdD1jcm9wJm1hc2s9ZWxsaXBzZSZmbT1wbmczMiZzPTE2YzZiOTI5MmQ0NjcyZGM2MmZjYTFjNTI1YzAyYmYx%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3De03dbf1d66cf6d966095f3ba6a77983d?ixlib=rb-4.0.0&w=1200&fm=jpg&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9TWFjJUUzJTgxJUE3SVNPJUUzJTgyJTkyJUU3JTg0JUJDJUUzJTgxJTg0JUUzJTgxJUE2JUUzJTgzJTk2JUUzJTgzJUJDJUUzJTgzJTg4JUU1JThGJUFGJUU4JTgzJUJEJUUzJTgxJUFBVVNCJUUzJTgyJTkyJUU0JUJEJTlDJUUzJTgyJThCJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9YTY0ZDdiMmNkMDE4NmFhYTM1YmQ5YjU5MTk2MjhkYTU&mark-x=120&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBrYXBpYmFyYXNlbnNlaSZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTY0MzI4OWNmY2U5NDQ0MTg5ZjZkNDhlMjY1MTNjOGNi&blend-x=242&blend-y=480&blend-w=838&blend-h=46&blend-fit=crop&blend-crop=left%2Cbottom&blend-mode=normal&s=d25d05811188d9968090689f6ed51765

上記を頼りに ISO を焼きます。

 diskutil list
...
 
/dev/disk5 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *31.0 GB    disk5
   1:       Microsoft Basic Data NO NAME                 31.0 GB    disk5s1
 

diskutil list で NO NAME = USB が確認できました。

diskutil eraseDisk で /dev/disk5 を MS-DOS 形式でフォーマットします。 これで PROXMOX という名前の USB メモリが作成され、空の状態になりました。

 diskutil eraseDisk MS-DOS PROXMOX /dev/disk5
Started erase on disk5
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk5s2 as MS-DOS (FAT) with name PROXMOX
512 bytes per physical sector
/dev/rdisk5s2: 60185856 sectors in 1880808 FAT32 clusters (16384 bytes/cluster)
bps=512 spc=32 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=411648 drv=0x80 bsec=60215296 bspf=14694 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk5
 

dd コマンドで .iso ファイルをデバイスに書き込んでいきます。 dd コマンドは disk duplicate の略らしく

  • ディスクのフォーマット
  • ファイルコピー
  • ISO を焼く

などが行えるようです。

https://pawsole.com/dd/

アンマウントしてから dd で .iso ファイルを rdiks5 の先頭からコピーします。 Mac のエクスプローラーでドラッグドロップでも作れるのでは…? となりますが、それだと Mac のファイルシステムのうえで単なるファイルとしてコピーされ、起動プログラムとして USB の MBR に入らないようなのでだめです。

~ [☁️ ]
 diskutil unmountDisk /dev/disk5
Unmount of all volumes on disk5 was successful
 
~ [☁️ ]
 sudo dd if=/Users/ganyariya/Downloads/proxmox-ve_8.4-1.iso of=/dev/rdisk5 bs=16m
93+1 records in
93+1 records out
1571895296 bytes transferred in 121.388071 secs (12949339 bytes/sec)
 

BIOS で USB メモリ の Proxmox を起動する

BIOS 画面になかなか入れなくて困りました。

BMAX B4 を起動したときに Fn + F11 を長押し&連打します。 起動直後にずっと長押ししないと反応せず、タイミングが悪いと BMAX のリカバリー画面や Windows にそのまま向かってしまい大変でした。

BIOS を開いたらブート優先度について USB Proxmox を #1 へ変更し最初に起動するようにします。 Save Changes And Exit すると、Proxmox の起動画面に入ります。 これは Install Proxmox VE (Graphical) で進めていきます。

ネットワーク設定 ですが、今の家の環境では以下のように動いています。

  • デフォルトゲートウェイ(Baffalo 無線 LAN ルータ)
    • 192.168.11.1
  • DNS
    • 192.168.11.1
  • 1 台目のミニ PC (k8s, ArgoCD, misskey, …)
    • 192.168.11.100 (固定)
ganyariya in 🌐 ganyariya-ubuntu in [☸ default] ~ [☁️ ganyariya]
❯ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.11.1    0.0.0.0         UG    0      0        0 wlp1s0
10.42.0.0       0.0.0.0         255.255.255.0   U     0      0        0 cni0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.11.0    0.0.0.0         255.255.255.0   U     0      0        0 wlp1s0

Proxmox については 192.168.11.101 に固定してつかうことにします。 ネットワーク接続について、 IP Address (CIDR) で 192.168.11.101 と割り振りたい IP アドレスを指定しましょう。 ただし、一回目の挑戦において 誤って 192.168.11.0 / 24 という CIDR そのままをいれてしまってなにも通信できない状態になりました。注意しましょう。

Imgur

しかし、インストールが終わっても Mac のブラウザ経由で proxmox にアクセスできませんでした。 色々調べたところ BMAX B4 (proxmox) を wlpls0 = 無線 Wifi でインターネットならびにお家の WLAN につなごうとしていたのが問題でした。 proxmox は有線で動かすことを前提にしており、無線でつなげません。

そこで、次の節であるように、 proxmox を Wifi で動かせないか挑戦しました。 ただし、これは失敗したため最終的に有線でつなぐようにしています。

(失敗)proxmox を Wifi で動かす

下記の GitHub に従って proxmox を入れようとしましたが、自分の環境だとうまく動きませんでした。

https://github.com/ThomasRives/Proxmox-over-wifi

そのため、proxmox を有線で扱う、つまり推奨の方法で扱うようにします。 郷に入っては郷に従え、ですね。

#(成功) proxmox を有線でつなぐ

proxmox を再度 USB メモリからインストールします。 このとき、 proxmox を Baffalo 無線 LAN ルータと有線のイーサネットでつないでいます。 ネットワーク設定においては enp2s0 = 有線でつなぎ、 192.168.11.101 を割り当てます。 ちゃんとネットワークが繋がっていれば緑色のアイコンが出るのですね… Imgur

上記の設定で最後までおこない、無事に proxmox をインストールできました。

ためしに Ubuntu Desktop をインストールしてみる

Proxmox の初期設定などやらないといけないことは色々とあるのですが、まずは本当に Proxmox で VM を作れるのかを試しておきます。

https://releases.ubuntu.com/24.04.2/ubuntu-24.04.2-desktop-amd64.iso?_gl=1*1txopz3*_gcl_au*MjcxMTc3ODczLjE3NTE2OTg1Mzk

上記 URL から Ubuntu Desktop の ISO をダウンロードします。

Imgur

デフォルト設定のまま VM を作成すると、下記のように Ubuntu Desktop Console にアクセスできました。 NoVNC で X11 を転送しているようです。

Imgur

https://yoshi0808.github.io/new-technology/2024/02/19/Proxmox-new-vm/

こちらを参考に Ubuntu Desktop を入れます。

Imgur

インストールが終わったら、インストールメディアを抜いてね、という表示が出てきます。Imgur

これで Ubuntu Desktop がインストールできました。

音声を聞きたい場合は SPICE を利用する

Mac のブラウザから proxmox を開いて ubuntu-desktop を開いているのですが、 ubuntu-desktop 上で再生している YouTube の音声が聞こえません。 これは NoVNC だと音声を流すのが難しいようです。

そのため、かわりに SPICE というクライアントを利用します。

Imgur Display を Graphic Card: Default → SPICE にします。 また、 AudioDevice に spice を追加します。

Imgur

右上の Console に SPICE があるため、こちらを選択します。 pve-spice.vv というファイルがインストールされます。こちらを接続で利用します。

Imgur

https://gist.github.com/tomdaley92/789688fc68e77477d468f7b9e59af51c https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/6/html/virtualization_administration_guide/chap-virt-tools

brew install damenly/virt-manager/virt-viewer
brew install virt-viewer

上記を参考に手元の macbook に virt-viewer というソフトウェアを入れます。 virt-viewer は VNC や SPICE といったプロトコルでゲスト仮想マシンの GUI を表示するためのソフトウェアだそうです。

ここで damenly の virt-viewer を利用します。上記の gist のもっとも上部に記載されている jeffreywildman だとうまく動きませんでした。 あとは virt-viewer ~/Downloads/pve-spice.vv のように呼び出します。

Imgur

この方法で SPICE という方法をつかって Ubuntu にアクセスできました。 ただ、これでも音声が聞こえない… と悩んでいたら Ubuntu 側で音声が 0 になっていました…。それは聞こえないですね…!!

Ubuntu 側で音量を 20 ぐらいにし、かつ macbook 側で音量を 20 ぐらいにするとちゃんと音声が聞こえるようになりました。

Ubuntu Desktop に Mac から ping / SSH でアクセスしてみる

IP アドレスを Summary から見れるようにする

Proxmox で作成した Ubuntu Desktop の VM の IP アドレスをまずは調べます。 UbuntuDesktop 内で ifconfig などをすればわかりますが、下記の記事を参考に Summary 上で IP アドレスが出るようにしてみます。

url: https://zaki-hmkc.hatenablog.com/entry/2024/02/07/234738
title: "Proxmox VEのVMのIPアドレスをサマリーに表示する - zaki work log"
description: "特にESXiから移行したVMなんかで表示されない「サマリー画面」のIPsですが、次の2点を対応すればVMのIPアドレスが表示されます。ほぼ小ネタ。 1. VMオプションの「QEMU Guest Agent」の有効化 [オプション]->[QEMU Guest Agent]の値がデフォルトは無効になってますが、これを有効(「QEMU Guest Agentを使用」にチェック)にします。 オプションがいろいろありますが、特に変更せずにデフォルトの状態でOKです。 2. VMのOSにqemu-guest-agentパッケージをインストール qemu-guest-agentパッケージをインストールします…"
host: zaki-hmkc.hatenablog.com
favicon: https://zaki-hmkc.hatenablog.com/icon/link
image: https://cdn.image.st-hatena.com/image/scale/48439aba8b824b2122d05323f738901780cd7a89/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fz%2Fzaki-hmkc%2F20240207%2F20240207234127.png

Imgur 現状はまだ No Guest Agent configured となっており、IP アドレスがなにも表示されていません。

https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/chap-qemu_guest_agent

QEMU Guest Agent を ゲスト OS にインストールすることで、ホスト OS である proxmox がゲスト OS の情報を取得し、かつ操作できるようになるそうです。 デフォルト設定のまま Qemu Agent を有効化します。 Imgur

sudo apt install -y qemu-guest-agent
 

Imgur

この作業によって、 Proxmox が Ubuntu Desktop の情報を取得し、 192.168.11.20 であることを突き止めてくれました。

Ubuntu Desktop の IP アドレスがどう設定されているか確認する

続いて、この 192.168.11.20 がどのように設定されているのか確認します。

https://forum.proxmox.com/threads/tl-dr-for-getting-novnc-copy-paste-clipboard-sharing-working-with-ubuntu-24-guest.159051/

qm set {vmid} -vga clipboard=vnc を利用して NoVNC でクリップボードを使えるようにしておきます。

Imgur

ubuntu@ubuntu-Standard-PC-i440FX-PIIX-1996:~/Desktop$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether bc:24:11:be:49:c2 brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet 192.168.11.20/24 brd 192.168.11.255 scope global dynamic noprefixroute ens18
       valid_lft 172737sec preferred_lft 172737sec
    inet6 2404:7a81:9c0:fc00:b7ea:8dcb:48e7:b55b/64 scope global temporary dynamic 
       valid_lft 86385sec preferred_lft 14385sec
    inet6 2404:7a81:9c0:fc00:be24:11ff:febe:49c2/64 scope global dynamic mngtmpaddr 
       valid_lft 86385sec preferred_lft 14385sec
    inet6 fe80::be24:11ff:febe:49c2/64 scope link 
       valid_lft forever preferred_lft forever

ens18 ネットワークインターフェースに 192.168.11.20 が紐づいていることが確認できました。 上記は Ubuntu Desktop の DHCP で割り振られています。 これを固定 IP に変更します。

/etc/network/01-network-manager-all.yaml を下記のように書きかえます。 また、 UbuntuDesktop 上で DHCP ではなく Manual を利用します。 これで UbuntuDesktop に 192.168.11.25 でアクセスできるようになりました。

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens18:
      dhcp4: false
      dhcp6: false
      routes:
        - to: default
          via: 192.168.11.1
      addresses: [192.168.11.25/24]
      nameservers:
        addresses: [192.168.11.1]
      optional: true
 

SSH アクセスできるようにする

Ubuntu Desktop 側で ssh 接続ができるように service をインストール&有効化します。

sudo apt update
sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh

Mac で下記の操作をおこない、 proxmox の UbuntuDesktop 用の key を発行し、 ubuntu に公開鍵を転送します。

ssh-keygen -t rsa -b 4096 -f ~/.ssh/tmp_proxmox_ubuntudt_key
ssh-copy-id -i ~/.ssh/tmp_proxmox_ubuntudt_key.pub ubuntu@192.168.11.25

また、 Mac 側で .ssh/config を設定します。

Host tmp-ubuntudt
  HostName 192.168.11.25
  User ubuntu
  Port 22
  IdentityFile ~/.ssh/tmp_proxmox_ubuntudt_key

あとは ssh tmp-ubuntudt で UbuntuDesktop に SSH 接続できました。

まとめ

ここまでの内容をまとめます。

Imgur

  • proxmox は有線イーサネットによる接続を前提にしています
    • 無線 Wifi による WLAN は推奨していないため注意しましょう
  • proxmox には KVM もしくは LXC でゲスト OS を用意できます
  • 作成した VM について、ネットワークは該当 OS のデフォルト設定で動きます
    • Ubuntu Desktop であれば DHCP であり、 DHCP サーバからランダムに IP が割り振られる
    • 固定化したい場合は Ubuntu Desktop 用での作業が必要になります
  • 作成した VM 上で SSH 設定をすれば該当の IP で通常通り SSH 接続できます
  • VM のコンソール(GUI / CUI)には NoVNC でアクセスします
    • ただし音声は利用できません
    • 利用したい場合は SPICE の設定を有効にし、ゲスト OS とアクセスしたい端末(例: mac) それぞれで SPICE の設定をしましょう
  • VM・LXC には qemu-guest-agent をインストールしましょう
    • Proxmox が VM の情報にアクセスし、かつ操作を行えるようになります

上記のように Proxmox をミニ PC にインストールし、ためしに UbuntuDesktop を動かしてみました。

HouseServerProj 2 台目のミニ PC を購入し自宅サーバ環境をアップデートする の次の Step では

  • Proxmox の初期設定
  • Proxmox のネットワークの仕組みを調べる

を行います。