VMware CentOS 7 安裝 VMware Tools(修復不能與主機共享文件的錯誤) 與 控制檯分辨率設置

在 VMware 中最小化安裝完 CentOS 7, 正常安裝 VMware Tools, 發現在設置主機共享目錄的時候提示”無法更新運行時文件夾共享狀態:在客戶機操作系統內裝載共享文件夾文件系統時出錯” , 找了很久終於搞定.

系統環境

VMware Workstation Pro 12.5.2
CentOS 7.3 minimal

修復 bug 安裝 VMware Tools

如按菜單上的 “安裝 VMware Tools” 安裝到最後會看到幾處錯誤提示, 都是有關 “wait_on_bit” 的, 最終結果就是 vmhgfs 組件編譯出錯, 不能共享文件夾.

1

2

warning: passing argument 3 of wait_on_bit’ ...

error: too many arguments to function wait_on_bit’ ...

要解決這個問題需要修改 hgfs 相關的源碼.

啓動虛擬機, 以 root 用戶登錄

安裝必備軟件

1

yum install perl gcc kernel-headers kernel-devel

先安裝 open-vm-tools

1

2

#此 vm tools 提供除了與主機文件共享外的其他功能

yum install open-vm-tools

創建光盤掛載點

1

mkdir /mnt/cdrom

點擊 vm 菜單上的 虛擬機->安裝 VMware Tools 項, 將 VMware Tools 光盤載入光驅.

掛載光盤到剛創建的目錄

1

mount /dev/cdrom /mnt/cdrom

進入掛載後的目錄, 找到 VMwareTools-xxxx.tar.gz 文件, 將它解壓到其他目錄, 我這裏解壓到 /root 下

1

2

cd /mnt/cdrom

tar zxf VM*.gz -C /root

修改 hgfs 源碼

1

2

3

4

5

6

7

#進入源碼目錄

cd /root/vmware-tools-distrib/lib/modules/source

#解壓 hgfs 源碼

tar xf vmhgfs.tar

cd vmhgfs-only

#編輯 page.c 文件, 如果沒有安裝 nano 用 yum 安裝

nano page.c

按 Ctrl + w 打開搜索框, 輸入以下內容, 按回車搜索.

1

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)

多次 Ctrl + w 查找, 直到找到包含以下內容的代碼

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

int

HgfsWbRequestWait(HgfsWbPage *req)

{

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)

    return wait_on_bit_io(&req->wb_flags,

                          PG_BUSY,

                          TASK_UNINTERRUPTIBLE);

#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)

    return wait_on_bit(&req->wb_flags,

                       PG_BUSY,

#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)

                       HgfsWbRequestWaitUninterruptible,

#endif

                       TASK_UNINTERRUPTIBLE);

#else

    wait_event(req->wb_queue,

               !test_bit(PG_BUSY,&req->wb_flags));

    return 0;

#endif

}

將 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) 中的 3, 19, 0 替換爲 3, 10, 0

1

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)

保存退出

1

2

3

cd ..

#將改好的代碼重新打包

tar cf vmhgfs.tar vmhgfs-only

開始安裝

1

2

cd /root/vmware*

./vmware-install.pl

一路回車,直到安裝完畢.

重啓系統

1

reboot

設置共享文件夾, 之後再次重啓系統, 共享目錄就生效了

1

2

reboot

ls /mnt/hgfs

 

 

修改控制檯分辨率

剛安裝的系統 分辨率非常小, 不方便操作, 這裏修改分辨率爲 1152 * 864 32位色.

CentOS 7 使用 grub2 啓動, 修改分辨率的參數放在 /etc/default/grub 文件中

1

nano /etc/default/grub

在 GRUB_CMDLINE_LINUX=”xxxx” 項最後插入 vga=0x342 (分辨率爲 1152*864*32)

1

GRUB_CMDLINE_LINUX="xxxx vga=0x342"

保存退出

令配置生效

1

grub2-mkconfig -o /root/grub2/grub.cfg

重啓系統就能看到分辨率變化了.

1

reboot

如果想查看所有支持的分辨率, 可將0x342改爲ask, 當系統啓動時會列出所有分辨率供選擇.

記住要改的分辨率對應的三位數編碼再按上面的方法改 /etc/default/grub 就可以了.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章