私は今日、ローカルディスク上の実際のパーティションを参照するだけのVirtualBox VMDKファイルを作成できることを発見し、言うまでもなく、かなり興奮しました。 「これは、Linuxで実行されているVirtualBoxからWindows 7のインストールを起動できることを意味します!」
私は次のようにVMDKファイルを作成しました:
Sudo VBoxManage internalcommands createrawvmdk -filename .VirtualBox/Hard\ Disks/Windows\ 7\ Local.vmdk -rawdisk /dev/sdb -partitions 2,4,5
パーティション2は私のEFIブートパーティション、パーティション4はWindows msftパーティション、パーティション5は実際のNTFSWindowsパーティションです。これは問題なく実行されたので、VMDKファイルを現在のユーザーにchownして、ログインユーザーで実行できるようにしました。
これが最初の問題につながりました。このイメージをroot以外のユーザーとしてVirtualBoxに追加することはできないようです。可能であれば、rootとして実行したくないのです。回避策はありますか?
次の問題はEFIです。 VirtualBoxでEFIブートを有効にしましたが、EFI/Microsoft/Boot/bootmgfw.efiイメージをブートするたびに、次のコードが表示されます。
BlXmiInitialize failed 0xc000009a
そしてそれは起動しません。さらに、実際のUEFIシェルを使用して起動する必要があるのは、せいぜい面倒です。
VirtualBoxのLinuxから非rootユーザーとして実際のローカルWindows7インストールを起動するにはどうすればよいですか?
Linuxユーザーをdisk
グループに追加すると、VMDKドライブをroot以外のユーザーとして使用できます。
Sudo adduser me disk
それでも、ブートエラーを乗り越えることはできません。
他の問題が原因である可能性があると考えたので、起動時の修復にWindows 7インストールディスクを使用してみましたが、ディスクからWindowsをインストールするように求められるため、Windowsのインストールが表示されないようです。
重要な情報が欠落しているという潜在的な問題を解決するために、次の手順を実行して、個々のパーティションだけでなく、ディスク全体のVMDKを作成しました。
VBoxManage internalcommands createrawvmdk -filename ".VirtualBox/Hard Disks/Windows 7 Local.vmdk" -rawdisk /dev/sdb
ドライブ /dev/sdb
は、ハードウェアIntel RAIDカード(RS2BL080)によって提供される仮想ドライブです。
VirtualBoxチームのメンバー および VirtualBoxマニュアル によると:
VirtualBox EFIのサポートは実験的なものであり、EFIが成熟して普及するにつれて拡張されることに注意してください。 Mac OS XおよびLinuxゲストは正常に動作することが知られていますが、Windowsゲストは現在VirtualBoxEFI実装で起動できません。
それはかなり下手ですが、本当です。興味深いことに、基本的にすべての最新のマザーボードにはWindowsで「正しく動作する」UEFIファームウェアがあるのに対し、Mac OSXではWindowsよりもEFIを実装するのがもっと難しいでしょう。 Appleは、独自のハードウェア用に設計された独自のEFI実装を使用しています。
TL; DR:この投稿の執筆時点では、EFIサポートはVirtualBoxのWindowsでは実際には機能しません。
Windowsのefiブートエラーに関する情報は非常に限られているようです。私はロシア語で、お互いのバックアップのように見える以下の2つのリンクしか見つけることができません
VirtualBox WindowsEFIブートに対応していません。ただし、Windowsを変更する方法を示していますBootmgfw.efi
grub-efiを使用したデュアルブート用。たぶん、そのテクニックを使用してbootmgfw.efiコンテンツを検査し、実際の問題を特定することができます。
ただし、efiの使用については言及されていません。したがって、彼らはおそらく古いスタイルのBIOSを使用しています。
この投稿 によると、Windowsはブートモード(VMとネイティブ)を切り替えるたびにアクティベーションを要求する場合があります。モードを切り替えることは、別のマザーボードとCPUに切り替えるようなものなので、これは理解できると思います。