从虚拟机启动物理硬盘上的Ubuntu。在物理硬盘上安装了Ubuntu和Windows XP。Vmware安装在XP里。从虚拟机里引导了物理硬盘上的Ubuntu,可以启动,但不能进入X桌面(Gnome)。查看了X11的Log文件,原因很简单,因为硬件不同:物理机的显卡是Nvidia的,虚拟机的显卡是vmware自带的。于是又安装了Vmware Tools,可以驱动了,虚拟机能进行X桌面了。但物理机不能进入X桌面了。于是修改/etc/X11/xorg.conf。增加一个Section,内容变成:
Section "Device"
Identifier "Default Device"
Driver "nvidia"
Option "NoLogo" "True"
EndSection
Section "Device"
Identifier "Vmware Device"
Driver "vmware"
Option "NoLogo" "True"
EndSection
在网上查了一下,可以写两个Device,表示两个显卡呀。但问题就在这里:只有前面一个Device起作用。例如,nvidia在前,则物理机能进入 X,虚拟机不能进入X。如果把vmware那个Section入在前面,则虚拟机可以进入X,物理机不能进入X。
后来想到一个方案:系统启动时检测显卡类型,作出判断。把两个Device Section写在两个不同的xorg.conf中(xorg.conf.nvidia和xorg.conf.vmware)中。写个开机脚本,链接到 /etc/rc2.d/下面。这个脚本通过 lspci判断显卡类型,选择合适的xorg.conf文件。脚本如下:
#!/bin/sh
#
# Set the appropriate xorg.conf and GL links for the speed/stamina # video card switch
#
VIDEO=`/usr/bin/lspci |grep -c nVidia`
if [ "$VIDEO" = 1 ]; then
cp -f /etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf
else
cp -f /etc/X11/xorg.conf.vmware /etc/X11/xorg.conf
fi
本文来源:不详 作者:佚名