mount vdi on host
Joe Sciulli
jsciulli2003 at yahoo.com
Tue Jul 26 00:52:20 UTC 2011
--- On Mon, 7/25/11, Brandon Gooch <jamesbrandongooch at gmail.com> wrote:
From: Brandon Gooch <jamesbrandongooch at gmail.com>
Subject: Re: mount vdi
To: "Andrey V. Elsukov" <bu7cher at yandex.ru>
Cc: "Joe Sciulli" <jsciulli2003 at yahoo.com>, freebsd-emulation at freebsd.org, nox at jelal.kn-bremen.de
Date: Monday, July 25, 2011, 4:31 PM
2011/7/25 Andrey V. Elsukov <bu7cher at yandex.ru>:
> On 25.07.2011 10:18, Joe Sciulli wrote:
>> Is it possible to mount virtualbox vdi file on the FreeBSD host? This appears to be doable on
>> windows and linux hosts, which basically is done in two steps: 1. find offset in the image. 2.
>> mount the image with that offset.
>>
>> I'm trying to do the same thing on FreeBSD, and found the undocumented and deprecated command
>> still works:
>>
>> VBoxManage internalcommands dumphdinfo freebsd_home.vdi
>>
>> I got the following for the virtual disk image holding the /home (no root hence no MBR) disk for
>> a FreeBSD guest:
>>
>> Header: offBlocks=4096 offData=28672
>>
>> Then attempt to mount it:
>>
>> mdconfig -a -t vnode -f /tmp/freebsd_home_56.vdi -u 0
mount /dev/md0 /tmp/aaa/
mount -t cd9660 /dev/md0 /tmp/aaa/
>>
>> unfortunately both the above two mount commands failed with "Invalid argument". I tried
>> skip=28672 to no avail as well. Anything did I do wrong?
>
> I have not any Vbox images with fixed size, but i tried this:
> # mdconfig -f 10G_GPT_UFS.vdi
> # gnop create -v -o 41472 /dev/md0
>
> where 41472 is offData value. After that md0.nop was tasted and reports about invalid GPT.
> So, i think if your image is fixed size disk yout can try this method and mount UFS (not cd9660).
>
> --
> WBR, Andrey V. Elsukov
There was a CFT sent out a while back about a fuse module for mounting
vdi images:
http://lists.freebsd.org/pipermail/freebsd-emulation/2010-September/007964.html
Not sure about the state of this now though...
-Brandon
Thanks for your replies.
I tried
mdconfig -f freebsd_home.vdi
gnop create -v -o 28672 /dev/md0
Indeed /dev/md0.nop etc were created. But mounting with the following commands still yielded the dreaded "Invalid argument" error:
mount /dev/md0.nop /tmp/aaa/
mount -t ufs /dev/md0.nop /tmp/aaa/
One thing interesting is, in the gnop command, if I change 28672 to anything else such as 28671 or 28673 or whatever, that gnop command would fail with:
gnop: Invalid offset for provider md0.
so that suggests the offset is correct. It's just that how to mount it.
The vdi is a variable size disk in virtualbox. But I had shutdown virtualbox and copied it to another file before mdconfig on it.
I looked closer at virtualbox-ose-fuse.shar Brandon linked, it appears to be hardcoded to work with VirtualBox-3.2.8-OSE, while I only have VBoxGuestAdditions_4.0.12 as in the ports tree.
Any more idea, thanks.
More information about the freebsd-emulation
mailing list