hiroの長い冒険日記

主にコンピュータ周辺の興味を持った内容を綴ります

Ubuntu18.04 cifs mount と物理SSD の仮想ディスク化 その2

当日記ではアフィリエイト広告を利用しています

前日の続き。その2と言いつつ cifs は使わない方法へ方針転換。
hiro20180901.hatenablog.com
cifs は不安定。100GB 程度の読み書きができないと使い物にならない。何か回避方法があるのかもしれないが。

kpartd で取り出した disk image の中身確認

取り出した disk image がちゃんと見えるか確認した。

$ sudo kpartx -av /mnt/vd/sdb.img
add map loop15p1 (253:0): 0 241680384 linear 7:15 2048
add map loop15p2 (253:1): 0 2 linear 7:15 241684478
add map loop15p5 (253:2): 0 8384512 linear 7:15 241684480
$ sudo mount /dev/mapper/loop15p1 /mnt/SSD
$ ls /mnt/SSD
bin  boot  dev  etc  home  initrd.img  initrd.img.old  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  vmlinuz  vmlinuz.old
$ sudo umount /mnt/SSD
$ sudo kpartx -d /mnt/vd/sdb.img
loop deleted : /dev/loop15

OK。大丈夫。

scp で Ubuntu18.04 -> Windows10 へ disk image のコピー

cifs は SMB Ver. を変更しても、dd ではなく cp でも IO error が出てしまう。諦めて別の方法を試してみた。

各種 server 立てるより、ssh が使えるんだからという理由で scp でコピーすることにした。

$ scp username@192.168.n.n:/mnt/datahdd/sdb.img .

問題なく終了した。

md5sum check

$ md5sum -b ./sdb.img
b564301fdea8389d1263f925b77763b8 *./sdb.img  # 仮想 Ubuntu
19386347801096bd27e0a188fe1e651d *./sdb.img  # WSL Ubuntu

仮想 Ubuntu と WSL Ubuntu で違う値になる。なぜ? 正常にコピーできていないのか。

VBoxManage.exe で raw -> vhd 変換 ... 失敗

前日と同じように VBoxManage.exe で raw から vhd に変換した。

$ /mnt/c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe convertfromraw ./sdb.img ./debian.vhd --format VHD
Converting from raw image file="./sdb.img" to file="./debian.vhd"...
Creating dynamic image with size 128035676160 bytes (122105MB)...
VBoxManage.exe: error: Failed to write to disk image "./debian.vhd": VERR_INVALID_PARAMETER

ん? やっぱり error が出る。VBoxManage.exe では出来ないのかな。

qemu-img で raw -> vhd 変換 ... 成功

docs.openstack.org
qemu-img.exe でも同じように変換できるようなので、こちらでやってみた。

$ /mnt/c/Program\ Files/qemu/qemu-img.exe convert -f raw -O vpc ./sdb.img debian.vhd

こちらでは問題なく終了した。

仮想 Ubuntu に mount

作成した仮想ディスクを Hyper-V マネージャーから仮想 Ubuntu に接続した。が失敗。

結果

仮想ディスクが作れてなさそう。

md5sum に違いがあるので、copy する時に壊れてるのだろうか。

切り分けの為に、次は仮想 Ubuntu の中だけでやってみようか。やり方を考えてみる。