NVIDIA 驱动程序升级使我的 Windows 7 安装崩溃,所以我正在努力消除损坏。
我能做什么:我可以从 USB 驱动器启动 Windows 安装,我可以启动Hiren's Boot CD。虽然自动 Windows 修复失败,但当我从 USB 驱动器启动 Windows 安装时,我可以进入命令提示符,我可以看到我的驱动器和我的所有数据。
我不能做什么:我无法启动到 Windows - 我收到此消息:
Windows failed to start. A recent hardware or software change might be the cause. To fix the problem:
1. Insert Windows CD and run a repair your computer option.
File: /Boot/BCD
Status: 0xc000000f
Info: an error occurred while attempting to read the boot configuration data.
Run Code Online (Sandbox Code Playgroud)
我的 /Boot/BCD 似乎有问题,所以我试图从头开始重新创建它。我已经尝试了此处详述的所有方法(包括失败的 Windows 修复),而我只剩下最后一个(靠近该页面底部)。当我在教程中输入以下命令时:
bcdedit.exe /import c:\boot\bcd.temp
Run Code Online (Sandbox Code Playgroud)
...它失败并出现以下错误: …
bcdedit
在不同的 Windows 安装之间设置双启动所需的命令是什么?5
我最近将 Windows 8 安装到单独的硬盘驱动器1 上。现在安装了 Windows 8,我想双引导回到 Windows 7。
我有我的两个2硬盘:
所以你可以看到我有两个磁盘,分区包含 Windows:
\\PhysicalDisk0
(分区 0 3 )\\PhysicalDisk2
1 部分)我想弄清楚如何使用bcdedit
来指示引导 Windows 的东西还有另一个 Windows 安装。
bcdedit
现在运行,它显示当前配置:
C:\WINDOWS\system32>bcdedit
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
description Windows Boot Manager
locale en-US
inherit {globalsettings}
integrityservices Enable
default {current}
resumeobject {ce153eb7-3786-11e2-87c0-e740e123299f}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {current} …
Run Code Online (Sandbox Code Playgroud) 注意 \xe2\x80\x93 此线程How to add UEFI image boot option in BCDedit? 类似,但答案不相关,因为它没有描述我的情况。
\n此线程 如何解决一个驱动器上有两个 EFI 分区的情况? 引起了我对这个问题的兴趣。
\n我有 Windows 10,我想在 UEFI 设置中创建一个新的启动条目,指向 EFI Shell 说 shell.efi 文件位于\\Efi\\Boot\\Shell\\Shell.efi
。\n如何使用 bcdedit.exe 执行此操作而不复制现有的 {bootmgr} Windows 条目?\nI尝试了该答案中提供的解决方案,但该命令不被接受。
C:\\windows\\system32>bcdedit /create /d "EFI_Shell" /application firmware\nThe application type switch specified is not valid.\nRun "bcdedit /?" for command line assistance.\n
Run Code Online (Sandbox Code Playgroud)\n当我浏览/create /application
bcdedit 帮助时,它没有将firmware
参数显示为有效条目。
唯一的apptype
选择是
BOOTAPP\n BOOTSECTOR\n OSLOADER\n RESUME\n STARTUP\n
Run Code Online (Sandbox Code Playgroud)\n我能够做到这一点的唯一方法是复制{bootmgr}
到新条目并修改复制条目中的分区、路径和描述。
I installed Windows 8 and Ubuntu 12.10 on a 3TB GPT disk in UEFI mode.
Both can boot up OK.
Both operating systems created their ntries in the UEFI boot menu, there's an "ubuntu" and a "Windows 8" entry.
The boot order can be altered in the motherboard's UEFI setup.
I'd like to boot "ubuntu" first, because I set up GRUB 2 to be able to boot both systems.
But whenever I boot Windows 8, it changes the boot order …
因此,您可能知道,注册表配置单元HKEY_LOCAL_MACHINE\BCD00000000
实际上是系统 BCD 存储;这与您在运行BCDEDIT
命令时看到的信息相同(以管理员身份)。
但是,如果我尝试以管理员身份运行 regedit 并手动编辑其中的任何值,则会出现错误Cannot edit <value_name>: Error writing the value's new contents
。同样,如果 Windows API 函数RegSetValueEx
尝试更改此子项中的值,即使在以管理员身份运行的应用程序中,它也会失败。
然而,该BCDEDIT
命令可以毫无问题地从该存储中插入、更新和删除项目,并且更改也会显示在注册表中。
什么BCDEDIT
和手动编辑注册表有什么区别?
有多种工具可以编辑 BCD 存储,例如bcdedit和 Visual BCD 编辑器。
他们正在编辑所谓的“BCD Store”。它的物理位置在哪里?
在文件系统中(在哪里)?
在物理硬盘驱动器扇区(在哪里)?
在计算机的 Flash ROM 上?
在别处(哪里)?
我安装了多个操作系统,每个操作系统在 ESP(EFI 系统分区)中都有各自的 EFI 文件。
例如:我的 Windows 10 位于\EFI\Boot\Microsoft\bootmgr.efi
,WinPE 位于\EFI\WinPE\Boot\bootx64.efi
当我启动到 BIOS 时,我可以看到操作系统列表,但我希望能够给 Windows 一个命令来更改顺序然后关闭,从而有效地告诉 Windows 启动到不同的操作系统。
我的桌面上有多个硬盘,但只有 1 个有操作系统(Win 10)。这是我的磁盘管理器的图像:
磁盘 2 (D:) 是一个旧的缓慢死亡的备份 HDD。
磁盘 1 (G:) 是一个较新、速度更快 (7200rpm) 的 HDD,上面曾经装有操作系统。
磁盘 0 (C:) 是一个非常新的 SSD,现在上面有操作系统。
磁盘 1 上包含所有启动信息,因为我希望在设置和调整新操作系统时仍能够进入旧操作系统。现在,我对新的操作系统设置感到满意,并希望将磁盘 1 格式化为单个分区,以便我可以将数据从磁盘 2 复制到磁盘 1,以使用更新的更快的驱动器作为备份,而将磁盘 2 保留为冗余备份异地存储。
所以现在我需要安全地将 MBR 和 bootmgr 从磁盘 1 获取到磁盘 0。这是否只是断开磁盘 1 然后启动并可能进行启动修复以让 Windows 自动创建新的 MBR 的问题,或者我应该使用一些软件,例如EasyBCD或者像 bcdboot 和 bcdedit 这样的命令行实用程序就足够了吗?如果是后者,我完成工作所需的确切命令是什么?
我有Windows Server 2008 R2软件镜像。
我从 c: 卷启动。
当我使用时:
bcdedit
Run Code Online (Sandbox Code Playgroud)
我可以看到 3 个不同的“Windows Boot Loader”条目,其中包含“设备分区=C:”。如何确定哪个启动项与哪个物理磁盘相关?
Windows Boot Loader
-------------------
identifier {77777777-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
device partition=C:
path \windows\system32\winload.exe
description Windows Server 2008 R2 - secondary plex
locale en-us
inherit {bootloadersettings}
osdevice partition=C:
systemroot \windows
resumeobject {55555555-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
nx OptOut
detecthal Yes
Windows Boot Loader
-------------------
identifier {99999999-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
device partition=C:
path \windows\system32\winload.exe
description Windows Server 2008 R2 - secondary plex
locale en-us
inherit {bootloadersettings}
osdevice partition=C:
systemroot \windows
resumeobject {55555555-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
nx OptOut
detecthal Yes
Windows Boot …
Run Code Online (Sandbox Code Playgroud) 我尝试使用 BCDEDIT 和 DISKPART,但这些工具给我的 ID 不是 GUID 注意:我正在 Windows 7 中进行测试
bcdedit ×10
boot ×4
bcd ×3
uefi ×3
command-line ×2
hard-drive ×2
windows ×2
windows-10 ×2
windows-7 ×2
grub2 ×1
mbr ×1
partitioning ×1
powershell ×1
raid ×1
windows-8 ×1