ホストとゲストの両方に 13.10 を使用しています。ホストにはゲスト追加 ISO があります。ゲスト追加をインストール中に、共有ファイル モジュールをコンパイルしようとするとエラーが発生しました。関連するログ ファイル /var/log/vboxadd-install.log には、次の内容が表示されます。
gcc -Wp,-MD,/tmp/vbox.0/.dirops.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/include -I/usr/src/linux-he
aders-3.11.0-12-generic/arch/x86/include -Iarch/x86/include/generated -Iinclude -I/usr/src/linux-headers-3.11.0-12-gene
ric/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/usr/src/linux-headers-3.11.0-12-generic/include/uapi -Iin
clude/generated/uapi -include /usr/src/linux-headers-3.11.0-12-generic/include/linux/kconfig.h -Iubuntu/include -D__KER
NEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declar
ation -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mno-sse -mpreferred-stack-boundary=3 -mtune=generic
-mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -fstack-protector -DCONFIG_X86_X32_ABI -DCONF
IG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_AVX=1 -DCONFIG_A
S_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -Wframe
-larger-than=1024 -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg -mfentry -DCC_USI
NG_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -fsho
rt-wchar -include /tmp/vbox.0/include/VBox/VBoxGuestMangling.h -I/lib/modules/3.11.0-12-generic/build/include -I/tmp/vbo
x.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -I/tmp/vbox.0/vboxsf/ -I/tmp/vbox.0/vboxsf/include -I/tmp/vbox.0/vb
oxsf/r0drv/linux -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DVBOX_WITH_HGCM -DIN_MODU
LE -DIN_GUEST_R0 -DRT_NO_EXPORT_SYMBOL -DRT_ARCH_AMD64 -DVBOX_WITH_64_BITS_GUESTS -DMODULE -D"KBUILD_STR(s)=#s" -D"KBU
ILD_BASENAME=KBUILD_STR(dirops)" -D"KBUILD_MODNAME=KBUILD_STR(vboxsf)" -c -o /tmp/vbox.0/.tmp_dirops.o /tmp/vbox.0/diro
ps.c
/tmp/vbox.0/dirops.c:292:5: error: unknown field ‘readdir’ specified in initializer
.readdir = sf_dir_read,
^
これは、https://forums.virtualbox.org/viewtopic.php?f=10&t=56954他に同じ問題に遭遇した人はいますか? また、それを回避する簡単な解決策はありますか?
答え1
私も同じ問題を抱えていました。私の場合、ホストは WindowsXP、ゲストは Ubuntu 13.10 です。ゲストを 13.04 から 13.10 にアップグレードし、同時に VirtualBox を 4.2 から 4.3 (ホスト) にアップグレードしました。
ゲスト拡張機能をコンパイルしようとしていたのですが
/etc/init.d/vboxadd setup
成功しませんでした。
次に、新しい Virtualbox ISO から試しました:
sudo /media/x/VBOXADDITIONS_4.3.2_90405/VBoxLinuxAdditions.run
それは動作します :-)
ゲスト追加をどのようにコンパイルしようとしたかはわかりませんが、ISO から試してみると役立つかもしれません。
答え2
同じ問題が、ソフトウェアセンターで入手可能なVirtualBox 4.2.16を搭載したSaucy 13.10で発生しました。まずUbuntuの古いバージョンを削除し、次に4.3.6を直接ダウンロードしてインストールすることで解決しました。https://www.virtualbox.org/wiki/Linux_Downloads。
答え3
最新バージョンのVirtualBox isoをここからダウンロードしてください仮想ボックスのダウンロード
またはこのコマンドで自動的にダウンロードします
version=$(wget -qO- http://download.virtualbox.org/virtualbox/LATEST.TXT)&& wget http://download.virtualbox.org/virtualbox/$version/VBoxGuestAdditions_$version.iso
最新の ISO を使用するとうまくいきました。