web-dev-qa-db-ja.com

Windowsを再インストールせずにエラー0xc0000225を修正できますか?

GRUB2を使用してGentoo LinuxとWindows 7をデュアルブートするシステムがあります。コンピューターには4つのドライブがあり、Windowsはドライブ#2の3番目(最後)のパーティションにインストールされています。ドライブレイアウトは次のようになります。

|boot|-----------------home-----------------|-------------windows-------------|

boothomeはLinuxパーティションです)奇妙なセットアップですが、Gpartedを使用してWindowsパーティションを縮小することを決定するまで、常に機能していました。新しいレイアウトは次のとおりです。

|boot|-----------------------home-----------------------|-------windows-------|

これらのパーティションを変更した後、GRUB2でWindowsオプションを選択し、Windowsブートローダーに制御を渡すと、エラーメッセージが表示されます。

ウィンドウズブートマネージャー
Windowsの起動に失敗しました。最近のハードウェアまたはソフトウェアの変更が原因である可能性があります。 問題を解決するには: 1. Windowsインストールディスクを挿入し、コンピューターを再起動します。 2.言語設定を選択し、[次へ]をクリックします。 3. [コンピューターの修復]をクリックします。 これがない場合ディスクについては、システム管理者またはコンピューター メーカーにお問い合わせください。 ステータス:0xc0000225 情報:必要なデバイスにアクセスできないため、ブート選択に失敗しました。

これが発生することは特に驚いていませんが、Windowsを再インストールせずにこれを修正できるかどうか疑問に思っています。

WindowsインストールDVD(具体的には、Windows 7アップグレードDVD)を使用してコンピューターを起動しようとしました。言語とキーボードを選択して[このコンピューターを修復]をクリックすると、[システム回復オプション]画面 Windowsパーティションが検出されません 。とにかく「次へ」をクリックしてから、スタートアップ修復を使用できます。これは 問題の修正に失敗します 、またはコマンドラインツール、つまりbootrec(複数のWebサイトで推奨)、sfcchkdskを試してください。それらのどれも違いをもたらしませんでした。それでも同じエラーメッセージが表示されます。 (詳細な出力については、以下を参照してください。)

同様の質問で示唆されているように、Linuxで実行され、Windowsパーティションで動作する TestDisk で「Rebuild BS」(ブートセクターの再構築)機能を使用してみました。それはまた、私が得るエラーを変えませんでした。

どちらのパーティションでもデータ破損の兆候は見られず、ドライブは物理的な損傷を受けていません。そのため、パーティションレイアウトの変更がこのエラーの原因であると確信しています。私は、Windowsがファイルシステム(レジストリ?)内のどこかに格納された開始セクタおよび/またはパーティションサイズを持たなければならないと思います、それは原則として可能であるべきであることを示唆しますファイルのどこかで数バイトをいじってこれを修正します。しかし、どのファイルですか?それとももっと複雑なものがありますか?

役立つ場合は、Windowsに対応するGRUB2構成セクションを以下に示します。

menuentry 'Windows 7 (loader) (on /dev/sdb3)' --class windows --class os $menuentry_id_option 'osprober-chain-1F9948EB30A986A0' {
        insmod part_msdos 
        insmod ntfs
        set root='hd1,msdos3'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos3 --hint-efi=hd1,msdos3 --hint-baremetal=ahci1,msdos3  1F9948EB30A986A0
        else
          search --no-floppy --fs-uuid --set=root 1F9948EB30A986A0
        fi
        chainloader +1
}

繰り返しますが、私が探しているのは、理想的には、Windowsを再インストールせずにこれを修正する方法です。それが不可能な場合、再インストールは許容可能なプランBですが、私はそれを自分で処理できます。


Windows 7インストールDVDを使用して修復環境を起動したときのコマンドプロンプトセッションのトランスクリプトを次に示します。読みやすくするために、いくつかの空白行を削除しました。以下は、他のすべてのドライブdisconnectedの場合です:

>bootrec /fixmbr
The operation completed successfully,

>bootrec /fixboot
The volume does not contain a recognized file system.
Please make sure that all required file system drivers are loaded and that the volume is not corrupted.

>bootrec /scanos
Scanning all disks for Windows installations.
Please wait, since this may take a while...
Successfully scanned Windows installations.
Total identified Windows installations: 1
[1]  C:\Windows
The operation completed successfully.

>bootrec /rebuildbcd
Scanning all disks for Windows installations.
Please wait, since this may take a while...
Successfully scanned Windows installations.
Total identified Windows installations: 1
[1]  C:\Windows
Add installation to boot list? Yes(Y)/No(N)/All(A):y
The volume does not contain a recognized file system.
Please make sure that all required file system drivers are loaded and that the volume is not corrupted.

>sfc /verifyonly /offwindir=C:\Windows /offbootdir=C:\
Beginning system scan.  This process will take some time.
Windows Resource Protection did not find any integrity violations.

>chkdsk C: /F
The type of the file system is NTFS.
Volume label is windows.
CHKDSK is verifying files (stage 1 of 3)...
  313344 file records processed.
File verification completed.
  1684 large file records processed.
  0 bad file records processed.
  2 EA records processed.
  158 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
  416370 index entries processed.
