OSX下vmware fusion 跟windows下vmware workstation 差不多,都是利用vm工具生成一个物理硬盘/USB的vmdk映射文件,然后加载这个vmdk启动即可.
首先查看磁盘
bash-3.2$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage 499.4 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Macintosh HD *499.1 GB disk1
Logical Volume on disk0s2
10883316-E3DC-41E3-80B9-193C97F65019
Unencrypted
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *842.6 MB disk2
1: Apple_HFS VMware Fusion 842.5 MB disk2s1
/dev/disk3
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *880.0 MB disk3
1: Apple_HFS VMware Fusion 880.0 MB disk3s1
/dev/disk4
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *16.0 GB disk4
1: Linux 16.0 GB disk4s1
这里使用的是 /dev/disk4 16G U盘.
创建vmdk映射文件, 这里采用的是ide模式
/Applications/VMware\ Fusion.app/Contents/Library/vmware-rawdiskCreator create /dev/disk4 fullDevice usb-hdd ide
将会在当前目录下生成一个usb-hdd.vmdk.
重新创建一个新的VM,删除掉所有硬盘及CDROM,将usb-hdd.vmdk移动到当前VM目录,然后手动修改 vmx 配置文件,加入以下两行
ide1:0.present="TRUE"
ide1:0.fileName="usb-hdd.vmdk"
重新启动VM即可从U盘启动.
以下是我的VM 配置.
.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "11"
scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic"
sata0.present = "TRUE"
memsize = "1024"
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.addressType = "generated"
ethernet0.linkStatePropagation.enable = "TRUE"
usb.present = "TRUE"
ehci.present = "TRUE"
ehci.pciSlotNumber = "35"
sound.present = "TRUE"
sound.fileName = "-1"
sound.autodetect = "TRUE"
serial0.present = "TRUE"
serial0.fileType = "thinprint"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "TRUE"
hpet0.present = "TRUE"
usb.vbluetooth.startConnected = "TRUE"
tools.syncTime = "TRUE"
displayName = "USB"
guestOS = "rhel5"
nvram = "USB.nvram"
virtualHW.productCompatibility = "hosted"
tools.upgrade.policy = "upgradeAtPowerCycle"
powerType.powerOff = "soft"
powerType.powerOn = "soft"
powerType.suspend = "soft"
powerType.reset = "soft"
extendedConfigFile = "USB.vmxf"
sata0:1.present = "FALSE"
scsi0:0.present = "FALSE"
floppy0.present = "FALSE"
ide1:0.present="TRUE"
ide1:0.fileName="usb-hdd.vmdk"
uuid.bios = "56 4d e9 81 a9 3c 22 1a-58 50 5e 72 84 2a 4d ec"
uuid.location = "56 4d e9 81 a9 3c 22 1a-58 50 5e 72 84 2a 4d ec"
replay.supported = "FALSE"
replay.filename = ""
migrate.hostlog = "./USB-35f5ba49.hlog"
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
scsi0.pciSlotNumber = "16"
usb.pciSlotNumber = "32"
ethernet0.pciSlotNumber = "33"
sound.pciSlotNumber = "34"
vmci0.pciSlotNumber = "36"
sata0.pciSlotNumber = "37"
ide1:0.redo = ""
ethernet0.generatedAddress = "00:0c:29:2a:4d:ec"
ethernet0.generatedAddressOffset = "0"
vmci0.id = "-2077602324"
monitor.phys_bits_used = "42"
vmotion.checkpointFBSize = "67108864"
vmotion.checkpointSVGAPrimarySize = "67108864"
cleanShutdown = "TRUE"
softPowerOff = "TRUE"
usb:0.present = "TRUE"
usb:0.deviceType = "hid"
usb:0.port = "0"
usb:0.parent = "-1"
usb:1.speed = "2"
usb:1.present = "TRUE"
usb:1.deviceType = "hub"
usb:1.port = "1"
usb:1.parent = "-1"
ehci:0.present = "TRUE"
ehci:0.deviceType = "video"
ehci:0.port = "0"
ehci:0.parent = "-1"