仮想マシンでファームウェアをフラッシュできますか?

仮想マシンでファームウェアをフラッシュできますか?

ファームウェアをアップデートしたUSBデバイスがいくつかありますが、ファームウェアをアップデートできるWindows PCがありません。

まず、Linuxでデバイスを直接アップデートできることを確認しましたが、fwupdmgr利用可能なファームウェアアップデートがないと言いました。

次に、Virtualbox 7を使用してWindows 10および11仮想マシンでファームウェアを更新しようとしました。 USBパススルーを設定しましたが、デバイスがWindowsで正常に動作しているようです。実際、一部のデバイス(複数のLogitechマウスなど)では、デバイスを認識してデバイスを変更できるようにするベンダーソフトウェアをインストールしました(ファームウェアは更新できません)。

また、私がvboxusersグループのメンバーであることを確認し、VirtualBoxのudevルールが/etc/udev/rules.d/60-vboxdrv.rules

私もこのページを読み、そこにリストされているすべてを試しました。https://forums.virtualbox.org/viewtopic.php?t=82639

最後に、問題がVirtualBoxに限定されている場合に備えて、Gnome Boxesとvirt-managerを試しましたが、どちらも効果がありませんでした。

一部の人は、macOSでVirtualboxを使用してファームウェアを更新できると述べています。たとえば、次のようになります。

それで、Linux USBデバイスがファームウェアアップデートを無効にする仮想マシンに接続する方法にユニークな点があるのだろうか。

私の問題は次のようになりますこれしかし、ユーザーは可能かどうかではなく、ファームウェアを更新するのが安全かどうか尋ねました。

答え1

何度も繰り返し(VirtualBox / Gnome Boxes / virt-managerのWindows 10/11)を試した後の最良の推測は、現在Linux上で実行されているWindows仮想マシンを介してファームウェアを更新することは不可能です。

私はWindowsを使用していませんが、私が考えることができる唯一の解決策は、小さなWindowsインストールをインストールしてファームウェアを更新することです。あなたはできます:

  • 未使用の古いコンピュータにWindowsをインストールする
  • 使用しているコンピュータに小さなWindowsパーティションを作成します。
  • 外付けドライブへのWindowsのインストール

一般的な方法でWindowsをインストールしてください。

Windowsをインストールする最も簡単な方法はダウンロードすることです。Windows 10またはWindows 11ISOをマウントし、起動可能なUSBインストールを作成したら、それを使用してWindowsをインストールします。

私の場合は、Windowsインストールメディアを作成するために完全に良いUSBドライブを消去したくないので、Windowsのインストール中にコンピュータを使用できるようにしたいので、Linuxで直接好みます。

次のコマンドを使用して、LinuxにWindows 10をインストールします。deploy-win10-from-linux

これは、仮想マシンを使用せずにLinuxにWindows 10を完全にインストールするための非常にクールなツールですが、少し高度な機能であり、ドキュメントが不足しています。しかし、私はそれを動作させることができ、ここで私がしたことを文書化しました。https://codeberg.org/regnarg/deploy-win10-from-linux/issues/1

VirtualBoxを使用したLinuxでのWindows 10のインストール

簡単にするために、MBR + BIOSを使用してWindows 10をインストールしました。 GPT + EFIを使用している場合は、必要に応じてこの手順を調整してください。

  1. 以下からWindows 10 ISOをダウンロードしてください。https://www.microsoft.com/software-download/windows10ISO

  2. 目的地の準備

    これは、特定のパーティションにWindowsをインストールする場合にのみ必要です。ドライブ全体にWindowsをインストールするには、この手順をスキップできます。

    私は通常、この種の操作にGPartedを使用します。

    1. ドライブに空き容量を作る

      1. GPartedを開き、1つ以上のパーティションのサイズを変更または削除し、すべてのタスクを適用上に。少なくとも80 GBのスペースを持つWindows 10をお勧めします。
    2. (オプション)新しい NTFS パーティションの作成

      1. 未割り当て領域を右クリック >新しい>ファイルシステム>NTFS>次へ追加次にクリックすべてのタスクを適用上に
  3. Windowsのインストール

    1. バーチャルボックスのインストール

    2. ドライブ用のVMDKファイルを作成します。

      sudo vboxmanage internalcommands createrawvmdk -filename sda.vmdk -rawdisk /dev/sda
      
    3. VMDKファイルの所有権をユーザーに変更

      sudo chown "$USER:" *.vmdk
      
    4. ユーザーにディスクグループへの一時アクセスを許可する

      sudo usermod -aG disk "$USER"
      newgrp disk
      
    5. VirtualBoxの起動

      virtualbox
      
    6. Windows 10用の新しい仮想マシンの作成

      • ISOイメージ>ダウンロードしたWindows 10インストールISOを選択します。

      • 確認する無人インストールをスキップドライブ全体ではなく特定のパーティションにインストールする場合

        ⚠Windowsのサイレントインストールは、いくつかの作業を節約できるVirtualBoxの非常にクールな機能ですが、ディスク全体が消去されるため、ドライブ全体にWindowsをインストールするときにのみ使用してください。

      • 選ぶ既存の仮想ハードディスクファイルの使用作成したVMDKファイルを参照してください。

    7. 仮想マシンの起動

      • 確認していない場合無人インストールをスキップ、仮想マシンが自動的に電源を入れ、Windowsをインストールします。

      • 確認したら無人インストールをスキップ、仮想マシンを開き、Windowsのインストールプロセスを手動で完了する必要があります。

        1. 起動後、キーを押してWindowsインストールから起動します。

        2. カチッという音>今すぐインストール

        3. 到達するまで、必要に応じて次の画面を作成します。どのタイプのインストールをしたいですか?

        4. 選ぶカスタマイズ:Windowsのみのインストール(詳細)次に、Windowsをインストールするパーティションを選択します。

    8. インストールが完了すると、仮想マシンが再起動し、起動する前に仮想マシンの電源が切れます。

    9. (オプション) VirtualBox から仮想マシンを削除する

    10. VirtualBox を終了し、diskグループからユーザーを削除します。

      sudo deluser "$USER" disk
      
  4. Linuxを含むディスク上の特定のパーティションにWindowsをインストールする場合は、Grubをリセットする必要があります。

    1. たとえば、Grubを再インストールします。

      sudo grub-install /dev/sda
      
    2. GrubにWindowsエントリを追加する

      1. オペレーティングシステムプローブの有効化

        sudo sh -c 'echo GRUB_DISABLE_OS_PROBER="false" >> /etc/default/grub'
        
      2. 走るupdate-grub

        sudo update-grub
        
  5. コンピュータを再起動し、新しいWindowsインストールから起動します。

    • ドライブ全体にWindowsをインストールした場合は、Windowsから直接起動する必要があります。
    • Windowsを外付けドライブにインストールした場合は、コンピュータの起動オプションから適切なドライブを選択する必要があります。
    • 特定のパーティションにWindowsをインストールした場合は、Grubで新しいWindows 10メニュー項目を選択してください。

関連情報