Index verification completed.
  0 unindexed files scanned.
  0 unindexed files recovered.
CHKDSK is verifying security descriptors (stage 3 of 3)...
  313344 file SDs/SIDs processed.
Security descriptor verification completed.
  51514 data files processed.
CHKDSK is verifying Usn journal...
  35406088 USN bytes processed.
Usn Journal verification completed.
Windows has checked the file system and found no problems.
 207510871 KB total disk space.
 104134880 KB in 251224 files.
    137304 KB in 51514 indexes.
         0 KB in bad sectors.
    423075 KB in use by the system.
     65536 KB occupied by the log file.
 102815612 KB available on disk.
      4096 bytes in each allocation unit.
  51877717 total allocation units on disk.
  25703903 allocation units available on disk.
Failed to transfer logged messages to the event log with status 50.

>diskpart
Microsoft DiskPart version 6.1.7600
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: MININT-P92LVUL
DISKPART>list disk
  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          596 GB      0 B
DISKPART>select disk 0
Disk 0 is now the selected disk.
DISKPART>list part
  Partition ###  Type              Size     Offset 
  -------------  ----------------  -------  -------
  Partition 1    Primary             62 MB    31 KB
  Partition 2    Primary            398 GB    62 MB
  Partition 3    Primary            197 GB   398 GB

接続したすべてのドライブで同じコマンドを実行すると、出力は同じになりますが、diskpartはすべてのドライブを正しく表示し、問題のWindowsパーティションのドライブ文字はDではなくCになります(NTFSデータパーティションがあるため)ドライブ#1)。

bootrec /fixmbrはドライブ#2のMBRを上書きし、そこに置かれたMBRをGRUB2で置き換えます。そのディスクから起動しようとすると、0xc0000225エラーの代わりに「オペレーティングシステムが見つかりません」というメッセージが表示されます。その後、Linuxを起動してgrub-installを使用してGRUB2 MBRを戻し、GRUB2でWindowsオプションを選択すると、再び0xc0000225が得られます。

15
David Z

使用される方法に応じて、進行中に特定のものが変わる可能性があります。

パーティションの詳細:パーティションを再度アクティブにするには、 diskpartではactive を使用します。

ブートセクタbootsect ツールを使用してブートセクタを復元できます。 (例:bootsect /nt60 C:

パーティションのUUID:パーティションの位置やサイズを変更すると、UUIDが変わります。したがって、BCDに格納されているアクセスできないUUIDは、パーティションのUUIDと一致しません。これを修正するには、を削除して次のようにBCDを再構築します。

bcdedit /export C:\boot\bcd.backup
ren C:\boot\bcd C:\boot\bcd.old
bootrec /rebuildbcd
11
Tamara Wijsman

あなたは、あまりにも多くのWindowsパーティションを減らすことによって問題を引き起こしたかもしれません。

Windowsには、サードパーティ製品によって移動される可能性がある移動不可能なファイルがいくつかあります。将来的にはWindowsのディスクマネージャを使ってパーティションのサイズを変更してください。ディスクが壊れることはありません。特別なWindowsファイルの数を最小限に抑えるために、最初にごみ箱をオフにして空にし、ページングファイルと休止状態を無効にして、すべてのファイルを最初の方に圧縮するデフラグツールを実行するディスク。

とは言っても、Windows 7を修復するために 修復インストールを実行できます 。このマイルドな形式のインストールは、現在インストールされているWindows 7を修正し、ユーザーアカウント、データ、プログラム、およびシステムドライバを保存します。リンクされた記事はスクリーンショットと詳細にプロセスを説明します。あとでGRUB2ブートセクタの破壊に対処しなければならないかもしれません。

修復インストールが機能しない場合は、GpartedによってWindowsパーティションが破壊されています。そうでなければ データ回復ユーティリティ に頼らなければならないかもしれないので、私はあなたがこの場合バックアップを持っていると思います。

3
harrymc

私は私がWindows 10にアップグレードしようとしたときに私のコンピュータ上で同様の問題(同じエラーコード0xc0000225)を持っていました

問題はまだ私のドライブの1つに残っている空のEFIパーティションから来ました。起動時に、コンピュータは2つのEFIパーティションを見つけます。1つは私のメインOSから、もう1つは数ヶ月前にアンインストールした古いOSに対応します(私は最初のハードドライブからSSDに移動し、すべてをフォーマットしました)

多分それはまたあなたの問題です。私はあなたのために2つの解決策を持っています、それがうまくいくことを願っています:

  • コントロールパネルでコンピュータを管理し、無駄なEFIパーティションを見つけて削除します。
  • Windowsのインストールサポート(MicrosoftのWebサイトからウィザードをダウンロードして作成できます)を使用してコンピューターを実行し、インストールプログラム、詳細設定を実行し、すべてのボリュームが表示されたらEFIパーティションを見つけて削除します。

私はまたWindowsを再インストールしました、しかしあなたが悪いEFIパーティションを削除すればそれで十分でしょう。

それ以来、起動時にこれ以上問題なく、私のコンピュータはW10などをインストールすることができます。

私があなたがクリックしなければならないものの正確な名前をあなたに与えないならば申し訳ありません、私のOSはフランス語です^^

1
Ziiik