在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操作系统中的任何操作,都不会重置该参数。
Related posts:
- Network setting in VMWare
- OpenSolaris
- How to resolve ORA-15025 when creating ASM diskgroup on Solaris