如何挂载.vhd文件?


11

我正在使用13.04 Raring amd64,我需要在ubuntu上安装.vhd文件。我已经搜索了一下,发现virtualbox-fuse包是答案。

但是,该软件包已从apt信息库中删除。有什么方法可以通过13.04安装软件包?还是除了virtualbox-fuse之外还有其他选择?


我只是做了同样的事情,我的搜索结果结束了,您可以将vdi转换为原始图像
zeitue 2013年

嘘 当vhd或vdi文件太大而无法将其复制为原始图像时,这不是一个好的解决方案
Joshua Robison

1
所以,如果我安装了virtualbox,我可以使用vdfuse命令吗?

Answers:


4
sudo apt-get install virtualbox-fuse
sudo mkdir /mnt/vhd-disk/
sudo vdfuse -f disk.vhd /mnt/vhd-disk/
sudo mount -o loop  /mnt/vhd-disk/Partition1 /mnt/partition1

请注意,您可能需要其他选项mount来设置自己喜欢的权限。


它有效,您可以从vdfuse.sourceforge.net下载vdfuse ,例如,在我的情况下,最后一行是:sudo mount -o -loop / tmp / win / Partition1 / mnt / Windows
MaxV

4

使用Ubuntu 15.10(在Ubuntu 16.04上也可以使用),您可以通过以下方式安装vhdimount和tsk(The Sleuth Kit):

sudo apt-get install libvhdi-utils sleuthkit

然后,您可以执行以下操作:

sudo mkdir -v /mnt/vhd
sudo vhdimount -X allow_root /path/to/file.vhd /mnt/vhd/
sudo mmls -aB /mnt/vhd/vhdi1

接下来,您必须mmls像这样计算输出的偏移量:

echo offset*512 | bc

并完成:

sudo mkdir -v /media/${USER}/your/folder
sudo mount -vt ntfs-3g -o ro,noload,offset=offset-found /mnt/vhd/vhdi1 /media/${USER}/your/folder

替换offset-found为您的偏移量。您可能还必须根据vhd文件中包含的fs-type更改fs-type。

我已经编写了一个脚本,因此不必每次都键入此内容;)


这会将其安装为只读。我如何做才能以写许可权挂载它?省略rofor mount仍将导致只读。
Mads Skjern

更改方式rorw并且应该以读/写方式而不是只读/只读方式运行。vhdimount映射到/mnt/vhd/vhdi1在读/写模式,但使用的下一个命令mount是读/只,如果你不指定rw作为一个选项
Jiab77

1
在Ubuntu 16.04中:除了使用mmls或fdisk来查找分区的起始扇区之外,还可以使用kpartx创建虚拟设备文件来安装它,而无需offset选择以下选项:sudo kpartx -av /mnt/vhd/vhdi1; sudo mount -vt ntfs-3g -o ro,noload /dev/mapper/loop0p1 /media/${USER}/your/folder
slowhand

2

搜索Ubuntu的Launchpad空间,出现以下内容:

virtualbox(二进制“ virtualbox-fuse”是virtualbox软件包的一部分)

这意味着它们已合并virtualbox-fuse到主程序包中,您只需要从存储库安装virtualbox(这就是以前所说的virtualbox-ose,因此,如果需要PUEL许可的“完整”版本,这将无济于事。)


2

我不想不依赖VM来访问vhd映像上的数据。从Ubuntu virtualbox-fusevdfuseUbuntu(不再是精确(12.04)起)和Debian(从Wheezy(7)起)中,由于和不再可用。我能够使用挂载个人VHD的NTFS分区blk-tap

tap-ctl spawn当然,插入来自的适当pid 。您的分区方案可能与我的不同,因此请进行相应调整。

# apt-get install blktap-utils
# modprobe blktap
# tap-ctl allocate
/dev/xen/blktap-2/tapdev0
# tap-ctl spawn
tapdisk spawned with pid 1234
# tap-ctl attach -m 0 -p 1234
# tap-ctl open -m 0 -p 1234 -a vhd:/full/path/to/image.vhd
# mount /dev/disk/by-id/dm-name-tapdev0p1
# ls -lh do/your/thing with/all/your/files.txt 
# tap-ctl close -m 0 -p 1234
# tap-ctl detach -m 0 -p 1234
# tap-ctl free -m 0

这些步骤来自xen项目的wiki

我的阻止设备是在创建的/dev/xen/blktap-2/blktap0。由于某种原因,它kpartx -a不会映射分区(我正在寻找/ dev / xen / blktap-2 / tapdev0p1),但是我发现它/dev/disk/by-id/dm-name-tapdev0p1已链接到该分区的块设备。


1

这是我所做的:

似乎没有顺利的路要走。我刚刚virtualbox-fuse从启动板下载了deb软件包文件。(这里

我选择4.1.18是因为我的vbox有点旧,但是我想它可以在最新版本中使用。

使用安装软件包dpkg -i。您可能需要指定--force-depends安装选项。


9
那呢 安装后如何安装VHD?
Enkouyami


-1

您可以使用VirtualBox。

VirtualBox是一个免费的x86虚拟化解决方案,允许广泛的x86操作系统(例如Windows,DOS,BSD或Linux)在Linux系统上运行。

要安装VirtualBox在Ubuntu 13.04下,只需按键盘上的Ctrl+ Alt+ T打开终端。打开时,运行以下命令:

sudo apt-get install virtualbox

安装完成后,继续创建新的虚拟机

在此处输入图片说明

输入名称。 确保选择正确的类型和VHD中的OS版本。

在此处输入图片说明

选择“使用现有的虚拟硬盘驱动器文件”,浏览找到您的VHD文件,然后单击“创建”。

在此处输入图片说明


2
这样一来,您就可以运行VHD上的OS,但不允许在Linux中挂载映像。
IQAndreas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.