2012-08-12 18:06:22 +0000 2012-08-12 18:06:22 +0000
123
123

Windows 8のEFIブートローダを修復する方法を教えてください。

数日前にハードディスクにEFIモードでWindows 7とWindows 8をインストールしました。今日、ブートローダが行方不明/破損してしまいました。

私は現在、フラッシュドライブにWindows 8のインストーラを持っていて、ブートローダを修復するために自動修復オプションを使用してみましたが、何もしませんでした。スタートアップ修復オプションもWindows 8のインストーラにはありません。

コマンドプロンプトからEFIブートローダを修復/作成するにはどうすればいいのでしょうか?

BCDEDIT は以下のメッセージを返します:

The requested system device cannot be found.

回答 (10)

182
182
182
2012-11-12 00:27:03 +0000

私は、新しいSSDにクローンを作成した後に再び起動するために私のWindows 8 PCを取得しようとする多くの時間を費やしてきたし、私は最終的にそれがすべての作業を得た方法を要約しようとする -

まず、UEFI Windowsからのブート 8 リカバリディスク (CD/DVD/USB) - 私は自動回復プロセスが正しいWindowsパーティションを見つけられなかったことがわかりました, また、私はBCDの設定に追加することを管理したとき、それは確実に起動可能なe.を作るだろう. g. BCDEDIT を使用して、私はそれを見つけて Windows パーティションを起動するために得ましたが、それはコールドブートすることを拒否したか、または 2 番目の再起動または電源オフ後の設定を “保持” しないでしょう。

DISKPART> sel disk 0

Disk 0 is now the selected disk.

DISKPART> list vol

  Volume ### Ltr Label Fs Type Size Status Info
  ---------- --- ----------- ----- ---------- ------- --------- --------
  Volume 0 E DVD-ROM 0 B No Media
  Volume 1 C NTFS Partition 195 GB Healthy Boot
  Volume 2 WINRE NTFS Partition 400 MB Healthy Hidden
  Volume 3 FAT32 Partition 260 MB Healthy System

を終了し、コマンドプロンプトで次のように実行します:

DISKPART> sel vol 3

Volume 3 is the selected volume.

DISKPART> assign letter=b:

DiskPart successfully assigned the drive letter or mount point.

BCD ファイルを削除するか、名前を変更します。

cd /d b:\EFI\Microsoft\Boot\

bootrec /fixboot

BCD の店を再作成するのに diskpart を使用して下さい:

ren BCD BCD.bak

exit パラメータは UEFI ファームウェア/NVRAM を含む BIOS の設定を更新します、bcdboot.exe は UK/GB のロケールのために集中することです。ローカライズのデフォルトはUS英語、またはen-USを使用します。

再起動して指を交差させます。長い間、ぐるぐる回っていました。

[EDIT]

Hyper-Vを再有効化するには、再起動後にWindows内の管理者コマンドプロンプトから以下のコマンドを実行しなければなりませんでした:

bcdboot c:\Windows /l en-gb /s b: /f ALL
22
22
22
2012-12-12 06:01:57 +0000

他の回答も参考になりますが、私の場合はこんな感じです。その後、購入した150GBのSSDにWindows8をインストールしました。1.5TBのハードディスクが故障して、「システムディスクを挿入してください」と音がしてパソコンが起動しなくなってしまいました。1.5TBのディスクにブートローダが入っていたはずなので、ブートローダがなくなっているのかと思っていました。しかし、問題は、私が従ったガイドでは、ブートローダを再構築していないということでした。

私はすべての私のデータを失いたくなかったので、私は私のWindows 8インストールUSBドライブから起動してコマンドプロンプトに入りました(それが表示された場合、このUEFIバージョンを起動することができないことに注意して、それの前に表示されるUEFIなしでちょうどUSBドライブから起動するように選択します)。これを行うには、次のコマンドを入力し、それぞれの後に Enter を押します:

diskpart

list disk

select disk 0

list partition

select partition 1

shrink desired=200 minimum=200

create partition efi

list partition

