vdiをlinuxでマウントする時のメモ
実際に試したのはarchlinux上でです
やり方
# modprobe nbd
/dev/nbd0などを使えるようにする
# qemu-nbd -c /dev/nbd0 (vdiのファイル)
/dev/nbd0にvdiのファイルを割り当てる
# fdisk -l /dev/nbd0 Disk /dev/nbd0: 21.0 GB, 20971520000 bytes 255 heads, 63 sectors/track, 2549 cylinders, total 40960000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x7febedc0 Device Boot Start End Blocks Id System /dev/nbd0p1 * 2048 67583 32768 83 Linux /dev/nbd0p2 67584 1116159 524288 82 Linux swap / Solaris /dev/nbd0p3 1116160 40959999 19921920 83 Linux
セクターとスタート位置を知る必要があるので調べる
例えばここで/dev/nbd0p3をマウントしたかったら標準出力の3行目の512 bytesと/dev/nbd0p3のStartの1116160を覚える
# mount -o offset=$((1116160*512)) /dev/nbd0 (好きなマウント先)
$( (1116160*512) )の1116160と512は先ほど覚えた数値
後は好きにマウントしたものをいじるだけ
いじり終わったら行儀よく
# umount (好きなマウント先に指定したもの) # qemu-nbd -d /dev/nbd0 # rmmod nbd
アンマウントとかアンロードをしておきましょう