在 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 安装。但是,看在上帝的份上,为了确保您不会让自己陷入任何新的痛苦,在进行备份之前,不要考虑尝试这样做。我知道这样的任务可能很烦人(尤其是需要花钱),但我再次强调这个问题是因为有时备份比一般情况更值得,而这就是其中一次。所以,我强烈建议您做明智的事情,即在进一步处理之前投资时间/精力/物资。