select partition 2

format fs=fat32

これらのコマンドは EFI パーティションを作成します。007 と入力して、すべてをダブルチェックしてください。200MB のパーティションが表示されているはずです。これに文字を割り当てる必要があります。

これで新しく作成されたパーティションにブートファイルをコピーする必要があります。

bcdboot C:\Windows /l en-gb /s B: /f ALL

これらは両方とも成功して戻ってきましたが、本当に何かをしたかどうかはわかりませんが、誰が気にしています。これでWindowsは完全に回復しました。

9
9
9
2012-11-28 03:14:27 +0000

さて、時間があったので、ここにちゃんとしたアウトラインをまとめてみました。長いですが、かなり完成されていて、何が起こっているのかを見るのに役立つはずです。BIOSの設定が消えてしまう 2. 問題ありません、すべてのものはEFIパーティションに保存されています。 3. …SATA IDE対AHCIの設定を除いて、明らかな理由があります。SATA-AHCIを使っていましたか?SATA-AHCIを使っていましたか? 今はSATA-IDEを使っているはずです。 5.それがわかる前に起動してみましたか? Windowsに修正を試みさせましたか? 7.そうすると、BLAMはBoot Configuration Databaseを破壊してしまいます。前回使用していたSATAの設定が正しいことを確認してください。これらのいずれかが一致しない場合は、これが実際にあなたの問題であるかどうかを慎重に評価し、アイデアのためにこれを読んで、しかし、最初に考えずにそれに従うことはありません。マスターブートレコード(MBR)、パーティションテーブル、パーティションフラグ、EFIブートシナリオには適用されない他のゴミを修正することについてのたわごとは、幸いにも無視しています。AT ALL_. せいぜい、新しい _無関係な _EFI 以外のブートソリューションを完全に再構築することができるでしょう。しかし、それは些細なことではないかもしれません: 2. あなたは、Windows がブート設定データベースを持っていないことを理解していますが、残念ながら、それは完全に無知か、それがどこに行くかについて非常に確かです - あなたはどちらを完全に伝えることができません。ブートストアは通常 (somewhere)\Boot\BCD であり、ファイルは HIDDEN であることを認識しています。dir /a:hs に少し慣れてきて、BCDedit.exe を使ってステージングファイルのブート設定データベースを「モックアップ」できること、/CreateStore オプションを使ってステージングファイルを明示的に使用できること、/Store を使って Windows ブートマネージャのメニューエントリを追加できること、そして /Create {bootmgr} を使ってインポートできるはずであることを理解しました… 5. あなたは/Importオプションを調べてみましたが、それは正しいように聞こえますが、それが「曖昧」なので、他のストアを使用するようにはできません。6. EFIパーティションをマウントするために/SysStoreを使用しようとしましたが、リストにも表示されず、できません。WindowsはあなたがEFIのためにセットアップされていることを伝えることができます(あなたはUEFIブートを介してDVDを起動している、あなたはEFIパーティションを持っているなど)。それは、したがって、BCDファイルを探す場所を知っています - しかし、それは何らかの形で場所が間違っているか(この問題ではありませんが、似たようなもの)、またはBCDが削除されました。どうやら、あるべき場所を知っているので、これは MountVol を壊しているようです – 実際には、これが正しい動作なのかもしれません。私の知る限りでは、/SysStore は意図的に EFI パーティションを隠しています (あるいは、それに気づくことができません)。これはファイルシステムをマウントすることを妨げ、正しいサブディレクトリを見つけることを妨げ、データベースが存在することを検証することを妨げています。良いニュースは、それがおそらくあなたが今では期待しているよりもはるかに単純であるということです。実際には EFI パーティションをマウントしなければなりません。

実は、厳密には正しくない予感がします。データベースは見ていませんが、どこに行くべきかは知っています。しかし、持っていないものはドライブレターです。それで…どうすればいいの?

