我在 Win7 VMWare Workstation 主机上有一个 Linux 客户机。我将物理驱动器从主机直接路由到虚拟机。我注意到在这些磁盘的 vmdk 中,vmdk 到物理驱动器的映射是通过驱动器标识(即 0-6 之间的数字)完成的。此数字与您在主机上的磁盘管理器中看到的数字相匹配。
我不想使用驱动器编号,而是使用驱动器的 ID(UUID),这样如果驱动器的顺序发生变化,则可以保持正确的映射。
这种解决方案的动机来自于这篇文章中提出的问题:SATA 驱动器顺序在重启时变得混乱;Windows 7 / Asus P5Q MB
有没有办法编辑 vmdk 文件的这一部分以实现这一点?
# Extent description
RW 1953525168 FLAT "\\.\PhysicalDrive2" 0
我想将 PhysicalDrive2 更改为 PhysicalDrive{UUID},或者 VMWare Workstation 解释为这个意思的内容。
编辑:还在 VMWare 社区上发布了问题:http://communities.vmware.com/message/1986851#1986851
答案1
Windows 设备名称实际上非常灵活:就像 Linux 及其系统一样/dev/disk/by-uuid
符号链接,Windows有自己的UUID寻址系统。
获取一份響鳴64并导航到GLOBAL??
——这是设备的来源\\.\
。1您将看到它PhysicalDrive1
实际上是指向某个类似 的符号链接\Device\HardDisk1\DR11
。如果您查看其他符号链接,您会发现某个Disk{23e4567-e89b-12d3-a456-426614174000}
指向同一个位置。那就是A磁盘的 UUID,设备移除并重启后仍会保留。不幸的是,它与所diskpart
显示的不同。
但我们不是来讨论使用哪个 UUID 的。我们来这里是为了让东西正常工作。只需将您的范围描述行替换为:2
RW 1953525168 FLAT "\\.\Disk{23e4567-e89b-12d3-a456-426614174000}" 0
并且它应该可以工作。它在我的 VirtualBox 原始磁盘映像中确实可以工作(是的,VBox 使用 VMDK 来访问原始磁盘),值得一试。
1从技术上讲,\\.\
指向的是\DosDevices\
,它是 的符号链接\??\
,当地的设备目录。本地目录中的内容可能与全局目录中的内容有所不同,具体取决于您映射的驱动器。\\?\GLOBALROOT
是明确的全局位置。
2您可能认为这\\?\Disk{...
是正确的位置,但 VirtualBox 拒绝它并告诉我该位置无法访问。