เพื่อให้เครื่องเสมือน (guest) ที่ถูกติดตั้งใน VirtualBox ทำงานได้ดีมากขึ้น แนะนำให้ติดตั้ง Guest Additions บนระบบปฏิบัติการที่ลงบนเครื่องเสมือนด้วย ไม่ว่าจะเป็น Linux, Windows
โปรแกรม VirtualBox ได้เตรียมชุดโปรแกรม Guest Additions ไว้เป็น CD image เพื่อให้เรียกใช้ได้ เหมือนกับการเรียกใช้แผ่น CD หรือ DVD บนเครื่องเสมือน
ในที่นี้จะแสดงวิธีการติดตั้ง Guest Additions บน CentOS 7 ที่ติดตั้งบนเครื่องเสมือน
หมายเหตุ คำสั่งทั้งหมดในที่นี้รันด้วย root หรือ sudo บนเครื่องเสมือน (guest)
ติดตั้ง gcc, kernel-devel
ก่อนอื่น แนะนำให้รันคำสั่ง yum update เพื่อปรับปรุงแพ็คเกจซอฟต์แวร์ที่ติดตั้งในเครื่องเสมือนให้เป็นเวอร์ชันล่าสุด
[root@centos7 ~]# yum update
การติดตั้ง Guest Additions บนลีนุกซ์ จำเป็นต้องใช้ GNU C compiler และ Kernel header ในการคอมไพล์ตัวโปรแกรม
บน CentOS 7 ให้ใช้คำสั่ง yum ติดตั้งแพ็คเกจ gcc และ kernel-devel เพื่อใช้คอมไพล์ VirtualBox Guest Additions
[root@centos7 ~]# yum install gcc kernel-devel
คอมไพล์ Guest Additions
ในโปรแกรม VirtualBox คลิกเมนู Devices แล้วคลิกที่ Insert Guest Additions CD image
บนเครื่องเสมือนใช้คำสั่ง mount เพื่อ mount Guest Additions CD image เข้ากับไดเรกทอรี /media
[root@centos7 ~]# mount /dev/cdrom /media mount: /dev/sr0 is write-protected, mounting read-only
ตัวอย่างไฟล์ที่อยู่ใน Guest Additions CD image
[root@centos7 ~]# cd /media/ [root@centos7 media]# ls -l total 50447 dr-xr-xr-x. 2 root root 2048 Apr 28 20:28 32Bit dr-xr-xr-x. 2 root root 2048 Apr 28 20:28 64Bit -r-xr-xr-x. 1 root root 647 Aug 20 2015 AUTORUN.INF -r-xr-xr-x. 1 root root 6957 Apr 28 21:22 autorun.sh dr-xr-xr-x. 2 root root 2048 Apr 28 20:28 cert dr-xr-xr-x. 2 root root 2048 Apr 28 20:28 OS2 -r-xr-xr-x. 1 root root 5567 Apr 28 21:22 runasroot.sh -r-xr-xr-x. 1 root root 7996878 Apr 28 21:22 VBoxLinuxAdditions.run -r-xr-xr-x. 1 root root 17348608 Apr 28 22:23 VBoxSolarisAdditions.pkg -r-xr-xr-x. 1 root root 16170520 Apr 28 21:27 VBoxWindowsAdditions-amd64.exe -r-xr-xr-x. 1 root root 268640 Apr 28 21:21 VBoxWindowsAdditions.exe -r-xr-xr-x. 1 root root 9849688 Apr 28 21:23 VBoxWindowsAdditions-x86.exe
รันไฟล์ VBoxLinuxAdditions.run
[root@centos7 media]# ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.0.20 Guest Additions for Linux............
VirtualBox Guest Additions installer
Copying additional installer modules ...
./install.sh: line 344: bzip2: command not found
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
./install.sh: line 357: bzip2: command not found
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
ถ้าพบข้อผิดพลาด (error) แบบนี้ ในกรณีที่คุณเลือกติดตั้ง CentOS 7 แบบขั้นต่ำ (minimal) ต้องติดตั้ง แพ็คเกจ bzip2 เพิ่มเติม
[root@centos7 media]# yum install bzip2
รันไฟล์ VBoxLinuxAdditions.run อีกครั้ง
[root@centos7 media]# ./VBoxLinuxAdditions.run Verifying archive integrity... All good. Uncompressing VirtualBox 5.0.20 Guest Additions for Linux............ VirtualBox Guest Additions installer You appear to have a version of the VBoxGuestAdditions software on your system which was installed from a different source or using a different type of installer. If you installed it from a package from your Linux distribution or if it is a default part of the system then we strongly recommend that you cancel this installation and remove it properly before installing this version. If this is simply an older or a damaged installation you may safely proceed. Do you wish to continue anyway? [yes or no] yes Removing existing VirtualBox non-DKMS kernel modules[ OK ] grep: /opt/VBoxGuestAdditions-*/init/*: No such file or directory Copying additional installer modules ... Installing additional modules ... Removing existing VirtualBox non-DKMS kernel modules[ OK ] Building the VirtualBox Guest Additions kernel modules Building the main Guest Additions module[ OK ] Building the shared folder support module[ OK ] Building the graphics driver module[ OK ] Doing non-kernel setup of the Guest Additions[ OK ] Starting the VirtualBox Guest Additions Installing the Window System drivers Could not find the X.Org or XFree86 Window System, skipping. [ OK ]
ข้อความด้านบนแสดงผลการคอมไฟล์ (building) ชุดโปรแกรม VirtualBox Guest Additions
รีสตาร์ตเครื่อง หลังการติดตั้ง
[root@centos7 media]# shutdown -r now
หลังการบู๊ตเครื่อง ลองใช้คำสั่ง ps เพื่อดูโปรเซสที่รัน
[root@centos7 ~]# ps -ef | grep -i vbox root 505 2 0 10:21 ? 00:00:00 [iprt-VBoxWQueue] root 747 1 0 10:21 ? 00:00:00 /usr/sbin/VBoxService --pidfile /var/lock/subsys/vboxadd-service
ใช้คำสั่ง lsmod เพื่อดูโมดูลที่โหลด เกี่ยวกับ vbox
[root@centos7 ~]# lsmod | grep -i vbox vboxsf 39741 0 vboxguest 297222 2 vboxsf
ยกเลิกการติดตั้ง gcc, kernel-devel (optional)
หลังการติดตั้ง อาจยกเลิกการติดตั้งแพ็คเกจ GNU C compiler และ kernel development เพื่อประหยัดพื้นที่ รวมทั้งเพิ่มความปลอดภัยให้กับระบบ เช่น ป้องกันการคอมไพล์โปรแกรมบนเครื่อง
ใช้คำสั่ง yum history เพื่อดูประวัติการใช้ yum
[root@centos7 ~]# yum history Loaded plugins: fastestmirror ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 4 | admin <admin> | 2016-05-06 10:17 | Install | 1 3 | admin <admin> | 2016-05-06 09:48 | Install | 35 2 | admin <admin> | 2016-05-06 09:41 | I, U | 70 1 | System <unset> | 2016-05-06 09:39 | Install | 285 history list
ระบุออปชัน list ตามด้วย ID เพื่อดูว่า เราใช้คำสั่ง yum ทำอะไร
เช่น ID 4 เราใช้ yum เพื่อติดตั้งแพ็คเกจ bzip2
[root@centos7 ~]# yum history list 4 Loaded plugins: fastestmirror ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 4 | install bzip2 | 2016-05-06 10:17 | Install | 1 history list
bzip2 จำเป็นต้องใช้ ไม่แนะนำให้ยกเลิกการติดตั้ง
ส่วน ID 3 เราใช้ yum เพื่อติดตั้งแพ็คเกจ gcc และ kernel-devel
[root@centos7 ~]# yum history list 3 Loaded plugins: fastestmirror ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 3 | install gcc kernel-devel | 2016-05-06 09:48 | Install | 35 history list
ใช้คำสั่ง yum history undo 3 เพื่อยกเลิกการติดตั้งแพ็คเกจ gcc และ kernel-devel รวมทั้งแพ็คเกจที่เกี่ยวข้องที่ถูกติดตั้งมาด้วย (dependencies)
[root@centos7 ~]# yum history undo 3