호스트와 게스트 모두에 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의 최신 버전을 다운로드하세요.http://download.virtualbox.org/virtualbox/
또는 이 명령을 사용하여 자동으로 다운로드하세요.
version=$(wget -qO- http://download.virtualbox.org/virtualbox/LATEST.TXT)&& wget http://download.virtualbox.org/virtualbox/$version/VBoxGuestAdditions_$version.iso
최신 iso를 사용하는 것이 저에게 효과적이었습니다.