VirtualBoxをWindows Bash(Beta)内にインストールしようとしていますが、次の永続的なエラーメッセージが表示されます。
somasundaram@Host:~/kernel34$ VBoxManage --version
WARNING: The character device /dev/vboxdrv does not exist.
Please install the virtualbox-dkms package and the appropriate
headers, most likely linux-headers-3.4.0+.
You will not be able to start VMs until this problem is fixed.
4.3.36_Ubuntur105129
また、3.4.1のlinuxヘッダーをインストールして、再構成しようとしました
somasundaram@Host:~/kernel34$ Sudo dpkg-reconfigure virtualbox-dkms
しかし、無駄に。
VirtualBoxは、実行中のハードウェアに大きく依存しており、Windows上のBashを理解しません。 BoWでVboxを実行することは、Canonical、Microsoft、Oracleのいずれの意図でもありませんでした。
Microsoft で説明されているように:
これは、すべてのシナリオとプラットフォーム用のすべてのコードを記述および構築するのに役立つ開発者ツールセットです。」完全なUbuntu仮想マシンではありません。 Linuxのように、サーバーをホストするために使用することはできません。
開発者ツールセットです。これ以上何もない。
これを機能させるには、ハードウェアレベルでの変更が必要です。おそらくOracleとMicrosoftの両方から。
現在の技術では不可能と言います。
ところで、あなたがこれを一緒にハッキングするのに十分な能力があると思うなら、あなたが投稿した通知は約2つのことです
/dev/vboxdrv
は存在しません。 virtualbox-dkmsパッケージをインストールしてくださいおそらくvirtualbox-dkms
をapt
でインストールできます。さらに、使用しているヘッダーを確認する必要があります。一般的には、これらを以下を使用してインストールします。
apt-get install linux-headers-`uname -r`
dpkg-reconfigure virtualbox-{numbers}
uname -rが3.4を示している場合。それ以外の場合は、自分で番号を挿入する必要があります。
これらの2つを機能させることができれば、あなたが進むべき方向への長い道のりかもしれません。私はあなたが2番目の機能を得ることができるとは思いませんが(vBoxはシステムにインストールされません。それは意図されていませんでした)。
Windows Bashはnot Linuxです。 Windows Bashは基本的にAPIエミュレーションであり、Linuxバイナリが何も実行しない場合specialを実行できます。言い換えると、WindowsはLinux ABIのより一般的に使用される部分をエミュレートします。これは、ファイルを開いたり、ものを読み書きしたり、ネットワークI/Oを実行するなどの簡単な操作に十分です。ただし、ハードウェアとの対話(VirtualBoxが通常行うこと)や、何らかの種類のフレームバッファー(Xに必要なため、たとえばUnityに必要ですが、これを回避することはできます)との対話などはエミュレートされず、失敗します。 VirtualBoxは、デバイスドライバーを構築することを望んでいます-ビルドできるカーネルがないため、このエミュレーションモデルを使用することはできません。したがって、カーネルヘッダーまたはdkmsモジュールのインストールは失敗します。
TLDR:Windows上のWindows Bashは、Linux上のwineがWindowsに対するものであるように、Linuxに対するものです。
WindowsのBashには、Virtual Boxに必要なLinuxカーネルがありません。それはすべて、bashのようなツールがLinuxカーネルに期待する同様の機能を提供します。
特に、Windows上のBashは、LinuxカーネルをエミュレートするWindowsサブシステム上で実行されるGNUツールを提供するだけです。
カーネルがないため、Virtual Box用のモジュールはありません。したがって、失敗し、インストールされません。
これは古い質問ですが、Vagrantを使用する場合は回避策があるようです。 Vagrant によると、WSL内にVagrantをインストールすると、通常のWindows Virtualboxインストールで動作します。具体的には、
Vagrantは、WSL内で実行されていることを検出し、サードパーティの実行可能ファイルを見つけて実行する方法を調整します。たとえば、VirtualBoxプロバイダーを使用する場合、VagrantはWSL内ではなく、WindowsシステムにインストールされたVirtualBoxと対話します。 Vagrantがそれらにアクセスできるように、必要なWindows実行可能ファイルがPATH内で使用可能であることを確認することが重要です。
私がリンクした記事にはもっと詳細があります。