VMware and scsi_id

VMware Fusion中测试Cent OS 6中的udev功能时,发现scsi_id命令无法返回设备的SCSI ID。

# fdisk -l /dev/sdb

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table
# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdb

这个问题在Oracle VirtualBox中并不会出现,当然并不是说VirtualBox就比VMware好,作为Mac中的原生app,VMware Fusion确实要比VirtualBox美观,但是在功能上而言,VirtualBox毫不逊色,而且VirtualBox是免费的,所以如果要在自己的台式机或者笔记本中测试虚拟机,仍然强烈推荐使用VirtualBox。

言归正传,如何修改VMware Fusion,让其可以提供正确的设备SCSI ID呢?参考文章是:
The Case of VMware and the missing SCSI ID

方法如下:
1. 在虚拟机关闭以后,进入虚拟机的目录

2. 用文本编辑器修改vmx文件

$ ls *vmx
[ VMplanet ] CentOS 6.0.vmx
$ vi "[ VMplanet ] CentOS 6.0.vmx"

3. 在vmx文件中任意位置(通常在最后)添加如下行:

disk.EnableUUID = "TRUE"

4. 重新启动虚拟机,此时可以正确获取SCSI ID

#/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
36000c29577b5db74013db535e0155e01

注意:在手工修改完vmx文件以后,如果再进行任何虚拟机的设置,比如添加磁盘,修改网卡类型或者其它的操作,disk.EnableUUID参数又会重置为FALSE,所以每次进行虚拟机设置以后,都需要手工再次修改该参数。当然重启虚拟机,或者虚拟机内Guest操作系统中的任何操作,都不会重置该参数。

Network setting in VMWare

虚拟技术日渐盛行,在客户处已经可以看到不少真正的产品环境完全得运行在虚拟机中了。而VMWare无疑是虚拟化厂商中的先驱者和领先者(惭愧的是我到今天才知道原来VMWare在2004年的时候就已经被EMC收购了)。

个人的笔记本上安装了VMWare,用于在Windows运行Ubuntu Desktop 810,在VMware中如何设置网络是每个新手都关心的。这篇文章介绍在VMWare中通过Brideged或者NAT两种方式来设置网络。这两种方法都可以实现Host机器(Windows)上网,Guest机器(Ubuntu)就能够上网。

1. 使用NAT方式

在安装完VMWare Workstation(需要注册)或者VMWare Player(免费)以后,Windows主机上会生成两块虚拟网卡。

From Drop Box

其中“Ethernet adapter VMware Network Adapter VMnet8”就是NAT方式的交换机。“Ethernet adapter VMware Network Adapter VMnet1”是host-only方式的交换机,这里不讨论。

每个人安装完毕以后,“Ethernet adapter VMware Network Adapter VMnet8”这块网卡的IP就已经生成了,这是自动生成的,每次都可能不一样,所以需要在安装完VMWare以后查看一下这个IP,在我的机器上是192.168.229.1。所以要在Ubuntu中设置的网卡IP也必须位于192.168.229.x网段,同时Gateway地址是192.168.229.2,这是规定好的。

在VMWare的设置中将网卡选择为NAT方式,然后打开虚拟机。

无论你的host机器是使用无线还是有线网卡上网的,在Ubuntu中均选择配置有线网卡。按照下图,将IP设置在192.168.229.x网段,Gateway和DNS均是192.168.229.2。

From Drop Box

之后禁用网络再启用网络,Guest机器就可以上网了。

使用NAT方式的好处在于:
1) 无需配置VMWare中需要映射Host机器的哪块网卡,因为使用到的只是VMnet8这块虚拟的网卡而已。这对于只下载了VMWare Player的用户来说,是最简单的选择。
2) 因为Guest机器是固定IP,因此对于在Host机器中访问Guest机器提供了方便,在我的机器上,以后无论Host主机的IP怎么变化,只需要始终用192.168.229.27这个IP就可以访问Guest机器了。

2. 使用Brideged方式

桥接的方式会使用VMnet0这块虚拟网卡,但是这块网卡并不会出现在Host机器的ipconfig命令中,要求在VMWare中配置。Edit -> Virtual Network Editor -> Host Virtual Network Mapping,在这里将VMnet0网卡映射到Host机器上网正在使用的网卡上,在我的机器里是映射到WiFi网卡上了。

