Diskpart 为不与卷关联的分区分配字母(Windows 10)

Diskpart 为不与卷关联的分区分配字母(Windows 10)

在 MBR 发生故障导致启动混乱之前,我的磁盘上曾经有 3 个卷。

现在我正在尝试重建启动环境以保存我的所有数据,但似乎所有数据都丢失了。我可以通过命令提示符(从 Windows 10 DVD)查看数据

我正在尝试执行 bcdboot c:\Windows /m {guid},但它不起作用

我也跑过:

bootrec /fixmbr (success / no error)
bootrec /fixboot (success / no error)
bootrec /rebuildbcd (failes with error "The requested system device cannot be found") 

我可以找到很多有关如何为卷分配驱动器号的信息,但找不到如何为分区分配驱动器号或创建与卷关联的分区的信息。

当通过 diskpart 选择分区时,“详细信息”部分告诉我:“没有与此分区关联的卷。”所以我认为一定有一种方法可以将其与卷关联起来。但是如何呢?

Info: 

list disk : 1 entry 465GB 0 B free

list part : 3 entry 
part 1 reserved 128MB offset 1024kb <- this used to be my boot-partition
part 2 System   465GB offset 129MB
Part 3 Recovery 450MB offset 465GB

list vol : 3 entry
Vol # LTR
Vol 0 D   UDF DVD-ROM 3894 MB healthy  <- (this is where my 128MB boot part used to be)
VOL 1 C   NTFS Partition 465GB healthy Hidden
VOL 2 E   NTFS Partition 450MB healthy hidden

我该如何继续恢复启动?

答案1

使用后我遇到了同样的问题分区ntfs克隆.diskpart> list partition显示我的所有分区,但它们没有列出diskpart> list volume并且与字母无关。

找出需要与字母关联的分区 X:

diskpart> list partition
diskpart> select partition X
diskpart> detail partiton  # I found that partition was hidden

如果你的磁盘有 GPT 表,请设置分区类型 GUID作为Microsoft 基本数据分区(相应的磁盘分区分区类型为0700):

diskpart> set id=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7

如果您的磁盘位于 MBR 中(07= Windows NT NTFS;17= 隐藏;27= OEM 恢复):

diskpart> set id=07 override

现在您可以再试diskpart> list partition一次。bcdboot c:\Windows对我来说效果很好。

答案2

老天爷,小心点!

听起来不是“一切都完了”,但也像是你只是模糊地知道自己在做什么,并且正在继续。这是“一切都完了”的秘诀。

具体来说,听起来你似乎能够访问绝大部分数据,但启动时遇到了麻烦,总体来说这是一个更简单的解决方法。但如果你不小心,你很容易丢失绝大部分数据。

首先,了解一些基本术语会有所帮助。MBR 是磁盘上的第一个扇区。“MBR”样式的分区布局可以处理高达 2 TB 的驱动器,而您似乎正在处理比这更小的驱动器,因此您可能确实在使用 MBR 而不是较新的 GPT 格式。

MBR 的两个主要作用是拥有一些初始引导代码(计算机遵循的指令),并拥有 64 字节的信息来存储最多 4 个分区的详细信息(每个分区表条目为 16 字节)。

这 64 字节的信息可能非常重要。如果您弄错了其中一些细节,操作系统可能无法正确理解有关分区的某些细节。而且由于操作系统通常会写入磁盘,因此这种误解可能会导致写入不正确的细节,从而损害您访问数据的能力。因此,在这里小心谨慎非常重要。

“分区”基本上是一组边界。您可以指定起始扇区以及终止扇区或大小。无论哪种方式,您都会获得起始边界和终止边界。

“卷”,有时也称为“文件系统”,用于存储您的实际数据。卷需要存在于分区的边界内。

现在通常发生的情况是,操作系统查看分区,并假设卷从分区的开头开始。此外,分区指定“类型”,这是为了提供有关正在使用哪种卷类型的有力线索。

如果操作系统找不到卷,则可能有多种原因。一种是分区的起始扇区错误,因此无法正确找到卷的起始位置。另一种可能是使用了不正确的“类型”,因此操作系统不知道如何与正在使用的卷进行交互。还有一种可能是卷已损坏,因此操作系统无法找到与操作系统检查的某些详细信息相匹配的卷。

