お客様より、リカバリーの依頼。
Windows10の更新プログラムをインストールし、再起動したら、いきなり「Recovery」で始まる画面(図1)が出てきてしまいそれからまったく進まない状態になっていました。
LiveCD(Ubuntu14.04)でブートしてGpartedを見ると、パーティションが7つほどあります。殆どが500MB以下のものばかりです。Cドライブと思われるパーティションのみが100GBほどあります。
復旧したあとディスクの管理で確認してわかったのですが、小さいものはすべて回復パーティションでした。おそらく、購入してWindows10にアップデートしたときにできたのでしょう。それにしても、多すぎるのでは?と不思議に思います。
さて、Toshiba製なので、ブート後”0”キーを連打して、リカバリーメニューを表示させて、回復を試みましたが、図にあるようにすべてが失敗しました。
ことごとく、失敗します。
なお、リカバリー前に、ハードディスク内容は丸ごとバックアップしています。もちろん、リカバリー領域も含みます。さらに、S.M.A.R.T.でハードディスクにエラーがないことも確認します。
先ほどのパーティションの数の多さが気になりました。おそらく、リカバリー領域からリカバリーデータを読み込んで復元先のパーティションを読み込む、探索するときにパーティションの構成が購入時と変わったことで、失敗しているのではと推測しました。
つまり、不要なパーティションを削除して購入状態の構成に戻せば、リカバリー領域から復旧できるはずです。が、Windowsが起動しないのですからパーティションの確認も削除できません。
そこで、バックアップイメージを別の外付けのUSBハードディスク(お客様提供のバックアップ用ディスク)に展開し、システムのクローンを作成し、それを異なるWindowsPCに接続して構成を見ました。回復パーティションだらけです。(初めて見ました。こんなに多数の回復パーティションを。)
ちなみに、「PCを初期状態に戻すことができません。必要なドライブパーディションが見つかりません。」で検索すると、東芝のサイトがヒットしました。そこには、Windows上からシステムの回復を実行するかリカバリーメディアから実行することが推奨されていました。そうです、リカバリー領域からのリカバリーは不可能なようです。
そもそもどのパーティションが購入時に作成されていたものか見極めるのは簡単ではないようです。それらしいものを見極めて削除して正常に動作するかテストする必要があります。しかし、かなり時間がかかりそうです。
ここで、あらためて、最初の「Recovery」画面を見ます。
「The Boot Configuration Data is missing…..」
とあります。つまり、BCDが無い、壊れているようです。
それなら、BCDを再構築すれば良いので、先ほどのリカバリーメニューからコマンドプロンプトを開いてここに紹介されていたコマンドを投入してみました。
diskpart
DISKPART> list volume
形式(Fs)がFAT32のパーティションを探します。
Volume 2でした。
DISKPART> select volume 2
ドライブレターをつける(削除する場合はRemove)
DISKPART> assign letter=b:
DISKPART> exit
cd /d b:\EFI\Microsoft\Boot\
ren BCD BCD.bak (念のためバックアップする。エラーが出ても気にしない)
bootrec /fixboot (システム パーティションに新しいブートセクターを書込む)
bcdboot c:\Windows /l ja-JP /s S: /f ALL
bootrec /rebuildbcd
このとき、「Windows のインストールとして認識された合計数:0 」と表示され、Windowsを見つけることに失敗しているようです。BCDは再構築できませんでした。list volumeで、Windowsのインストールディレクトリがc:と表示されているにもかかわらず、Windowsを見つけることができんのです。?です。
追記開始=====================================================
復旧後気づいたのですが、ここにあるようにBCDの属性を編集可能な状態にしておけばよかったのかもしれません。確かめていないのであくまでも推測です。
※bcd storeをバックアップ
bcdedit /export c:\bcdbackup
※bcdファイルの権限変更
attrib c:\boot\bcd -h -r -s
※bcdファイルをリネーム
ren c:\boot\bcd bcd.old
※再構築
bootrec /rebuildbcd
======================================================追記終了
次に、BCDを作成します。
再起動するとb:のアサインが消えています。再度、上記の方法でvolume 2にb:をアサインしておきます。
cd b:\EFI\Microsoft\Boot
bcdedit /createstore BCD
bcdedit /store BCD /create {bootmgr} /d “Windows Boot Manager”
bcdedit /store BCD /create /d “Windows 10” /application osloader
※エントリ {xx….xxx} は正常に作成されましたの {xx….xxx} をコピーしておく
(コマンドプロンプトのウィンドウ最上部(グレー部)を右クリック>編集>コピーを利用。同様に、貼り付けも使えます。)
bcdedit /store BCD /set {bootmgr} default {xx….xxx}のようにセットします。
例:{40fe5c41-285e-412b-b4cd-0ce498e470a2}なら
>bcdedit /store BCD /set {bootmgr} default {40fe5c41-285e-412b-b4cd-0ce498e470a2}
>bcdedit /store BCD /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
>bcdedit /store BCD /set {bootmgr} locale ja-jp
>bcdedit /store BCD /set {bootmgr} displayorder {default}
>bcdedit /store BCD /set {bootmgr} timeout 10
>bcdedit /store BCD /set {default} device partition=c:
>bcdedit /store BCD /set {default} osdevice partition=c:
>bcdedit /store BCD /set {default} path \windows\system32\winload.efi
>bcdedit /store BCD /set {default} systemroot \windows
>exit
PCを再起動します。これで、無事に起動しました。sfc /scannowをしてもエラーはありません。ハードディスクのエラーもないので問題なしと判断しました。念の為に、WordとExcelで文書の作成と保存を確認しておきます。まれに、Cドライブの書き込みが拒否されることがあります。ユーザプロファイルが壊れていたりするからでしょうが、その場合は、また原因をさぐり、対処します。
※※要注意:リカバリー画面で「自動修復」をクリックすると再び、失敗し、BCDが壊れてしまいます。そして、最初の「Recovery」画面が表示されてしまいます。
原因は、多数存在する回復パーティションで、パーティション構成が変わったことによるものでしょう。
先ほどの手順で、もう一度BCDを作りなおして起動させました。したがって、ハードディスク内のリカバリー領域からのリカバリーは使えません。
この、複数の回復パーティションによる不具合の件も含め、お客様にはこの状況を説明して、現状Windowsは問題なく使えるので良しということで作業を完了しました。
今回は、お客様のPCで不要とされる回復パーティションを削除することはしませんでした。理由は、最悪リカバリー領域が読み取れなくリスクも考えられたので中止しました。(もし、チャンスがればぜひ、回復パーティションを削除してリカバリー領域から復旧してみたいと考えております。)
もし、リカバリーディスクまたはリカバリーメディアがあれば、東芝のサイトもそれを推奨しているように、それらからブートしてリカバリーできたはずです。これをお読みの皆さまへアドバイスです。リカバリーメディアを作成しておきましょう。
作成方法は、コントロールパネルから「回復」をクリックして指示にしたがうか、メーカー製のリカバリー作成ツールを使うかです。