ホーム > 未分類 > dosparaのdiginnosのプリインストールされたWindowsを消したらリカバリで詰みかかった

dosparaのdiginnosのプリインストールされたWindowsを消したらリカバリで詰みかかった

このマシン、Windows領域が完全に壊れたら詰むんじゃねーの・・・と思った事案。
研究室で使用中のマシンで一時的にWindowsを消してFedoraを入れていたのですが、
いざWindowsに戻そうとしたらリカバリ環境が上がってこなくなりました。

以下の手順は大変危険です。真似をしてリカバリ領域が完全に壊れてもしらないよ!

さて、原因の分析から。bootmgr用の領域、リカバリ領域はそのまま残してあったのでブートローダ周りだろう。
手元にFedoraのUSBメモリを用意して戦闘開始。

1. とりあえずMBRのgrub stage1を消して標準のブートローダを書きます。syslinuxのmbr.binがそれです。
# yum install syslinux
# dd if=/usr/share/syslinux/mbr.bin of=/dev/sda

2. パーティション1のbootフラグを立てます。
# parted /dev/sda
(parted) set 1 boot on
(parted) quit

ここでreboot。bootmgr曰く「\windows\system32\winload.exeがないよ」とのこと。そりゃそうだ。
本来はここでF8を押した時のオプションにリカバリの設定がでてくるはずですが、それがありません。
イメージは存在している、bootmgrも正常なのにありもしないC:\windows\system32\winload.exeを読みに行こうとして死にます。

3. じゃあBCDをいじろう・・・まじでいってんの?
ここで問題が発生します。BCDはboot.iniと違ってレジストリハイブ形式なので人間が見るものではありません。
動いている別のWindowsマシンに持って行って、bcdeditを使って編集します。
bcdedit /store x:\bcd とすると任意のファイルをbcdeditを使って書き換えることができます。
3-1. 再度FedoraのUSBメモリから起動、sda1をマウントしてBoot/BCDを別マシンに投げ込みます。
3-2. bcdedit /store filename /enum all で全部のブートエントリを表示し、Windows Recovery Environmentを探し、そのidentifierをコピーします。
3-3. bcdedit /store filename /set {default} recoverysequence {コピーしたidentifier} でWindowsの通常起動メニューにリカバリエントリを関連付けます
3-4. bcdedit /store filename /set {default} recoveryenabled yes でリカバリモードが存在することを教えます
recovery系設定の参考にしたのはここ
3-5. 起動時にF8→詳細オプションでRecovery的な選択肢が出てくるので選ぶとREが起動してきます。

4. リカバリ先のディスクがないと怒られたのでfedoraの領域を削除して作り直し
> diskpart
> select disk 0
> select partition 3
> delete partition
> select partition 4
> delete partition
> select partition 5
> delete partition
> select partition 0
> delete partition
> create partition primary
> select partition 3
> format fs=ntfs quick label=”Windows”

5. リカバリ開始!

と、このような手順を踏むと無理やり起動できました。
bcdedit /storeの任意ファイル編集機能は普通に/?するだけでは出てこないようなので覚えておきましょう。

広告
カテゴリー:未分類
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。