ブートファイルをコピーしようとして、エラーが発生しました

ブートローダーをあるドライブから別のドライブに移そうとしたとき、ハマったのでメモとして残します。

 

はじめに

以前、「BOOTMGR is missing」となったらスタートアップ修復すればいい、という記事を書きましたが、「スタートアップ修復できませんでした」となったときの対処法が今回の記事になります。

 

tuttitan.hatenablog.com

 

Windowsが自動で回復できないような場合は、手動でブートローダーの情報を回復させるしかありません。この記事は次のような想定で書いています。

f:id:tuttitan:20161027221928p:plain

回復が必要となるブートローダーの情報は次の2つのファイルです。(CドライブをブートドライブにしたいのでドライブレターはC:)

  • C:\bootmgr
  • C:\boot\bcd

 

対象者

MBRの修復やブートローダーの修復(bootsect /nt60 sys /mbr やら bootrec /fixboot やら)を色々と試してみたけど、「ブートファイルをコピーしようとして、エラーが発生しました」と言われてお手上げの方。

 

作業手順

  1. DVDまたはUSBメモリWindows7 インストーラー)から起動する

  2. Shift + F10 でコマンドプロンプトに入る

  3. 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
     
  4. 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 スイッチで ブートローダーを置くドライブを指定する。
    このあたりが味噌になりそうです。

  5. インストールメディアを安全に取り外して、再起動する

 

 

参考Webページ