そうですね…あなたのDOSのルーツはどこまで遡りますか? 007のコマンドを覚えていますか?何だと思う?MountVolを起動してください。もし、BCDeditに馴染みがないのであれば、基本的にはセットの階層構造になっています。そのため、Assign、そしてDiskPart、ここではDiskPartがあなたにとって適切なものであれば何でもよいのですが、 4. List DiskSelect Disk n (複数ではないことに注意) を使って、EFI パーティションを確認してください。ディスクは GPT パーティションテーブルを使用しているはずなので、かなりの数のパーティションが表示されていることを覚えておいてください。これらのうちのいくつかは緊急リカバリー用です。まあいいや。

EFIパーティションと他のいくつかのパーティションにはドライブレターがありません。その気になれば、GPT パーティションの属性も見ることができます。(必要であれば、代わりにボリュームを選択しても良いと思います。) 6. n. 以上です。ドライブレターを指定しないで、List Partitionだけにしてください。これで EFI パーティションに割り当てられたドライブレターが表示されるはずです。おそらく S: (List Volume で取得したもの) に直接移動して、Boot パーティションがあることに気づく。"AHA! と言うでしょう。"ここには System ファイルがない! まず…そのファイルは隠されていることを覚えておいてください。第二に…もう少し調べてみると、Select Partition nAssign

がありますが、問題がないかどうか、これらの両方をチェックする必要があります。これは、マザーボードがWindowsを使用するかどうかわからないので、この名前が付いています。検査する Assign。Windows 7 Professional, 64-bit の場合、以下のように表示されるはずです: List Volume EFI シェルをインストールしている場合(常に良いアイデアです)、追加で Exit が表示されるかもしれません。

注意: Assign を使用しているデュアルブート Linux ユーザーは、ここに追加のエントリは表示されません。Windows 7 Professional, 64ビットの場合、言語テンプレートの束(BCDなど)と以下のファイルが表示されるはずです: bootmgr.efi bootmgfw.efi memtest.efi BCD BCD.Backup.001 BCD.Backup.002 …ただし、おそらくS:\EFI\Bootは表示されないでしょう? しかし、これらのバックアップファイルは魅力的に見えます。11. 使用するバックアップファイルを決定します。最近の変更点はシステムを起動する能力と同じくらい重要ではありませんので、最も無傷なものを選びましょう。おそらく、大きなものとかなり小さなものがあるでしょう。小さい方はすでに壊れていて、修復に失敗した時の成果物です。両方とも大きい場合は、古い方を使ってください。どのような場合でも、どこか他の場所に追加のバックアップコピーを作成してください。使用することに決めたバックアップをS:\EFI\Microsoft\Bootにコピーします。シェルを終了し、きれいにシャットダウンして再起動します。WindowsにNORMALLYを起動するように指示します。この時点で、起動するはずです。

Q: バックアップBCDを持っていない場合はどうすればいいですか? それはおそらくあなたが間違ったディレクトリにあることを意味し、EFIをサポートしていますが、実際にはそれを使用していなかったか、または何らかの形で必要なWindows材料(Windowsの複数のバージョンを使用している場合は特に、可能)のすべてなしで全体のEFIパーティションを再構築しました。その場合、DVDからEFI材料をコピーして、S:\EFI\Bootを使ってブート構成データベースを修正するか、再構築する必要があります。

Q: EFIシステム上でS:\EFI\Bootを使って何かをすることができるシナリオの例を教えてください。

A: 今のところ、ありません。最後に非常に重要なことですが、上記のbootx64.efi: shellx64.efiのテクニックを使って、普通にWindowsでEFIパーティションをマウントして検査することができることに注意してください。このようなトラブルに遭遇する前に、EFI パーティションの完全なバックアップを取るために、少なくとも一度はこれを行う必要があります。バックアップは chainloader+1 ドライブのサブディレクトリと USB フラッシュドライブに取ることをお勧めします。しかし、多くの人がイライラしているので、私の経験をできるだけ完全かつ迅速に文書化する必要があると感じました。

5
5
5
2012-08-25 20:45:34 +0000

