Proxmox インストール時トラブル

## NIC認識不良
Intel 82583V 4Port(HP OEM)がインストール時から認識しない問題。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/733625/aef32c0f-33ab-4c79-8657-aa3935d6867b.png)

対処法は不明。Intel I350-T4に変えたところ認識。
以下解決に至らなかったが試したこと。
- ネットワークインターフェース確認
  ```console
  root@proxmox:~# ip link show
  1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  2: enp4s0: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
  link/ether AAA brd BBB
  3: enxbc5c4cf93736: mtu 1500 qdisc pfifo_fast master vmbr0 state UP mode DEFAULT group default qlen 1000
  link/ether AAA brd BBB
  4: vmbr0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
  link/ether AAA brd BBB
  5: tap100i0: mtu 1500 qdisc pfifo_fast master fwbr100i0 state UNKNOWN mode DEFAULT group default qlen 1000
  link/ether AAA brd BBB
  6: fwbr100i0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
  link/ether AAA brd BBB
  7: fwpr100p0@fwln100i0: mtu 1500 qdisc noqueue master vmbr0 state UP mode DEFAULT group default qlen 1000
  link/ether AAA brd BBB
  8: fwln100i0@fwpr100p0: mtu 1500 qdisc noqueue master fwbr100i0 state UP mode DEFAULT group default qlen 1000
  link/ether AAA brd BBB
  ```
- PCIバスデバイス確認
結果カーネルドライバーが使用されいない(Kernel driver in use: e1000eの表記がない)
  ```console
  root@proxmox:~# lspci -nnk | grep -A 3 -i "Ethernet"
  03:00.0 Ethernet controller [0200]: Intel Corporation 82583V Gigabit Network Connection [8086:150c] (rev 01)
  Subsystem: Hewlett-Packard Company 82583V Gigabit Network Connection [103c:1780]
  Kernel modules: e1000e
  03:00.1 Ethernet controller [0200]: Intel Corporation 82583V Gigabit Network Connection [8086:150c] (rev 01)
  Subsystem: Hewlett-Packard Company 82583V Gigabit Network Connection [103c:1780]
  Kernel modules: e1000e
  03:00.2 Ethernet controller [0200]: Intel Corporation 82583V Gigabit Network Connection [8086:150c] (rev 01)
  Subsystem: Hewlett-Packard Company 82583V Gigabit Network Connection [103c:1780]
  Kernel modules: e1000e
  03:00.3 Ethernet controller [0200]: Intel Corporation 82583V Gigabit Network Connection [8086:150c] (rev 01)
  Subsystem: Hewlett-Packard Company 82583V Gigabit Network Connection [103c:1780]
  Kernel modules: e1000e
  04:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1538] (rev 03)
  Subsystem: ASRock Incorporation I210 Gigabit Network Connection [1849:1539]
  Kernel driver in use: igb
  Kernel modules: igb
  ```
- e1000eドライバーのロード
  ```console
  root@proxmox:~# modprobe e1000e
  root@proxmox:~# dmesg | grep e1000e
  root@proxmox:~# dmesg | grep e1000e
  [165994.744720] e1000e 0000:03:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
  [165994.795238] e1000e: probe of 0000:03:00.0 failed with error -2
  [165994.795511] e1000e 0000:03:00.1: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
  [165994.842234] e1000e: probe of 0000:03:00.1 failed with error -2
  [165994.842437] e1000e 0000:03:00.2: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
  [165994.893239] e1000e: probe of 0000:03:00.2 failed with error -2
  [165994.893439] e1000e 0000:03:00.3: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
  [165994.940232] e1000e: probe of 0000:03:00.3 failed with error -2
  ```
- この他にもigbドライバーへの切り替え等実施したが認識せず(メモを取っていなかったため書けない...)
- デスクトップPCで使用していたI350に交換したところ認識したため、デスクトップと入れ替えて対応終了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/733625/a4abc3ef-0491-4e08-9a7d-78ad4d2ec9d8.png)
- ChatGPTを使いながら半日ほど対応
- このNICはUbuntu20.04で使用していたものにもかかわらず、なぜProxmoxで認識しないかが気になる
- これを記載しながら気づいたが、「Interrupt Throttling Rate」というエラーが発生している。これは掲示板等で対処法が書かれていた記憶があるので、その対処をすれば直るかもしれない。「failed with error -2」に気を取られていた

## Proxmox 無償版への切り替え
Enterpriseサブスクリプションを非アクティブしたが、ログイン後に警告モーダルが表示される問題
サブスクリプションの非アクティブ化だけでは、モーダルが表示される仕様らしい
JSファイルの編集対応
1. Enterpriseサブスクリプションを非アクティブ化
  ノード -> アップデート -> レポジトリないのEnterpriseとつくレポジトリを無効化
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/733625/f22b73f1-fbca-483c-9f60-d041c1ad1397.png)

2. JSファイル編集
    1. JSファイルバックアップ
       ```console
       root@proxmox:~# cp -p /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak
       ```
    1. JSファイル編集
       ```console
       root@proxmox:~# vi /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
       ```
       1. 543行目から始まる以下functions内のif文を無効化する
       ```js
       success: function(response, opts) {
           let res = response.result;
           if (res === null || res === undefined || !res || res
               .data.status.toLowerCase() !== 'active') {
               Ext.Msg.show({
                   title: gettext('No valid subscription'),
                   icon: Ext.Msg.WARNING,
                   message: Proxmox.Utils.getNoSubKeyHtml(res.data.url),
                   buttons: Ext.Msg.OK,
                   callback: function (btn) {
                       if (btn !== 'ok') {
                           return;
                       }
                       orig_cmd();
                   },
               });
           } else {
               orig_cmd();
           }
       },
       ```
       いくつか方法はあるが、if文を全てコメントアウトしorig_cmd();を外に出す
       ```js
       success: function(response, opts) {
           let res = response.result;
           /* if (res === null || res === undefined || !res || res
               .data.status.toLowerCase() !== 'active') {
               Ext.Msg.show({
                   title: gettext('No valid subscription'),
                   icon: Ext.Msg.WARNING,
                   message: Proxmox.Utils.getNoSubKeyHtml(res.data.url),
                   buttons: Ext.Msg.OK,
                   callback: function (btn) {
                       if (btn !== 'ok') {
                           return;
                       }
                       orig_cmd();
                   },
               });
           } else {
               orig_cmd();
           } */
           orig_cmd();
       },
       ```

# 2025/03/02追記
## PCIバスの変動
PCIデバイスをVMにパススルーしていたが、PCIデバイスの追加を行うとバスが変更され、正しいデバイスがパススルーされないことが発覚
Rawデバイスを使用していたが、Mappedデバイスで選択するとバスが変更されても問題ないらしい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/733625/4c109f2d-78f4-416e-bf88-52811cf11ec6.png)

### Mappedデバイス追加方法
1. データセンター -> リソースマッピング -> PCIデバイス 追加を押下
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/733625/8ad8b12d-0916-45de-8a4c-d5d44ea9a5e5.png)

1. パススルーするデバイスを選択、名前を入力し、作成を押下
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/733625/c63c8173-275b-4948-897b-60a153d9df1e.png)

1. PCIデバイスに登録完了
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/733625/e4a55e28-e5ff-4f39-85f2-1529ea2e1cad.png)

1. VMに戻り、Mappedデバイスを使用する
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/733625/90a30f03-40b4-4f5d-b909-f2f7d85762d8.png)

1. VMを再起動し対応完了