2013年1月3日 星期四

VBox 的 Guest Additions 4.1.22 成功升級至 4.1.24

本篇為「安裝 Fedora 17 x86_64 的虛擬機器中,將 VirtualBox 的 Guest Additions 從 4.1.22 升級到 4.1.24 失敗」後,再修正成功升級的記錄。
補記:如果,讀者現在正想從 Guest Additions 的 4.1.22 升級至 4.1.24,請參考另一篇較精簡的必勝秘技。(註:就是懶人招

在前文 “VirtualBox「安裝 Guest Additions 失敗」後的回復” 一文中只提到回復的步驟,因為沒時間找解法,只好先將 Guest Additions 回到舊版。今天有點小空閒就再試一下,發現『時間會解決問題!』這句話是錯的,問題仍在,明顯地時間並沒有解決它。(廢話!)
    查看一下錯誤的情形,VirtualBox 的 Guest Additions 是安裝在 /opt/ 這個目錄下,用 ls 列出這個目錄出來查看(接下來的操作皆以 root 身份下命令
[root@Core-i7 ~]# ls /opt/
google  VBoxGuestAdditions-4.1.22  VBoxGuestAdditions-4.1.24
發現該目錄同時存在兩個版本的 Guest Additions,
再查看 /usr/lib64/ 這個目錄,
[root@Core-i7 ~]# ls /usr/lib64/
  . . . . . .
drwxr-xr-x.  4 root root     4096 12月  3 10:44 tracker-0.14
drwxr-xr-x.  3 root root     4096 12月 13 18:27 udev
lrwxrwxrwx.  1 root root       53 10月 29 12:38 VBoxGuestAdditions -> /opt/VBoxGuestAdditions-4.1.22/lib/VBoxGuestAdditions
lrwxrwxrwx.  1 root root       53 12月 22 18:40 VBoxOGLarrayspu.so -> /opt/VBoxGuestAdditions-4.1.24/lib/VBoxOGLarrayspu.so
lrwxrwxrwx.  1 root root       51 12月 22 18:40 VBoxOGLcrutil.so -> /opt/VBoxGuestAdditions-4.1.24/lib/VBoxOGLcrutil.so
lrwxrwxrwx.  1 root root       53 12月 22 18:40 VBoxOGLerrorspu.so -> /opt/VBoxGuestAdditions-4.1.24/lib/VBoxOGLerrorspu.so
lrwxrwxrwx.  1 root root       56 12月 22 18:40 VBoxOGLfeedbackspu.so -> /opt/VBoxGuestAdditions-4.1.24/lib/VBoxOGLfeedbackspu.so
lrwxrwxrwx.  1 root root       52 12月 22 18:40 VBoxOGLpackspu.so -> /opt/VBoxGuestAdditions-4.1.24/lib/VBoxOGLpackspu.so
lrwxrwxrwx.  1 root root       59 12月 22 18:40 VBoxOGLpassthroughspu.so -> /opt/VBoxGuestAdditions-4.1.24/lib/VBoxOGLpassthroughspu.so
lrwxrwxrwx.  1 root root       45 12月 22 18:40 VBoxOGL.so -> /opt/VBoxGuestAdditions-4.1.24/lib/VBoxOGL.so
drwxr-xr-x.  2 root root     4096  9月 18 18:53 vdpau
drwxr-xr-x.  2 root root     4096 11月 20 10:33 vte-2.90
  . . . . . . 
和 /usr/share/ 這個目錄,
[root@Core-i7 ~]# ls /usr/share/
  . . . . . .
drwxr-xr-x.   2 root root  4096  5月 30  2012 usermode
drwxr-xr-x.   3 root root  4096  5月 30  2012 vala
lrwxrwxrwx.   1 root root    55 10月 29 12:38 VBoxGuestAdditions -> /opt/VBoxGuestAdditions-4.1.22/share/VBoxGuestAdditions
drwxr-xr-x.   4 root root  4096 10月 15 17:57 vim
drwxr-xr-x.   2 root root  4096  6月  4  2012 vinagre
  . . . . . . 
可以看到, /usr/lib64/VBoxGuestAdditions 和 /usr/share/VBoxGuestAdditons 這兩個目錄連結,仍然連結到舊版(4.1.22)的 Guest Additions。
    想不到問題是這麼簡單,害筆者委屈用了這麼多天的舊版 Guest Additons。話不多說,知道問題所在,一切就好辦了。三個步驟解決:

一、移除所有的 Guest Additions

先將『未完整移除』的舊版、『已安裝但不能正確執行』的新版 Guest Addition 都刪除,要用 Guest Additions 目錄內的『反安裝』程式。
[root@Core-i7 ~]# /opt/VBoxGuestAdditions-4.1.22/uninstall.sh
-bash: /opt/VBoxGuestAdditions-4.1.22/uninstall.sh: 沒有此一檔案或目錄
[root@Core-i7 ~]# /opt/VBoxGuestAdditions-4.1.24/uninstall.sh
上例中, 4.1.22 版因移除未完全,但 uninstall.sh 已被移除,所以找不到檔案。第二個命令會將『不能正確執行的 4.1.24 版』移除。

二、刪除『錯誤的目錄連結』和『未完整移除的舊版』

上一步驟的反安裝並未刪除錯誤的目錄連結,/usr/lib64/VBoxGuestAdditions 和 /usr/share/VBoxGuestAdditons 仍連結到舊版(4.1.22),還有未完整移除的 4.1.22 版,先將它們刪除
[root@localhost ~]# rm /usr/lib64/VBoxGuestAdditions
rm:是否移除符號連結‘/usr/lib64/VBoxGuestAdditions’? y
[root@localhost ~]# rm /usr/share/VBoxGuestAdditions
rm:是否移除符號連結‘/usr/share/VBoxGuestAdditions’? y
[root@localhost ~]# rm -rf /opt/VBoxGuestAdditions-4.1.22
命令 rm 是 Linux 裏刪除命令,在「終端機」中下此命令可刪除檔案、目錄、連結等,也可配合一些參數微調命令的執行功能。第三個命令中的『 -rf 』是 rm 的參數,『 r 』是將所以子目錄也都一併刪除,而『 f 』則使其在刪除每個子目錄時,不會一一詢問、確認。

三、重新安裝 新版的 Guest Additions

完成上述兩個步驟後,虛擬機中 Guest Additions 的新舊版應該都已經移除。接著,再安裝新版的 Guest Additons 就可以了。此時,依『Guest Additions 安裝光碟』的情況,讀者有兩個選擇:
安裝光碟安裝步驟
已退出再放入安裝光碟,即可自動啟動安裝程序
仍掛載中在「終端機」中下『安裝命令』
上表中的安裝命令為

[root@Core-i7 ~]# /run/media/SiB/VBOXADDITIONS_4.1.24_82872/VBoxLinuxAdditions.run
至於遇程畫面就省略了,待安裝完後,重新開機。

注意:只『登出』、再『登內』似乎不能讓安裝生效,請重新開機。

已測試版本:

  • Host   OS (主機作業系統): Fedora 14 x86_64
  • Guest OS (客戶作業系統): Fedora 17 x86_64
  • VirutalBox: 4.1.22 → 4.1.24

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)