我正在使用13.04 Raring amd64,我需要在ubuntu上安装.vhd文件。我已经搜索了一下,发现virtualbox-fuse包是答案。
但是,该软件包已从apt信息库中删除。有什么方法可以通过13.04安装软件包?还是除了virtualbox-fuse之外还有其他选择?
我正在使用13.04 Raring amd64,我需要在ubuntu上安装.vhd文件。我已经搜索了一下,发现virtualbox-fuse包是答案。
但是,该软件包已从apt信息库中删除。有什么方法可以通过13.04安装软件包?还是除了virtualbox-fuse之外还有其他选择?
Answers:
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
来设置自己喜欢的权限。
使用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。
我已经编写了一个脚本,因此不必每次都键入此内容;)
ro
for mount
仍将导致只读。
ro
,rw
并且应该以读/写方式而不是只读/只读方式运行。vhdimount
映射到/mnt/vhd/vhdi1
在读/写模式,但使用的下一个命令mount
是读/只,如果你不指定rw
作为一个选项
kpartx
创建虚拟设备文件来安装它,而无需offset
选择以下选项:sudo kpartx -av /mnt/vhd/vhdi1; sudo mount -vt ntfs-3g -o ro,noload /dev/mapper/loop0p1 /media/${USER}/your/folder
我不想不依赖VM来访问vhd映像上的数据。从Ubuntu virtualbox-fuse
和vdfuse
Ubuntu(不再是精确(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
已链接到该分区的块设备。
我使用称为Windows 10 Backup File的程序成功将.vhdx文件安装到了Ubuntu 16.04 OS guestmount
guestmount
在libguestfs.org上的手册页。
请注意,将需要调整权限,或者在执行sudo -i
或sudo -s
执行之后需要访问权限。
您可以使用VirtualBox。
VirtualBox是一个免费的x86虚拟化解决方案,允许广泛的x86操作系统(例如Windows,DOS,BSD或Linux)在Linux系统上运行。
要安装VirtualBox在Ubuntu 13.04下,只需按键盘上的Ctrl+ Alt+ T打开终端。打开时,运行以下命令:
sudo apt-get install virtualbox
安装完成后,继续创建新的虚拟机
输入名称。 确保选择正确的类型和VHD中的OS版本。
选择“使用现有的虚拟硬盘驱动器文件”,浏览找到您的VHD文件,然后单击“创建”。