From Drop Box

配置完上面这步,在VMWare的设置中将网卡选择为Brideged方式,然后打开虚拟机。

无论你的Host机器是使用无线还是有线网卡上网的,在Ubuntu中还是选择配置有线网卡,但是跟NAT方式不同的是,需要配置成跟Host机器的IP一样的网段,而不是跟VMnet8一样的网段,比如参看我的机器,就应该配置成192.168.1.x,而不是192.168.229.x。

这时候Guest机器就仿佛一台完全独立的机器,和Host机器一样,如果在你的网络中DHCP服务器,那么Guest机器也会自动获取到IP地址,除了Host之外,局域网中的其他机器也可以看到这台Guest机器。

Brideged方式的缺点:
当你的Host机器使用无线网卡上网,而又要求通过Brideged方式来让Guest机器也上网的话,通常VMWare Player无法满足你的要求。因为在Player中无法设置VMnet0映射到哪块网卡上,通常安装VMWare Player的时候,就被自动映射到Host机器的有线网卡上了。所以需要安装VMWare Workstation,然后像上图那样修改VMnet0的映射。

总结:
如果NAT方式能够满足你的需求,那么使用NAT方式配置VMWare的网络吧,这是最简单的方式。

试用Ubuntu

忘了是什么时候最早听到Ubuntu的,但是引起自己的注意是因为新闻说Google要发布自己的操作系统,当然后面Google又否认,但是Google内部员工使用的Goobuntu正是基于Ubuntu的一个特别版本这倒是确切的事情,这才萌发自己玩一下的想法,毕竟Google看上的东西总不会太赖。

下载安装盘,找一台机器重新安装,对我来说已经是没有新鲜感的事情,曾经有段时间狂装各个版本的Linux(包括Redhat, Suse, Debian, Gentoo还有一堆有名无名的),现在想到安装就有点儿犯恶心。正好VMware宣布发布free的VMware Server,并且VMTN中也有做好的Ubuntu5.10虚拟机可以下载。干脆就直接用虚拟机来测试一下好了,后来又是由于尝鲜的心理,并没有下载VMware Server(因为以前用Crack过的VMware Station好久了)而是转而下载了VMware Player,这是最轻量级的VMware产品,不可以用来做全新的安装,只能用来打开别人做好的虚拟机,但对于我这次正好是再合适不过的。

总共几百M的下载量,倒也用不了太长时间,很快VMware Player + Ubuntu 5.10 “The Breezy Badger”优雅的启动界面就展现在我的面前。

1。Ubuntu是一个古非洲词汇,大致是“乐于分享”的含义。看一下官方站点对这个词的解释。

“Ubuntu” is an ancient African word, meaning “humanity to others”. Ubuntu also means “I am what I am because of who we all are”. The Ubuntu Linux distribution brings the spirit of Ubuntu to the software world.

2。Ubuntu的默认GUI是Gnome,并且也只有Gnome,如果想用KDE,那么可以去安装Kubuntu。所谓Kubuntu就是在Ubuntu中卸载Gnome安装KDE而已。

3。提一个比较特殊的地方,就是Ubuntu默认屏蔽了root用户,而大力倡导使用sudo来取代su。这样我们可以直接用自己的用户进行各种Adminstrtor的工作,比如设定网络,配置硬件等等以前必须有root密码才可以进行的工作,现在只需要提供用户自己的密码就OK了。所以对于从VMTN中下载回来的虚拟机你不需要知道root密码,只要知道自己默认使用ubuntu用户登录系统,而自己的密码也是ubuntu就可以了。Ubuntu文档站点有专门的文章介绍这个改动的优缺点和使用方法。

4。默认浏览器是FireFox1.07,如果不准备中文输入,只用来浏览中文网页,效果也算差强人意。

5。仍然是Linux,那么只要有其它Linux发行版的使用经验,对于Ubuntu都不会感到陌生。目前为止除了界面未发现更有趣的地方,说起界面,另外还有一个Edubuntu版本,非常活泼的GUI,定位是“给年轻人用的”Linux。

Ubuntu基于Debian,正好最近看到推广Debian的工作,遂决定自己网站上加一个SpreadDebian的logo。