アフィリエイト広告を利用しています

macOS Mojaveの最新記事

【Parallels Desktop】仮想ディスクは壊れることを前提とした運用方法

Parallels 14のPro版使っています。Windows10Pro仮想マシンのpvmにあるWindows10.hddファイルがダメージを受けてしまい、Windows10Proが正常に起動しなくなりました。仮想ディスクは壊れるリスクがありました。
この記事では仮想ディスクが壊れた操作、仮想ディスクからの重要データの取得方法、Parallels Desktop 14で動作している仮想マシン(仮想ディスク)が壊れることを前提とした運用方法の一つがわかります。

【目次】


【環境】
Parallels Desktop 14 for Mac [Pro Edition] Version 14.1.0(45387)
macOS Mojave 10.14.2
MacBook Pro 15inch Mid2015
仮想マシンのOSは、Windows10 Pro(October 2018 Update適用済み)です。
仮想マシンは、Macintosh HD ~/parallels/Windows10.pvmに配置しています。

Windows10Proが正常に起動しなくなったParallelsの操作


きっかけは、macOSにPARALLELS DESKTOPから通知されたメッセージでした。
macOSの通知に残っていたParallels Desktopの通知。ディスク領域を解放 Parallels Desktopで、Mac上のディスクスペースの20.95GBを解放できません。とメッセージが残っていた

「ディスク領域を解放
 Parallels Desktopで、Mac上のディスクスペースの20.95GBを解放できません。」
以前も通知があったのですが、気にしませんでした。今回ふと20.95GBという容量に目が止まり、一旦Windows10Proをシャットダウンし、Parallels Desktopから「再利用」で復旧させました。

この「再利用・・・」操作をきっかけにこれからご紹介するようなことが起き、Macintosh HD内にある仮想マシン、仮想ディスクがダメージを受けました。通常は「再利用・・・」操作でも問題は起きません。
今回、再利用中に、macOS Mojave 10.14.2が無応答になってしまい、30分待っても無応答なので、仕方なく強制電源OFF(電源ボタン長押し)しました。
Q. macOS Mojave 10.14.2が無応答とは?
A. pingは通りました。画面も止まる直前の状況です。マウスカーソルは反応します。Finderをアクティブにする操作、メニュークリック、キー入力やウィンドウの切り替えなど一切反応しない状況です。

macOS再起動後、Parallels DesktopのWindows10Pro起動せず、またmacOS無応答・・


macOSは正常に起動できました。ホッとしました。Parallelsを立ち上げたところ、自動的に最後の処理を行っているような感じです。「コントロール センター」が表示されずに、このスプラッシュウィンドウがずっと表示さていました。おぉ自動回復してくれるのかよかった^^と待ちます。
broken-parallels-2.jpg

アクティビティモニターで確認したところprl_disk_tool?というプロセスが100%近い稼働状況でした。

しばらく待って、ふと気がつくと・・・macOSが固まっていました。
待ってもおそらく解決しないと思われるので、電源ボタン長押しで強制終了しました。
・・・・

再度のmacOS再起動後、Parallels DesktopのWindows10Pro起動しなくなりました


macOSは正常に起動しました。ログインするとDock上のParallels Desktopには「・」が付いていました。起動中っぽいですが、待っても何も表示されません。Parallels Dekstopをクリックしたところコントロールセンターが表示されました。
構成、一般の「再利用・・・」を実行したところ、一瞬で終わります。
よかった!
Windows10Proを起動します。
ParallelsからWindows10を実行したところ「Windows 10が使用するハードディスク 0の読み取りまたは書き込み時に、致命的なエラーが発生しました。」でWindows10が実行できない際に表示されるメッセージがわかる

"Windows 10"が使用するハードディスク 0の読み取りまたは書き込み時に、致命的なエラーが発生しました。
今度は自分が固まりましたよ・・・
再試行を何度か実行してみました。結果は同じです・・・

直前まで正常に動いていたWindow10 Proは壊れてしまったようです。

何が壊れたの?仮想マシン?仮想ディスク?ストレージ?


メッセージに提案された「Macのディスクのエラーと不整合を確認します。」とは、ディスクユーティリティのFirstAidのことだったので、First Aidを実行してみます。これで直って欲しい!
ディスクユーティリティの結果、fsroot tree is invalidでfsckが完了していなかったことがわかる

正常に終了しています。 と思っていました。でもよくみてみるとerror:invalid file extent (id 0x...) logical address ... (expected ...)、fsroot tree is invalidThe volume /dev/rdisk1s1 could not be verified completely.で途中で終わっている感じです。これリカバリーできているの?できていませんでした。

