คุณกำลังใช้โฟลเดอร์แชร์ดังนั้นคุณต้องติดตั้งVirtualBox Guest Additionsภายในเครื่องเสมือนเพื่อรองรับคุณสมบัตินั้น
คนจรจัด
หากคุณใช้Vagrant (OS X :)brew cask install vagrant
ให้เรียกใช้:
vagrant plugin install vagrant-vbguest
vagrant vbguest
ในกรณีที่มันล้มเหลวตรวจสอบบันทึกเช่น
vagrant ssh -c "cat /var/log/vboxadd-install.log"
บางทีคุณอาจจะหายไปจากไฟล์ส่วนหัวเคอร์เนล
VM
ภายใน VM คุณควรติดตั้ง Guest Additions, ส่วนหัวเคอร์เนลและเริ่มบริการและตรวจสอบอีกครั้งว่าส่วนขยายเคอร์เนลกำลังทำงานอยู่หรือไม่
ขึ้นอยู่กับระบบปฏิบัติการของแขกดังนั้นนี่คือขั้นตอนสั้น ๆ :
ติดตั้งเคอร์เนลประกอบด้วยส่วนหัว (ต้องการโดย VBoxLinuxAdditions)
- RHEL:
sudo apt-get update && sudo apt-get install kernel-devel
- CentOS:
sudo yum update && sudo yum -y install kernel-headers kernel-devel
ติดตั้ง Guest Additions (ขึ้นอยู่กับระบบปฏิบัติการ)
อูบุนตู: sudo apt-get -y install dkms build-essential linux-headers-$(uname -r) virtualbox-guest-additions-iso
aptitude search virtualbox
หากคุณไม่สามารถหาได้ตรวจสอบโดย
เดเบียน :sudo apt-get -y install build-essential module-assistant virtualbox-ose-guest-utils
dpkg -l | grep virtualbox
หากคุณไม่สามารถหาได้ตรวจสอบโดย
ด้วยตนเองโดยการดาวน์โหลดไฟล์ isoภายใน VM (เช่นwget
) และติดตั้งเช่น
wget http://download.virtualbox.org/virtualbox/5.0.16/VBoxGuestAdditions_5.0.16.iso -P /tmp
sudo mount -o loop /tmp/VBoxGuestAdditions_5.0.16.iso /mnt
sudo sh -x /mnt/VBoxLinuxAdditions.run # --keep
การแก้ปัญหาพิเศษ: cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run
ตรวจสอบอีกครั้งว่าส่วนขยายเคอร์เนลขึ้นและทำงาน:
เริ่ม / เริ่มบริการ:
- ด้วยตนเอง:
sudo /opt/VBoxGuestAdditions*/init/vboxadd setup
(เพิ่มsudo sh -x
ในการดีบัก)
- Debian:
sudo /etc/init.d/vboxadd-service start
- Fedora:
sudo /etc/init.d/vboxdrv setup
- CentOS:
sudo service VBoxService start
การสร้างโมดุลเพิ่มเติมสำหรับบุคคลทั่วไป
หากด้านบนไม่ทำงานนี่คือขั้นตอนที่ซับซ้อนกว่าในการแก้ไข สิ่งนี้จะถือว่าคุณได้ติดตั้ง VBoxGuestAdditions แล้ว (ดังที่แสดงด้านบน)
สาเหตุที่พบบ่อยที่สุดว่าทำไมการติดตั้งโฟลเดอร์ที่ใช้ร่วมกันไม่ทำงานอาจเกี่ยวข้องกับการสร้างโมดูล Guest Additions ซึ่งล้มเหลว หาก/var/log/vboxadd-install.log
คุณมีข้อผิดพลาดดังต่อไปนี้:
ไม่พบส่วนหัวสำหรับเคอร์เนลที่รันอยู่ในปัจจุบัน
หมายความว่าคุณไม่ได้ติดตั้งซอร์สเคอร์เนลหรือไม่พบ
หากคุณติดตั้งแล้วตามคำแนะนำข้างต้นให้รันคำสั่งนี้:
$ sudo sh -x /opt/VBoxGuestAdditions-5.0.16/init/vboxadd setup 2>&1 | grep KERN
+ KERN_VER=2.6.32-573.18.1.el6.x86_64
+ KERN_DIR=/lib/modules/2.6.32-573.18.1.el6.x86_64/build
ดังนั้นโดยพื้นฐานแล้วvboxadd
สคริปต์คาดว่าแหล่งเคอร์เนลของคุณจะพร้อมใช้งานที่ dir ต่อไปนี้:
ls -la /lib/modules/$(uname -r)/build
ตรวจสอบว่าเคอร์เนล dir มีอยู่ (การเชื่อมโยงสัญลักษณ์ชี้ไปที่โฟลเดอร์ที่มีอยู่) หากไม่ใช่โปรดติดตั้งลงในโฟลเดอร์ด้านขวา (เช่นใน/usr/src/kernels
)
ดังนั้นvboxadd
สคริปต์สามารถป้อนไดเรกทอรีแหล่งเคอร์เนลของคุณและเรียกใช้make kernelrelease
รับค่าและเปรียบเทียบกับรุ่นเคอร์เนลปัจจุบันของคุณ
นี่คือตรรกะ:
KERN_VER=`uname -r`
KERN_DIR="/lib/modules/$KERN_VER/build"
if [ -d "$KERN_DIR" ]; then
KERN_REL=`make -sC $KERN_DIR --no-print-directory kernelrelease 2>/dev/null || true`
if [ -z "$KERN_REL" -o "x$KERN_REL" = "x$KERN_VER" ]; then
return 0
fi
fi
หากรุ่นเคอร์เนลไม่ตรงกับแหล่งที่มาคุณอาจต้องอัพเกรดเคอร์เนล Linux (ในกรณีที่แหล่งใหม่กว่าเคอร์เนลของคุณ)
CentOS
ลอง:
vagrant plugin install vagrant-vbguest vagrant vbgues
หากไม่สามารถใช้งานได้ให้ลองทำตามขั้นตอนด้วยตนเองสำหรับ CentOS:
$ sudo yum update
$ sudo yum install kernel-$(uname -r) kernel-devel kernel-headers # or: reinstall
$ rpm -qf /lib/modules/$(uname -r)/build
kernel-2.6.32-573.18.1.el6.x86_64
$ ls -la /lib/modules/$(uname -r)/build
$ sudo reboot # and re-login
$ sudo ln -sv /usr/src/kernels/$(uname -r) /lib/modules/$(uname -r)/build
$ sudo /opt/VBoxGuestAdditions-*/init/vboxadd setup