ブートファイルをコピーしようとして、エラーが発生しました
ブートローダーをあるドライブから別のドライブに移そうとしたとき、ハマったのでメモとして残します。
はじめに
以前、「BOOTMGR is missing」となったらスタートアップ修復すればいい、という記事を書きましたが、「スタートアップ修復できませんでした」となったときの対処法が今回の記事になります。
Windowsが自動で回復できないような場合は、手動でブートローダーの情報を回復させるしかありません。この記事は次のような想定で書いています。
回復が必要となるブートローダーの情報は次の2つのファイルです。(CドライブをブートドライブにしたいのでドライブレターはC:)
- C:\bootmgr
- C:\boot\bcd
対象者
MBRの修復やブートローダーの修復(bootsect /nt60 sys /mbr やら bootrec /fixboot やら)を色々と試してみたけど、「ブートファイルをコピーしようとして、エラーが発生しました」と言われてお手上げの方。
作業手順
- DVDまたはUSBメモリ(Windows7 インストーラー)から起動する
- Shift + F10 でコマンドプロンプトに入る
- diskpart で Cドライブをアクティブにする
(データ的に問題がないようなら一度Cドライブをフォーマットし直す、ごみが残っていると上手くいかないかも)
> diskpart
# すべてのドライブレターを確認する
DISKPART> list volume
# ディスク番号を確認する
DISKPART> list disk
# Cドライブのあるディスクを選択する
DISKPART> select disk 0
# パーティションを確認する
DISKPART> list partition
# Cドライブのあるパーティションを選択する
DISKPART> select partition 1
# データ的に問題ならパーティションを初期化する(スキップ可能)
DISKPART> delete partition override
DISKPART> create partition primary
DISKPART> format quick fs=ntfs label="System"
DISKPART> assign letter="C"
# アクティブに指定する
DISKPART> active
DISKPART> exit - bcdbootコマンドでブートローダーの情報を回復させる
# C:\bootmgr, C:\boot\bcd がすでに存在している場合は削除しておく
# パーティションを初期化した場合、この手続きは不要
> c:
> del bootmgr
> del boot\bcd
> bcdboot d:\windows /l ja-JP /s c:
bcdboot の第1引数でwindowsがインストールされているドライブのwindowsディレクトリを指定し、/s スイッチで ブートローダーを置くドライブを指定する。このあたりが味噌になりそうです。 - インストールメディアを安全に取り外して、再起動する