macOSがアクティブな状態でFirst Aidを実施したことで回復できない状況かもしれない。と思い、シングルユーザーモード(Command + S)でfsckを実行しました。ディスクユーティリティと同様でfsroot tree is invalidで回復できませんでした。

=>最終手段のfsckでも回復できない。ストレージに異常があることがわかりました。

仮想ディスクからの重要データの取得方法


仮想マシンが起動できなくても、マウントできるParallels Mounterツールが使えます。fsroot tree is invalidの状況なので厳しいかも?macOS Mojaveが落ちました。勝手に再起動しましたよ。

軽く絶望しました。

Parallels Mounterで落ちた要因


マウントはできました。

[C]、[D]、[E]の3つのドライブがマウントされました。ブートドライブ、Cドライブ、回復ドライブの3つがマウントされるようです。

dfコマンドで確認した結果はこのようにドライブ名が分かりにくいようになっています。
$df 
//guest:@%5BC%5D%20Windows%207-0._smb._tcp.local/%5BC%5D%20Windows%207-0.... /Volumes/.PEVolumes/PEVolume{606d9338-...}
//guest:@%5BD%5D%20Windows%207-0._smb._tcp.local/%5BD%5D%20Windows%207-0.... /Volumes/.PEVolumes/PEVolume{de2293bd-...}
//guest:@%5BE%5D%20Windows%207-0._smb._tcp.local/%5BE%5D%20Windows%207-0.... /Volumes/.PEVolumes/PEVolume{b5c30ff1-...}

ターミナルからは、/Volumes/.PEVolumes/PEVolume{de2293bd-...}/でアクセスすることができます。
後から考えるとターミナルからやればよかったなぁと思います。

Finderを使って、必要なデータのバックアップを試みていました。細かくファイルをコピーするのが面倒だったので圧縮できないかなぁと思い、別ボリュームへ直接圧縮ってできるのかぁと調べるつもりで・・・
痛恨のミスをしました。
間違って壊れているかもしれないマウント中のCドライブに対して圧縮操作をしてしまいました。書き込みイベントを発生させていまいました。

=>この操作でmacOSは落ちました・・・

Parallels Mounterでマウント中の仮想ディスクへの書き込みで落ちた原因は、
First Aidでinvalidになっている領域へ書き込みが発生し、なんともできなくて落ちたと推測しています。

Finderでの操作では1つのZIPファイルを作る操作ですが、仮想ディスク全体の書き込みにつながります。


macOS再起動後、Parallels Mounterでマウント、ターミナルから必要なデータをコピーしました。

fsroot is invalidの原因ポイントに仮想ディスクがある際に困ったこと


壊れているけどマウントで内容を読み取ることができました。そのため、バックアップを取っておこう!って思うじゃないですか。これ失敗しました。

・cp -pr で別ドライブへpvmをコピーしたんですが、result too largeと意味不明のエラーでコピーコマンドが失敗します。
・md5コマンドでWindows10.pvm内にあるhddファイルをチェックしたところ、こちらもresult too largeと意味不明のエラーで失敗しました。

唯一成功したのは、tarコマンドでまとめる方法でした。
tar cvzf /Volumes/xxx/broken-windows10-pvm.tar.gz ./Windows10.pvm ってやったらエラーなく終了しました。

落ちない仮想ディスクからの重要データの取得方法


今回の場合、ストレージに異常があるポイントがParallelsの仮想HDDにぶち当たっていました。こういった事態では、正常にマウントできないこともあり得るし、ちょっとしたミスでmacOS自体が落ちてしまうこともわかりました。

先ほど、tarでまとめることができたpvmを解凍し、このpvmをマウント(Parallels Mounter)することで書き込みしても大丈夫な環境ができました。まるまるHDDが残っている状況なので、あの時コピーしておけばよかったが防げますよ^^。

外付けSSD、HDDを活用するのがオススメです。

Windows10の何が壊れていたの?


再利用中にmacOS自体がデットロックし、ParallelsにWindows10のHDDが壊れていると判断されています。具体的に何が壊れているのか?ログで確認するような手段はありませんでした。

先ほど、tarでまとめたpvmを解凍するとマウントできますってご紹介しました。これを使ってWindows10が起動できました!

tarで解凍したpvmをFinderから開きます。(または、ターミナルでopenコマンド)
この操作でParallelsのコントロールセンターに追加できます。

