zeerd's blog     Article     Search     About     Tags     Pebble     Feed

闲来生雅趣,无事乐逍遥。对窗相望雪,一盏茶香飘。

如何在Ubuntu 13.10中mount virtualbox的vdi文件

#Ubuntu #VirtualBox #vdi


在网络上搜索题记的问题,大部分给出的答案都是安装virtualbox-fuse。但是,virtualbox-fuse被从13.10的apt repository中移除了,所以需要自己去Launchpad下载。

下载之后,不能直接安装。因为这个virtualbox-fuse仅支持virtualbox (= 4.1.18-dfsg-1ubuntu1) ,而Ubuntu 13.10的apt repository中的virtualbox是4.2.16。直接安装deb是不行的。

好在我们也不是真的需要virtualbox-fuse,而是仅需要vdfuse这个可执行文件。那么,只要将deb文件解包,然后从中将vdfuse拷贝出来就可以了。
sudo dpkg -x virtualbox-fuse_4.1.18-dfsg-1ubuntu1_amd64.deb out
sudo cp out/bin/vdfuse /bin
sudo chmod 755 /bin/vdfuse

这样我们就有vdfuse这个命令可以用了。但是,还有一个问题,默认的fuse.conf不支持非root用户访问。这时需要修改一下,打开/etc/fuse.conf文件,将user_allow_other前面的“#”删除,保存一下。

接下来就可以进行mount工作了。
首先,通过vdfuse将vdi文件mount到一个临时的mount point上:
vdfuse -f /xxxxx/xxxx.vdi ~/mnt/vdi_xxxx/

这时候会得到一个~/mnt/vdi_xxxx/EntireDisk文件。再次mount:
sudo mount ~/mnt/vdi_xxxx/EntireDisk ~/mnt/xxxx/

OK!大功告成。

如果运行vdfuse的时候出现如下提示:
fusermount: failed to open /etc/fuse.conf: Permission denied

请检查是否/etc/fuse.conf文件设置了仅root用户可读。如果是的话,改一下就可以了:
sudo chmod 644 /etc/fuse.conf


如果Launchpad不能下载,这里有个备份:
virtualbox-fuse_4.1.18-dfsg-1ubuntu1_amd64.zip