当前位置: 首页>>技术问答>>正文


挂载VirtualBox驱动器映像(vdi)?

, ,

问题描述

是否可以安装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 serverfaultin 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

整个磁盘将安装分区Partition1Partition2命名格式。然后这些文件可以循环安装。例如,

sudo mount -o loop /mnt/Parition1 /mountpoint

第四种办法

将磁盘设置为另一个虚拟操作系统的辅助主服务器,然后启动到此(虚拟)操作系统,您可以安装它。

步骤1:假设您已在虚拟框中安装了虚拟操作系统(例如Ubuntu 16.04),请从该虚拟操作系统的设置添加新存储。

mount,virtualbox,ubuntu

第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

第六种办法

不是你要求的,但如果只是从文件中删除文件,你想要一个非常快速的解决方案:

  1. 在主机上运行ssh服务器(apt-get install openssh-server && service ssh restart)

  2. 使用VirtualBox从现有vdi文件构建虚拟机,然后启动该虚拟机。 (我在构建VM时只保留了默认的网络适配器(NAT)。)

  3. 在虚拟机中,sftp到您的主机。 (sftp hostuser@hostip)

  4. 在sftp会话中,put可以根据需要为主机提供多个文件。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1092.html,未经允许,请勿转载。