でも、正常に起動はできません。回復ドライブで起動されました。
致命的なエラーが検出されたWindows10.pvmをParallelsで起動すると「自動修復を準備しています」と通常の起動ではないメッセージが表示されています。
致命的なエラーが検出されたWindows10.pvmをParallelsで起動すると「自動修復を準備しています」と通常の起動ではないメッセージを確認できる


「ディスクのエラーを確認しています。完了するまで1時間以上かかる場合があります。」と表示され、ひょっとして直るじゃないかと期待が高まります。pvm名が(1)に変わりました。
「ディスクのエラーを確認しています。完了するまで1時間以上かかる場合があります。」が確認できる


しばらくすると自動修復「自動修復でPCを修復できませんでした。」と回復できなかった悲しい通告を受けました。
自動修復「自動修復でPCを修復できませんでした。」が確認できる

この画面では、シャットダウンと、詳細オプションが選べます。ログファイルの内容はこちらです。

詳細オプションをクリックすると「続行」、「トラブルシューティング」、「PCの電源を切る」選択が表示されます。
broken-windows10-3-1.jpg


「トラブルシューティング」をクリックすることで「システムの復元」、「以前のバージョンに戻す」、「イメージでシステムを回復」、「スタートアップ修復」、「コマンドプロンプト」、「スタートアップ設定」が選べます。
broken-windows10-3-2.jpg


「システムの復元」=>システムの復元ポイントを取っていなかったので無意味でした。
「以前のバージョンに戻す」=>これは試していません。
「イメージでシステムを回復」=>これは試していません。
「スタートアップ修復」=>何度やっても効果はなかったです。
「コマンドプロンプト」=>コマンドプロンプトが表示されます。
「スタートアップ設定」=>セーフモードで起動できます。セーフモードで起動すると真っ青の画面で進みませんでした。

壊れたWindows10.pvmは復旧できるの?できませんでした。


軽く試してダメだったら諦めた方が時間の節約になりますよ。
自動修復でできなかった理由は、コマンドプロンプトを開いてtypeコマンドを利用することで確認することができます。
type D:\WINDOWS\System32\Logfiles\Srt\SrtTrail.txt

broken-windows10-4.jpg

見つかった根本的な原因:
ブートの重要なファイル d:\boot\resources\custom\bootres.dllが壊れています。

自動修復で実行されているこのコマンドプロンプトはXドライブで実行されています。Windows PEです。
回復パーティション、Windowsパーティション、ブートパーティションの3つがマウントされていました。WindowsのドライブはD:ドライブです。

ブートの重要なファイルのd:は、一体どこをさしているのか?全てのドライブを探してみましたが、そのようなパスのbootres.dllはありませんでした。Windowsをブートする際の流れは進化しているので詳しくわかりませんでした。

このbootres.dllファイルの異常に関するパスは、Windowsのバージョンによってパターンがあるようです。
またbootres.dllファイルが壊れていると言っても実は、レジストリファイルが壊れていることもあるようです。つまりこのログファイルの原因では何をすべきなのかよくわからないというのが実情でした。

chkdskでWindowsドライブをチェックしてみましたが、エラーはありませんでした。
broken-windows10-5.jpg


よくある解決策の一つsfcコマンド(システムファイルチェッカー)=>Windows PEでは実行できません。
よくある解決策の一つdism /Onlineコマンド=>Windows PEでは実行できません。
dism /Imageの場合、Cleanup-ImageやRestorehealthオプションの指定ができません。使えないんです。

時間をかけて情報を漁り、何それそんなこともできるの?と興味深い情報なども色々試してみました。=>いずれの解決策も今回の件には該当しませんでした。

Parallelsの仮想マシン(仮想ディスク)は通常バックアップする必要がないと思っていました。今回の経験を通じてこれからMac野郎なのかが実践する予定の仮想ディスクは壊れることを前提とした運用方法をご紹介します。

仮想ディスクは壊れることを前提とした運用方法


基本方針は、「Windows10.pvmを別ストレージにコピーする」です。100GB以上のストレージが必要です。
コピーする契機は2つです。
1)Windows10へ新たにソフト、アプリをインストールした。
この状態を保持したいと思ったら、Windows10をシャットダウンし、別ストレージへWindows10.pvmをコピーします。
2)ディスク領域の再利用を実行する前
ディスク領域の再利用を実行する前に、別ストレージへコピーします。

壊れた状況になったらこのコピーしたPVMを使うようにすることでWindows10リカバリーに掛かる時間を大幅に減らすことができます。

