技術

Windows 8.1でシステムイメージの作成が失敗するようになったけど解決した

こちらはほぼ試行錯誤のログのみの記事です。解決方法についてはこちらの記事の後半を参照。

OSはWindows 8.1 Pro 64bit版。
最近ほぼ完全にMacを卒業しまして、Windows(とVMwareで動くFedora 22)をメインとして使用しています。
メインで使うとなるとバックアップもそれなりにとっておきたいので、Windowsに元々備わっているシステムイメージバックアップの機能を使っています。
で、これまで何度かバックアップしたときには全く問題がなかったんですが、Cドライブを別のストレージに交換してからバックアップに失敗するようになってしまいました。

現象としては以下のページと同じく、CHKDSK /Rしろっていうエラーメッセージが出るパターンです。
Windowsの「システムイメージの作成」が失敗する場合の対処方法(エラー0x8078012D、0x8007045D)

バックアップに成功していたときのストレージ構成は以下のとおり。

  • Cドライブ: 500GBのHDD(SSHD ST500LM000)
  • Dドライブ: 1TBのHDD(WD10EADS-00M2B0) + 64GBのSSD(IRST最速モードC400-MTDDAC064MAM)
  • Eドライブ: 2TBのHDD(WD20EARS-00MVWB0)

バックアップに失敗するようになったストレージ構成は以下のとおり。

  • Cドライブ: 512GBのSSD(CT512MX100SSD1)
  • Dドライブ: 1TBのHDD(WD10EADS-00M2B0) + 64GBのSSD(IRST最速モードC400-MTDDAC064MAM)
  • Eドライブ: 2TBのHDD(WD20EARS-00MVWB0)

バックアップ元はCドライブとDドライブで、バックアップ先はEドライブです。
CドライブのストレージがHDDからSSDに変わっただけです。
交換手順は以下のとおり。

  1. PCから500GBのHDDを取り外す。
  2. 取り外した500GBのHDDと512GBのSSDの両方を別のLinuxマシンに繋いでddrescueでイメージコピー。
  3. SSDをPCに取り付ける。
  4. PCを起動したらディスクの管理でCドライブのパーティションをHDDとSSDの容量の差である12GB分ほど拡張する。

で、原因は多分Cドライブにあるんだろうなと思ったんですがDドライブもIRST使ってるのでちょっとあやしいということで、何度かCドライブとDドライブにCHKDSK /Rをかけてみましたが問題は解決しませんでした。

もしかしてEドライブかなと思い、そちらもCHKDSKしたり、全ストレージのS.M.A.R.Tの値を確認してみたりしましたが、特に問題ない様子でした。

システムイメージの作成のGUIでは進捗状況がよく分からないので以下のコマンドで同じことをやってみることに。
(今回の場合DドライブにもProgram Filesの一部が入ってるため、これだけでCドライブとDドライブがEドライブにバックアップされます。)

wbadmin start backup -backupTarget:E: -allCritical -vssFull

この方法でバックアップを開始すると、どのドライブをどの程度コピーしたかが、パーセント表記で随時表示されるため、GUIより進捗状況が分かりやすいです。

するとCドライブのコピーが99%まで進んでから失敗していることが判明。
Cドライブのそれも最後に問題があるようです。

これで引っかかるのが上記交換手順の4。
この手順を元に戻してみたらどうだろうと思ってやってみました。
ただ元に戻すといっても元のCドライブのパーティションの厳密なサイズを調べるのが面倒だったので、てきとーに12GBほどディスクの管理でパーティションを縮小してみました。
するとなんと、バックアップでエラーが起きなくなりました。

今のところここまでしか調べてないので、最終的な原因は分かりません。
個体差でSSDが最後の方のセクタに問題を抱えてるのか、ディスクの管理のパーティションの拡張に問題があるのか、それらに問題がなくてもシステムイメージの作成が判定をミスるパターンがあるのか…

12GBも無駄にしたままじゃちょっともったいないので、少しずつ拡張しながらどのあたりが成功失敗の分かれ目なのか確認していきたいなと思います。
(なんせ合計1.5TB分のバックアップは時間がかかるので、そう簡単に確認ができない…)

直接関係ないけど気になったところ

CHKDSK /Rの結果ってどこに残るのだろう?
システムドライブをCHKDSK /Rする場合、オンラインでは出来ないので次回起動時に実行という事になるけど、そうした場合イベントログに結果が残ってないように見える。
普通にオンラインでCHKDSKした場合にイベントログに結果が残るのは確認したけど。
まぁ、システムドライブのオフラインチェックの結果をシステムドライブに残すのって不可能ではないと思うけどちょっと無茶感あるので、出来ない仕様なのかもしれない。
起動時CHKDSK /Rの結果は、イベントビューアーのWindowsログのApplicationのソースWininitで確認できました。

それと起動時のCHKDSK /Rって一応パーセント表記で進捗のようなものが表示されるけど、十数パーセントで止まったまま処理が続行してて、パーセント表記があまり意味をなしてないように見える。

このあたり別のWindowsマシンにつないだりしてCHKDSK /Rすれば進捗も結果も見れるとは思うけど。

コメント

コメントを残す

メールアドレスが公開されることはありません。



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください