问题描述
是否可以安装VirtualBox驱动器映像(.vdi),以便可以在Nautilus等中查看内容?
我有一个Windows 2000 .vdi从VirtualBox 2.x升级到3.1.6后将无法启动(“无法访问启动设备”)。我相信IDE驱动器的详细信息已经更改,我需要做的就是访问内部驱动器映像并编辑Windows boot.ini
以指向新位置。
最佳解决办法
您可以转换为标准图像,然后安装它。
VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img
然后
mount -t ext3 -o loop,rw ./ubuntu.img /mnt
在这种情况下,您需要知道文件系统的类型,ext3
。安装完成后,使用您选择的编辑器进入并编辑。不要将/mnt
位置内的文件与正在运行的主机混淆,否则会很糟糕。
要检查有关VDI文件的详细信息,请运行:VBoxManage showhdinfo ubuntu.vdi
。
资料来源:[SOLVED] Open .vdi with archive manager? – ubuntuforums.org
次佳解决办法
使用qemu-nbd
,过程解释为on serverfault和in this blog。
基本上,如果需要,您必须安装qemu
:
sudo apt-get install qemu
然后你需要加载网络块设备模块:
sudo rmmod nbd
sudo modprobe nbd max_part=16
将.vdi图像附加到刚刚创建的nbd之一:
sudo qemu-nbd -c /dev/nbd0 drive.vdi
现在,您将获得一个/dev /nbd0块设备,以及几个/dev /nbd0p *分区设备节点。
sudo mount /dev/nbd0p1 /mnt
完成后,卸载所有内容并断开设备连接:
sudo qemu-nbd -d /dev/nbd0
第三种解决办法
它看起来像vdfuse是您正在寻找的工具。它位于Ubuntu存储库中。如果你想自己编译(2010年源代码),你可以使用do that too。
然而对于我们大多数人来说,它归结为一个简单的:
sudo apt-get install virtualbox-fuse
它似乎现在也支持动态vdi。
要在/mnt
目录中安装.vdi
文件,请使用以下命令:
sudo vdfuse -a -f /path-to-vdi-file /mnt
整个磁盘将安装分区Partition1
,Partition2
命名格式。然后这些文件可以循环安装。例如,
sudo mount -o loop /mnt/Parition1 /mountpoint
第四种办法
将磁盘设置为另一个虚拟操作系统的辅助主服务器,然后启动到此(虚拟)操作系统,您可以安装它。
步骤1:假设您已在虚拟框中安装了虚拟操作系统(例如Ubuntu 16.04),请从该虚拟操作系统的设置添加新存储。
第2步:浏览您要访问的Vdi文件并选择它。
第3步:登录虚拟操作系统。
步骤4:虚拟磁盘可能在操作系统内可用。如果没有,请执行步骤5
步骤5:在虚拟操作系统内,使用Gparted并检查磁盘。并确保磁盘的类型可由虚拟操作系统访问。如果不是,您可能需要编辑磁盘,但之后您将丢失现有内容。
第五种办法
我没有测试过自己,但似乎有一个保险丝模块可以安装它们(vfduse
),请查看以下页面:
请注意,使用它进行写访问是有风险的。
用法:
$ ./vdfuse-v<version> -h
USAGE: ./vdfuse [options] -f image-file mountpoint
-h help
-r readonly
-t specify type (VDI, VMDK, VHD, or raw; default: auto)
-f VDimage file
-a allow all users to read disk
-w allow all users to read and write to disk
-g run in foreground
-v verbose
-d debug
要使用其文件名直接挂载图像:
$ ./vdfuse-v<version> -f image.vdi /mnt/vdi
$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP
要挂载计算机磁盘(包括快照):
$ ./vdautomount-<version> -p /path/to/vdfuse WinXP /mnt/vdi
$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP
第六种办法
不是你要求的,但如果只是从文件中删除文件,你想要一个非常快速的解决方案:
-
在主机上运行ssh服务器(
apt-get install openssh-server && service ssh restart
) -
使用VirtualBox从现有vdi文件构建虚拟机,然后启动该虚拟机。 (我在构建VM时只保留了默认的网络适配器(NAT)。)
-
在虚拟机中,sftp到您的主机。 (
sftp hostuser@hostip
) -
在sftp会话中,
put
可以根据需要为主机提供多个文件。