在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操作系统中的任何操作,都不会重置该参数。
什么版本?
VMware Fusion?最新4.11