Post by jddwhat a did as test.
Create the smaller possible vb disk (4Mo) - fixed size.
attach it to an other virtual machine running openSUSE.
on this machine issue fdisk -l. see the new disk is exactly 4,194,304
bytes.
go to the host, see the file is 4,202,496 bytes. The offset is 8,192
bytes...
format the disk from the guest (mkfs.msdos /dev/sdb -I). mount it
mount /dev/sdb /mnt
create a file: touch /mnt/essai
on the host (the disk was on the "machine folder)
mkdir mnt-test
mount -o loop,offset=8192 test2.vdi mnt-test/
ls mnt-test/
essai
notice you can't fail with loop because the loop driver wont mount an
incorrect drive (try with 8191 or 8193)
thus if you create a drive the exact same size as you original, you
must have the same offset and can calculate it with the same way.
don't know if this works with a variable size disk, may be if there
are no snapshots
jdd
That's great info. Thanx a lot.
The caveat I now have with vdfuse is that
I am unable to umount the mount point on
which I mounted the vmdk/vdi disk.
# umount -f /mnt/l0
umount2: Device or resource busy
umount: /mnt/l0: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount2: Device or resource busy
# lsof | egrep '/mnt/l0|loop0'
lsof: WARNING: can't stat() fuse.vdfuse file system /mnt/l0
Output information may be incomplete.
loop0 9624 kroot cwd DIR 8,2 4096 2 /
loop0 9624 kroot rtd DIR 8,2 4096 2 /
loop0 9624 kroot txt unknown /proc/9624/exe
# mount
.
.
.
.
Knoppix-6.4.4.vmdk on /mnt/l0 type fuse.vdfuse
(rw,nosuid,nodev,allow_other,user=jd)
So, there is a process, loop (which must be the vdfuse process???)
which is holding an open fd to the mount point, and so I am unable
to unmount it.
I tried to kill -9 9624 several times, to no avail.
And look at this:
# ls -l /proc/9624/exe
/bin/ls: cannot read symbolic link /proc/9624/exe: No such file or directory
lrwxrwxrwx 1 kroot root 0 Jun 2 13:26 /proc/9624/exe
This must be a bug!!