Debian の VirtualBox

Debian の VirtualBox

3.5.0と3.6.0という2つのカーネルがインストールされています。いくつかの理由でカーネル3.5.0を実行する必要があります。 VirtualBoxは3.6.0では完全に動作しますが、3.5.0では動作しません。

カーネル3.5.0を起動した後apt-get --reinstall install virtualbox-dkms。これにより、VirtualBox モジュールが正常に再コンパイルされました。ただし、ロードに失敗します。

# modprobe vboxdrv
ERROR: could not insert 'vboxdrv': Exec format error

/var/log/messages:

warning: `VirtualBox' uses 32-bit capabilities (legacy support in use)
vboxdrv: disagrees about version of symbol module_layout

モジュールが正しく取り付けられているようです。

$ ls /lib/modules/3.5.0/updates/dkms/
vboxdrv.ko  vboxnetadp.ko  vboxnetflt.ko  vboxpci.ko

システム情報: Debian が不安定です。パッケージはvirtualbox-dkmsすでにインストールされています。

$ uname -r
3.5.0

$ apt-cache show virtualbox | grep Version
Version: 4.1.18-dfsg-1.1

$ apt-cache show dkms | grep Version
Version: 2.2.0.3-1.2

以下はモジュールビルドの出力です。

-------- Uninstall Beginning --------
Module:  virtualbox
Version: 4.1.18
Kernel:  3.5.0 (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

vboxdrv.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.5.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetadp.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.5.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetflt.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.5.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxpci.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.5.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod....

DKMS: uninstall completed.

-------- Uninstall Beginning --------
Module:  virtualbox
Version: 4.1.18
Kernel:  3.6.0 (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

vboxdrv.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.6.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetadp.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.6.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetflt.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.6.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxpci.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.6.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod....

DKMS: uninstall completed.

------------------------------
Deleting module version: 4.1.18
completely from the DKMS tree.
------------------------------
Done.
Unpacking replacement virtualbox-dkms ...
Setting up virtualbox-dkms (4.1.18-dfsg-1.1) ...
Loading new virtualbox-4.1.18 DKMS files...
Building for 3.5.0 and 3.6.0
Building initial module for 3.5.0
Done.

vboxdrv:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.5.0/updates/dkms/

vboxnetadp.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.5.0/updates/dkms/

vboxnetflt.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.5.0/updates/dkms/

vboxpci.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.5.0/updates/dkms/

depmod....

DKMS: install completed.
Building initial module for 3.6.0
Done.

vboxdrv:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.6.0/updates/dkms/

vboxnetadp.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.6.0/updates/dkms/

vboxnetflt.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.6.0/updates/dkms/

vboxpci.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.6.0/updates/dkms/

depmod....

DKMS: install completed.
[ ok ] Stopping VirtualBox kernel modules.
[FAIL] Starting VirtualBox kernel modules[....] modprobe vboxdrv failed. Please use 'dmesg' to find out why ... failed!
 failed!
invoke-rc.d: initscript virtualbox, action "restart" failed.

3.5.0でVirtualBoxを実行するには?

答え1

リンクをくれたWarlockに感謝します。バージョンの不一致があるようです。kernel-sourceパッケージを作成しなかったために発生したようです。代わりに、他のいくつかのバージョンをコンパイルするためにも使用されるgitリポジトリを使用しました。

まず、パッケージlinux-imagelinux-headers (現在実行中のカーネル)を削除しました。

次のステップは完全にきれいなチェックアウトです(ディレクトリにビルドが残っていません)。その後、カーネルをビルドし、パッケージ linux-imagelinux-headersパッケージを作成してlinux-sourceインストールしました。その後、VirtualBoxモジュールが正常に構築されロードされます。

以前にどのバージョンが一致しなかったかはわかりませんが、次の手順ではバージョンの不一致は発生しません。

答え2

このパッケージをインストールしましたかvirtualbox-dkms
通常、カーネルをアップグレードするたびに再インストールする必要があります。これはdkms部分が破損したという信号だと思いますが、再インストールすると効果がありました。新しいカーネル以外のカーネルに再インストールしたことはありませんが、現在実行中のカーネルに対してビルドする必要があるとします。

関連情報