Windows 8はまだ最終的な形では出ていないので、問題は予想されます。あなたは、私たちが使用していたコマンドがもう動作しない可能性があります私たちのほとんどにとって新しい領域にいます。soandosによってリストされたコマンドに、私は完全にBCDを再構築するこの1つを追加します :

bootrec /rebuildbcd

Windows 8からの高度なブートメニューを使用してみて、私たちに何が起こるかを知らせてください。いずれにしても、お使いのコンピュータの bcdedit の出力が何であるかを見るのは興味深いことでしょう。

[EDIT]

これらのリンクには、いくつかの有用なアイデアが含まれているかもしれません : DVD から Windows ブートローダを回復する Windows 7 ブートマネージャの回復問題 Windows 7 Suddenly Wonly’t Boot - Repairing the Windows 7 Bootloader

3
3
3
2012-11-29 01:17:10 +0000

一番簡単な方法:

  • 上の投稿の手順に従って、BCDファイルを探し、そのディレクトリに移動します。

  • BCDファイルが隠されている場合は、attrib bcd -s -h -rと入力してEnterキーを押します。これは、ファイルを変更し、上書きすることができます。

  • ren bcd bcd.oldを入力し、Enterキーを押します。これにより、現在の BCD ファイルの名前が変更されます。

  • Bootrec /RebuildBCD と入力して Enter キーを押すと、Windows 8 がブートメニューをゼロから再構築するように強制されます。

  • コマンドプロンプトを終了してシャットダウンします。Windowsリカバリーメディアを削除して再起動します。あなたは完了しました!

2
2
2
2013-02-06 11:50:32 +0000

DISKPARTでは、vol 0かD(DVD)とvol 1かC(Windows NTFSパーティション)しかありませんでした。

DISKPARTを終了した後、

bootrec /fixboot
bootrec /rebuildbcd

と入力しただけで、システムが正しく修復されました。

bootrec /fixmbr

&001

はMBRでGAG(gestor de arrangeque gràfico)を使ってマルチブートしていたので使わなかった。

1
1
1
2012-12-05 14:29:49 +0000

6時間の格闘の末、なんとかWindows8の起動問題を解決しました。

今日、いつものように再起動したら、MBR not foundかそれに近いメッセージが出てきました。

問題は、bootrecを実行したときに正常に動作し、設定を保存したい場合はbootrec /rebuildbcdを入力しなければならなかったときに、yesというメッセージが表示されたことです。

何時間も頭を悩ませた末、ようやく解決しました。

この順番で…

  • まず、Easyupのパーティションマスターを起動して、後でアクティブに割り当てたシステム予約ボリュームをFORMATEDしました(その中に私のブートフォルダがありました)。再起動するとエラーthe file is not accessible because it is used by a another processが出ました。

  • その後、Windowsリカバリーで起動し、コマンドプロンプトを開き、NTLDR missing, bootrec /fixmbr, /fixboot, /scanos, /rebuildbcdと入力しました。再起動すると、Windows 8のロゴが表示されました。

0
0
0
2015-12-19 14:57:30 +0000

私のシナリオでは、EFI システムパーティションを失うことはありませんでしたが、ドライブを切り替えて Windows をインストールすると、1 番目のドライブの Windows ブートマネージャの UEFI ブートエントリが台無しになってしまいました。(私の場合は X=2; 私の2番目のパーティションは EFI システムパーティションで、diskpart.exe で Z: にマップされています):

Bcdedit /set {bootmgr} device partition=Z:

view with: bcdedit.exe /enum firmware

-1
-1
-1
2012-08-13 00:06:38 +0000

Use:bootrec /fixmbr (MBRを更新します。おそらくこの場合は何もしないでしょうが、どちらも痛くないでしょう)

bootrec /fixbootでシステムパーティションのブートセクターを書き換えます。

bootrec /scanosでドライブ上にあるOSをスキャンしてブートローダーに追加します。

-4
-4
-4
2012-08-25 20:41:13 +0000

リカバリーコンソールで以下のコマンドを使ってなんとか直りました:

bootcfg C:\Windows /l en-us