我创建了一个映像备份并将其还原为 VHD 文件。原始驱动器有三个主分区。它还有两个 CDRom 驱动器,显示为前两个卷。以下是 diskpart 列出原始磁盘卷的方式:
DISKPART> list vol
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 E Jun 06 2018 UDF DVD-ROM 125 MB Healthy
Volume 1 L DVD-ROM 0 B No Media
Volume 2 SYSTEM NTFS Partition 100 MB Healthy System
Volume 3 C OS NTFS Partition 1384 GB Healthy Boot
Volume 4 D HP_RECOVERY NTFS Partition 12 GB Healthy
我不知道“信息”列的值从何而来。请注意,卷 2(驱动器上的第一个主分区,我相信也是具有 MBR 信息的活动分区)没有分配驱动器号。
您可以在此处看到它具有 NoDefaultDriveLetter 属性设置,并且驱动器上的第二个和第三个主分区没有设置此属性:
DISKPART> sel vol 2
Volume 2 is the selected volume.
DISKPART> attributes volume
Read-only : No
Hidden : No
No Default Drive Letter: Yes
Shadow Copy : No
DISKPART> select volume 3
Volume 3 is the selected volume.
DISKPART> attributes volume
Read-only : No
Hidden : No
No Default Drive Letter: No
Shadow Copy : No
DISKPART> select volume 4
Volume 4 is the selected volume.
DISKPART> attributes volume
Read-only : No
Hidden : No
No Default Drive Letter: No
Shadow Copy : No
现在,我尝试为卷 2 设置 NoDefaultDriveLetter 属性,但它会影响磁盘上的所有分区,因此所有分区都不会获得驱动器号。DiskPart 文档明确指出,即使您要求它设置卷的属性,它实际上也会在磁盘级别运行,并且会影响同一磁盘上的所有卷。这听起来像是,他们没有让它正常工作,而是简单地记录了它会影响整个磁盘。
现在,不知何故,我的戴尔电脑分区时只有第一个分区设置了 NoDefaultDriveLetter 属性。所以我认为一定有一些软件可以做到这一点?所以我的第一个问题是,有人知道如何做到这一点吗?
我有一个后续问题,以防第一个问题的答案是我无法做到这一点。
此系统分区包含 Boot 隐藏文件夹和 BCD 文件。除此之外没有太多其他内容。这些选项是否可行?
1) 由于这是虚拟机(用于 Hyper-V),我是否可以创建一个新的 VHD,并将系统分区移动到该驱动器,将其从原始驱动器中删除,然后在新 VHD 上设置 NoDefaultDriveLetter 属性。然后使用 BootRec 程序确保它找到并指向我希望现在成为 C 驱动器上的操作系统?
2) 我可以直接删除整个分区,然后使用 BootRec 程序将 MBR/BCD 放在 C 盘上吗?或者您不能将其放在操作系统所在的同一分区上吗?
任何建议都值得赞赏!
答案1
所以我认为一定有一些软件可以做到这一点?所以我的第一个问题是,有人知道如何做到这一点吗?
我能想到的唯一能做到这一点的“程序”是 Windows 安装程序。我的意思是,在格式化的磁盘上安装 Windows 时,此属性会添加到新的 100mb/350mb 或 500mb 系统保留分区(由 Windows 安装程序根据版本 7/8 或 10 创建)。
2) 我可以直接删除整个分区,然后使用 BootRec 程序将 MBR/BCD 放在 C 盘上吗?或者您不能将其放在操作系统所在的同一分区上吗?
就像我说的,没有字母的分区是在 Windows 格式化/安装过程中创建的。因此删除该分区将导致磁盘无法启动。它充当启动管理器并包含 Bitlocker 驱动器加密文件(使用 Bitlocker 时):https://www.howtogeek.com/192772/what-is-the-system-reserved-partition-and-can-you-delete-it/
任何建议都值得赞赏!
我建议您使用本指南重新执行 VHDx 制作过程,并确保使用:复制指定物理磁盘的内容。(步骤 6):https://www.altaro.com/hyper-v/how-to-copy-disks-contents-new-vhd/
如果原始机器是 Windows 10 之前的版本或磁盘来自其他机器,我建议您先按照以下步骤操作:
- 先把物理磁盘放到hyper-v机器里,
- 将其设置为辅助磁盘(使用机器的启动选项)
- 然后按照我之前提到的指南使用另一台机器上的磁盘。
答案2
Alex Invar 有最好的方法,如果将驱动器从原始计算机中移除并插入 Hyper-V 机器。然后使用 Hyper-V 根据连接的物理驱动器创建 VHD 驱动器。
就我而言,我实际上是在恢复仍在运行的计算机的映像备份。事后看来,最好不要使用第三方软件,而是使用 Microsoft 提供的 SysInternals disktovhd.exe 工具。即使驱动器正在使用中,您也可以生成驱动器的映像,因为它会创建 VSS 快照,并且即使您登录到计算机时也可以这样做。我生成了 VHD,将其移动到我的 HyperV 服务器,连接到 VM,一切正常。