在我的系统上使用 GPT,这可能会导致一些细微但重要的差异,“系统”驱动器是小型驱动器(不到 1 GB),而我的重要数据存储在显示为“主”类型的大分区上。“系统”类型未分配驱动器号(尽管更改驱动器号并不太难,也不会造成问题……我建议为其分配一个较高的驱动器号,如 S:,而不是 C: 或稍高一点的驱动器号。我还建议避免使用 X:,因为我认为 Windows 启动盘喜欢使用它。)

由于您的系统卷甚至没有显示,在我看来,这表明它已损坏。您可能需要恢复它,提供启动文件的新副本。这可能不像使用 BCDEdit 那样容易修复,BCDEdit 基本上只是尝试进行微小的更改。最好的办法可能是简单地重新安装操作系统(即使是在同一驱动器上),这应该可以完成几件事:在您的硬盘驱动器上放置一份新的(未更新的)Windows 副本(它可能能够覆盖,甚至可能就地覆盖您当前的安装)并调整启动能力。

可能有更简单/简单的方法,但我建议为没有这种可能的情况做好准备。

但是,我强烈建议您先进行完整备份。如果可能的话,我甚至建议您不仅备份一些看似重要的文件,还要获取整个驱动器的“取证”/“逐位”映像(复制到至少同样大的另一个驱动器上)。这样,您就可以放心,在尝试进行任何更改时不会丢失重要数据,并且如果任何尝试出错,您可以恢复。

看过您与 GuitarPicker 的对话后,我并不担心您的 DVD 驱动器会显示出来。我认为这只是由于未检测到您的启动分区而导致的;如果检测到您的启动分区,则 DVD 会自动分配更高的驱动器号,不会出现问题。使用 SET ID 确实可能有帮助(要查找现有 ID(也称为类型),您可以选择分区,然后说 DETAIL PARTITION)。但您确实说过,“我再次尝试使用 diskpart 删除启动分区并重新创建它”。这里的问题是,当您删除启动分区时,您实际上告诉计算机停止跟踪该分区上的任何数据,例如用于启动的关键数据。然后,即使您确实创建了被归类为启动分区正确“类型”的新分区和卷,您仍然缺少用于启动操作系统的那部分数据。将该数据放入启动驱动器的典型方式称为“安装操作系统”。

虽然可能有一些方法可以从另一台计算机移植这些引导数据,但有些数据可能需要放置在卷上的特定扇区中(这是一个挑剔的细节,通常除了处理引导文件外,不会成为关注的问题),因此这可能或可能不像尝试进行基本复制那么简单。换句话说,这种移植可能会出现问题,因此不建议新手采用这种方法。

注意:我确实读过您关于从 Win7 升级到 Win10 的评论。您可能只需在现有驱动器上安装 Win10 就可以了,如果幸运的话,也许您现有的许可证甚至可能会保留,在这种情况下,您甚至可能不需要大惊小怪地完成 Windows 7 安装。但是,看在上帝的份上,为了确保您不会让自己陷入任何新的痛苦,在进行备份之前,不要考虑尝试这样做。我知道这样的任务可能很烦人(尤其是需要花钱),但我再次强调这个问题是因为有时备份比一般情况更值得,而这就是其中一次。所以,我强烈建议您做明智的事情,即在进一步处理之前投资时间/精力/物资。

答案3

分区类型似乎不对。在继续操作之前,请使用逐位备份程序(如 CloneZilla 启动盘)进行良好的备份,然后尝试编辑 MBR。您没有指定 128 MB 应该是什么类型的分区,但您可以尝试手动设置。如果您知道应该是什么类型的分区,您可以使用磁盘分区设置名称命令手动设置十六进制分区类型。维基百科有一个列表分区类型常见的有07代表NTFS,0C代表大部分FAT32,06代表FAT。

你最好从测试磁盘,用于恢复分区表。它可以自动检测多种类型的 MBR 问题。您可能仍需要使用 bcdboot 和 bootrec,但它应该可以让您有一个可行的起点。

相关内容