PC/NETのetcetra/2007-09-09
Last-modified: 2007-09-09 (日) 23:45:42 (6067d)
※※このサイトは2012年頃より更新を停止しています。※※
ノートPCで動いてるVMServer関連環境に変更
かなり自分用独自環境の話なので人様の役に立つかどうかはかなりわからないネタ。
Ext2IFS(Ext2 Installable File System For Windows)を使ってWindowsからCドライブのあるディスク上のext3パーティションへアクセスすることができた。
それを利用して、VMWare Server上のLinuxからリアルディスクのパーティションをマウントすることができる。
そこで、既存の Virtual Machines が格納されてるパーティションを縮めて、空いたところにデータ格納用のext3パーティションを用意して、VirtualのLinuxでそのデータパーティションをmountして参照および書き込みしつつ、デュアルブートで起動するLinuxも同じデータパーティションを参照できるように仕込みを入れようとした。
そしたらちとトラブった(ノд`)
Windowsのパーティションを縮めた時点で、今まで動いてたVMware上のLinuxインベントリが仮想ディスクを認識できなくなった。
仮想ディスクを2GBごとに区切る設定で作成してあったんだけど、なにやらそれは分割ディスクの開始セクタとかの情報を元にして仮想ディスクを判断するくさくて、パーティション縮めたことでその情報にズレが生じたよう。
起動時に「ディスクがboot可能なやつじゃない」的なメッセージが出て起動しなくなった。
どうにか復旧する方法を探した過程と結果をここに残してみる。
以下、ざっくりメモ。
- 仮想ディスクの仕掛けをつかむ
参考:@IT:複数のVMware仮想ディスクを1つに統合するには
参考:サーバ・クライアント環境を持ち歩く(仮想ファイル「*.vmdk」のDisk Data Base(DDB)の仕組みに触れてる)
参考:VMware → Xen の仮想ディスク移行(分割ディスクの統合手順)
VMwareのイメージを起動できるか?(KVMから)
VMwareで作成される仮想ディスクは qumeで作る仮想ディスクで扱ってるのと同じ感じみたい。
VMwareで作成した分割ディスクは、「hoge.vmdk」という"ディスク情報を格納したファイル"に対して「hoge-f001.vmdk」「hoge-f002.vmdk」という分割本体部分が紐づけられて作成されるよう。
分割されたディスクを結合するには、分割された一つ一つを qume-imgコマンドでraw形式に直して、それらを cat で繋げるなんてことすると、一応一つになるみたい。 - 仮想ディスクをつなげて変換する具体例
※本体部分が複数に分かれてる場合は、念のためraw形式にして、それをLinux上に転送して、catでつなげて、再度Windows上に持ってきた。 C:\Program Files\qemu-0.9.0>qemu-img convert "e:\Virtual Machines\Ubuntu\Ubuntu-f001.vmdk" -O raw "E:\Virtual Machines\Ubuntu\raw_Ubuntu1.img" C:\Program Files\qemu-0.9.0>qemu-img convert "e:\Virtual Machines\Ubuntu\Ubuntu-f002.vmdk" -O raw "E:\Virtual Machines\Ubuntu\raw_Ubuntu2.img" ※上記で作った raw_Ubuntu1.img と raw_Ubuntu2.img を別マシンのLinux上に転送。 # cat raw_Ubuntu2.img >> raw_Ubuntu1.img ※上記でつないだraw_Ubuntu1.imgをWindowsに持ってきて、さらにvmdk形式に変換。 C:\Program Files\qemu-0.9.0>qemu-img convert "E:\Virtual Machines\Ubuntu\raw_Ubuntu.img" -O vmdk "E:\Virtual Machines\Ubuntu\raw_Ubuntu.vmdk" ※初期に分割指定で作成したけど、2GB未満だったため本体部分がf001しかないという場合は、つなげる処理が不要。 f001をqume-imgでvmdk形式でconvertしたら、仮想ディスクとして扱うことができるようになった。 C:\Program Files\qemu-0.9.0>qemu-img convert "e:\Virtual Machines\Ubuntu\home-f001.vmdk" -O vmdk "E:\Virtual Machines\Ubuntu\raw_home.vmdk"
こうして単一ファイルに変換した仮想ディスクでVMwareのLinuxを起動すると、ディスクを読み込んでくれた。
コメントはありません。 コメント/PC/NETのetcetra/2007-09-09