我在我的电脑上(WIN 7)使用VirtualBox。
我成功地查看了一些.VDI文件中的内容。
我该如何打开或查看我的.vdi文件的内容,并从中检索文件?
我在我的电脑上(WIN 7)使用VirtualBox。
我成功地查看了一些.VDI文件中的内容。
我该如何打开或查看我的.vdi文件的内容,并从中检索文件?
我有个损坏的VDI文件(根据我使用的无数个VDI查看器程序所显示的加密错误,例如无效句柄、未选择文件,请格式化磁盘),我无法打开该文件,即使使用VirtualBox也不行。我尝试使用VirtualBox命令行工具进行转换,但没有成功。我试图将其挂载到新的虚拟机上,使用ImDisk进行挂载,但都失败了。我阅读了四篇微软TechNet文章,下载了他们的实用程序,并尝试了无数种方法,但都没有成功。
然而,当我尝试使用7Zip (https://www.7-zip.org/download.html)时,我能够查看所有文件并进行有选择性的提取。以下是我的操作步骤:
您可以使用qemu-nbd
挂载来自.vdi镜像的分区:
sudo apt install qemu-utils
sudo modprobe nbd
vdi="/path/to/your.vdi" # <<== Edit this
sudo qemu-nbd -c /dev/nbd0 "$vdi"
# view partitions and select the one you want to mount.
# Using parted here, but you can also use cfdisk, fdisk, etc.
sudo parted /dev/nbd0 print
part=nbd0p2 # <<== partition you want to mount
sudo mkdir /mnt/vdi
sudo mount /dev/$part /mnt/vdi
好像有些用户需要在modprobe命令中添加参数。在我使用Ubuntu 16.04时不需要这样做,但如果这对你不起作用,请尝试添加max_part=16
:
sudo modprobe nbd max_part=16
完成时:
sudo umount /dev/$part
sudo qemu-nbd --disconnect /dev/nbd0
sudo parted /dev/nbd0 print
,这在我的 Kubuntu 16.04 上运行良好,但是 sudo mount /dev/nbd0p2 mnt
失败并显示“特殊设备 /dev/nbd0p2 不存在”,尽管调用 parted ... print
列出了我要挂载的分区号为 2。 - Supernormal试用VMXray。
您可以在浏览器内直接探索vmdk镜像。选择要提取的文件并将其提取到所需位置。不仅限于vmdk,您还可以使用VMXRay查看和从RAW、QEMU/KVM QCOW2、Virtualbox VDI和ISO镜像中提取文件。当前支持ext2、ext3、FAT和NTFS文件系统。您还可以使用它从相机SD卡的原始转储中恢复已删除的照片等。
而且,请放心,从您的文件中没有数据会被发送到网络上。数据永远不会离开您的计算机。VMXRay完全在您的浏览器内运行。
一种简单的方法是将VDI作为第二个磁盘附加到另一个虚拟机上。
该驱动器不会立即显示;在Windows中,打开磁盘管理器,将磁盘联机并分配一个驱动器号。
VBoxManage clonehd input.vdi output.block --format=raw
创建 VDI 的原始副本。下一步是找到一种方法来映射原始块,以便可以挂载其分区。 - konsolebox