異論は色々あるかと思います。例えば・・・

バックアップするべきは全部じゃなくて一部のファイルだけでは?


Windows10が起動しなくなってもクリーンインストールすれば復活できます。ただこの方法時間がかかります。Windowsをクリーンインストール、普段使っているソフト・アプリのインストール、初期設定・・・数時間はかかりそうです。一部ファイルだけのコピーではこの時間を削減できません。
=>Windows10.pvmを丸ごとバックアップするのが簡単で、漏れがない

丸々バックアップするならTimeMachineでも良いのでは?


ParallelsでWIndows10動作中、停止中にかかわらずTimeMachineは実行されます。バックアップで保証されるのはWindows10停止中の状態のものだけです。ちょっと難しそうなのでTimeMachineのバックアップからは対象外にしています。


つまりこの方法は、簡単、確実性を重視した運用方法です。


Windows10が起動しない状況になって、あのデータは無事?と心配になります。
ドキュメントフォルダなどは共有プロファイル、MacのユーザーフォルダをWIndowsと共用する設定をONにしています。そのためホームフォルダ系に保存しているドキュメントは一切影響ありません。
また、Parallels Mounterで壊れていてもWindowsドライブにアクセスでき、ファイルをコピーできました。

こうなると次に問題・課題になるのは、インストールしているソフト・アプリの個別設定、開発ソースコードです。
WIndowsユーザーの隠しフォルダは、共有プロファイルの対象外でした。そのためインストールしているソフト・アプリの個別設定がなくなります。

VIsual Studioで開発する際、プロジェクトフォルダを共有フォルダへ置くと信頼できないフォルダになるので色々制約が生まれます。信頼させるよりもWindowsドライブへ配置する方が楽だったのでこちらで使っていました。この場合、共有プロファイル外になるので自分でバックアップする必要があります。(バックアップは取っていませんでした)

まとめ


今回、Parallels Desktopで動作させていたWindows10が壊れた経験を踏まえ、仮想ディスクは壊れることを前提とした運用方法をご紹介してきました。

今回のこの壊れた状態を復旧させるまで、足掻きまくった結果2日程度時間がかかりました。あがいても、Windows10が起動できない状況は改善しませんでした。もし同じような状況になっている方は、軽く試してダメならその仮想マシン(PVM)を諦めた方が時間の節約になります。ご紹介しましたが壊れたPVMをtarでバックアップし、Parallels Mounterでアクセスできることを確認しておくと、後でも探せる大丈夫って安心できます。

今回、どのように復活させたのかを書いてなかったのでここでご紹介しておきます。
fs root invalidの状態は解決できませんでした。APFSフォーマットのストレージが不可解な状態になっていました。このまま放っておいても良くなさそうです。そのためMacintosh HDをフォーマット、Time Machineから復元することで回復させました。こちらの記事でご紹介してます=>fstree root invalid, result too largeはAPFSの危険な兆候だった・・・

Windows10.pvmは数ヶ月前にたまたまバックアップを取ったものがありました。このバックアップをParallels コントロールセンターの「複製...」機能を使って~/pallalels/へコピーし、回復させています。
「複製...」機能はPro版限定だった気がします。普通にコピーでもいいと思います。HDDファイル自体のバージョンがあるとしたら新しいものにしておきたいと思い、複製を使っています。(効果は不明)

Windows10クリーンインストールは簡単ですよね。でもふと思ったんです。あれあのソフトのライセンスどこにしまった?あのソフトはオンラインで購入したからメールから探しないといけないし、ログインアカウントってなんだった?と完全復活させるまで一抹の不安がよぎりました。丸々バックアップ取っていた昔の自分を褒めました。

PVMのバックアップのなかった方は、回復する手段はクリーンインストールしかないような気がします。

 

 

【Parallels Desktop】仮想ディスクは壊れることを前提とした運用方法
サブコンテンツ

コメント

comments powered by Disqus

コメントシステムを利用したくない方はお問い合わせからお願いします。
2013.8.19 DISQUS(外部コメントサービス)の利用を開始しました。
Facebook, google, Twitter等のアカウントで投稿可能です。

Microsoft 365 プランの比較 icon

(Microsoft 365 Personal 2,500 円 キャッシュバック キャンペーン 実施中 2022/3/30まで)

  • 祝!初マック(mac book retina 13インチ)!retina美しいです^^マックに関係するTips、情報、はまったことの解決策等
  • Mac野郎なのか
  • プロフィール

このページの先頭へ