macOS下Parallels Desktop给Windows Bootcamp挂载物理硬盘百分百成功的办法(适合黑苹果)
笔者环境
- macOS 14.3.1
- Parallels Desktop 18
- 西数730 512G
- 西数蓝盘 1T
- 东芝红盘 2T
- Windows 11(bootcamp)
准备事项
-
Command + Space 打开搜索,输入
终端
并打开 -
输入
sudo -i
切换到root
,输入diskutil list
-
/dev/disk1
这是磁盘路径,如果你需要添加别的就选择你要添加的路径即可 -
输入
gpt -r show /dev/disk1
,获取当前磁盘的分区信息 -
分区解析:
- PMBR:这是保护性 MBR,它保护磁盘不被误认为是未分区的。
- GPT header: 这是主 GPT 头,它包含 GPT 的全局信息,如分区条目的位置和数量。
- GPT table:这是主 GPT 表,包含实际的分区条目。
- GPT part:这是第一个 GPT 分区。
- Sec GPT table:这是次级 GPT 表,用于冗余和恢复目的,位于磁盘末尾。
- Sec GPT header:这是次级 GPT 头,包含次级 GPT 表的信息。
-
GPT part
才是我们真实的基础数据分区,当前的这些条目需全部保存,后面需要用到。 -
(可选)
diskutil info /dev/disk1
获取硬盘名 -
diskutil info /dev/disk1s1
s1来自于第5步获取的GPT part
索引号 -
总结:
扫描二维码关注公众号,回复: 17467085 查看本文章
需要的条目 | 值(复制你自己的) |
---|---|
磁盘路径 | /dev/disk0 |
磁盘分区信息 | gpt -r show /dev/disk1 用命令获取全部 |
磁盘名称 | diskutil info /dev/disk1 用命令获取Device / Media Name |
磁盘主分区UUID | diskutil info /dev/disk1s1 用命令获取Disk / Partition UUID |
如果你有的磁盘有多个分区请通过
diskutil info /dev/disk1s
后面加上1
或者2
以此类推拿到Disk / Partition UUID
创建parallels所需的hhd文件
- 打开parallels,找到你的Windows虚拟机右键在Finder中显示
- 在打开的目录中右键**.pvm**后缀的虚拟机文件,显示包内容
- 在里面选择现有的**.hdd**,右键复制出来一个副本
- 重命名,命名规范
- 上面获取到的Device / Media Name
- -1T Media 1T是磁盘容量
- (disk1) 磁盘路径
- 最终的名称:TOSHIBA HDWD120-2T Media (disk1).hdd
- 你也可以瞎写,这里无所谓(笔者强迫症)
- 右键你刚命名的TOSHIBA HDWD120-2T Media (disk1).hdd文件,选择显示包内容
- 打开包内容后,里面也有一个**.hdd**文件,重命名(和外面那个一样的命名)
- 编辑DiskDescriptor.xml文件
- 修改UID和NAME:UID自己在网上找个uuid生成,NAME就是上面修改的**.hdd**的文件名
- 修改StorageData
gpt -r show /dev/disk1: start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 2014 2048 3907024896 1 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 3907026944 2191 3907029135 32 Sec GPT table 3907029167 1 Sec GPT header <Storage Protected="True"> //对应 gpt -r show /dev/disk1 里面的PMBR <Start>0</Start> //PMBR start <End>1</End> //PMBR start + PMBR size <Blocksize>2048</Blocksize> //原有保持不变 <Image> <GUID>{5fbaabe3-6958-40ff-92a7-860e329aab41}</GUID> //原有保持不变 <Type>Plain</Type> //原有保持不变 <File>PhysicalMbr.hds</File> //原有保持不变 这里面的Mbr值就是分区里面的PMBR </Image> </Storage>
gpt -r show /dev/disk1: start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 2014 2048 3907024896 1 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 3907026944 2191 3907029135 32 Sec GPT table 3907029167 1 Sec GPT header <Storage Protected="True"> //对应gpt -r show /dev/disk1里面的Pri GPT header + Pri GPT table <Start>1</Start> // Pri GPT header start <End>34</End> //Pri GPT table start + Pri GPT table size <Blocksize>2048</Blocksize> //原有保持不变 <Image> <GUID>{5fbaabe3-6958-40ff-92a7-860e329aab41}</GUID> //原有保持不变 <Type>Plain</Type> //原有保持不变 <File>PhysicalGpt.hds</File> //原有保持不变 这里面的Gpt值就是分区里面的Gpt </Image> </Storage>
gpt -r show /dev/disk1: start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 2014 2048 3907024896 1 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 3907026944 2191 3907029135 32 Sec GPT table 3907029167 1 Sec GPT header <Storage> //对应 gpt -r show /dev/disk1 里面的GPT part <Start>2048</Start> //GPT part start <End>3907026943</End> //GPT part start + GPT part size - 1 <Blocksize>2048</Blocksize> <Image> <GUID>{5fbaabe3-6958-40ff-92a7-860e329aab41}</GUID> <Type>Bootcamp_UID</Type> <File>032B63B0-DEDE-4DA4-8E8A-04E8C03D14D0</File> //这里填写Disk / Partition UUID </Image> </Storage> //如果你有多个Gpt part 这个地方就多次填写 根据index 索引按顺序填写。
gpt -r show /dev/disk1: start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 2014 2048 3907024896 1 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 3907026944 2191 3907029135 32 Sec GPT table 3907029167 1 Sec GPT header <Storage Protected="True"> //对应 gpt -r show /dev/disk1 Sec GPT table <Start>3907029135</Start> // Sec GPT table start <End>3907029166</End> // Sec GPT table start + Sec GPT header size - 1 <Blocksize>2048</Blocksize> <Image> <GUID>{5fbaabe3-6958-40ff-92a7-860e329aab41}</GUID> <Type>Plain</Type> <File>PhysicalGptCopy.hds</File> </Image> </Storage>
- 修改UID和NAME:UID自己在网上找个uuid生成,NAME就是上面修改的**.hdd**的文件名
- 右键DiskDescriptor.xml,选择显示介绍,复制路径
cd ‘/Users/chence/Parallels/Windows11.pvm/TOSHIBA HDWD120-2T Media (disk1).hdd’
这里的路径记得加单引号- 使用 dd 工具将 MBR、GPT 和 GPT 备份信息转储到相应的文件中
dd if=/dev/disk1 bs=512 count=1 of=./PhysicalMbr.hds
dd if=/dev/disk1 bs=512 count=33 skip=1 of=./PhysicalGpt.hds
dd if=/dev/disk1 bs=512 count=33 skip=3907029135 of=./PhysicalGptCopy.hds
skip 取的是 gpt -r show /dev/disk1:里面的Sec GPT table start
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 2014
2048 3907024896 1 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
3907026944 2191
3907029135 32 Sec GPT table
3907029167 1 Sec GPT header
- 返回parallels添加硬盘,选择现有的镜像文件,添加**/Users/chence/Parallels/Windows11.pvm/TOSHIBA HDWD120-2T Media (disk1).hdd/TOSHIBA HDWD120-2T Media (disk1).hdd**