KVMのイメージファイルをホストマシンでマウントする
自宅のDebianで動かしてるKVM上のWindows7にInternet Explorer 11の更新を当てたら、起動時にBSoDが発生して動かなくなりました。
スタートアップ修復も失敗し、システム復元を行っても正常に起動しなくなってしまったのでメールのデータだけでもサルベージすべくホストマシンでディスクイメージをマウントしてみました。
イメージ内にパーティションがあるのでそのままループバックマウントしようとしてもマウントされません。
少し探してみたところkpartxを利用するとマウントできるということだったので試してみました。
なお、イメージファイルはvirt-installコマンドを実行した際に作成されたものです。
# apt-get install kpartx # kpartx -av %イメージファイルのパス%
add map loop0p1 (254:0): 0 204800 linear /dev/loop0 2048 add map loop0p2 (254:1): 0 125620224 linear /dev/loop0 206848
数字についてはイメージファイルによって変わってくると思います。
ループバックデバイスが作成されたのでそのデバイスをマウントします。
サイズ的にloop0p2が元Cドライブだったはずなのでこちらを指定。NTFSをマウントするのでntfs-3gを入れていない場合はインストールしないとマウントできません。
# apt-get install ntfs-3g # mount /dev/mapper/loop0p2 /mnt
無事メールのデータをサルベージできました。
作業が完了したらアンマウントしてループバックデバイスを削除します。
# umount /mnt # kpartx -dv %イメージファイルのパス%
del devmap : loop0p2 del devmap : loop0p1 loop deleted : /dev/loop0
Web上ではlosetupコマンドを実行している例もありましたがkpartxだけでもマウントできました。
今までメールはBecky!を使っていましたが、Outlook.comでアカウントを追加してWeb上から見られるようにしてしましました。
Becky!の為に動かしていたKVM上のWindows7はもう起動しなくてもいいかもしれません。