我在 virtualbox 上运行的 Ubuntu 12.04.1 在我安装软件时空间不足,现在它没有重新启动。我有文件需要从中恢复。我的ubuntu64.vdi
Windows 7(主机)笔记本电脑上有该文件,我想知道是否有任何方法可以从 vdi 文件中恢复文件。
同时,我在同一台笔记本电脑的 virtualbox 上生成了一台新的 12.04.1 机器,我将使用那台机器而不是那台无聊的机器。
我可以将 borked 添加vdi
到工作磁盘列表中。然后我使用 gnome nautilus 来挂载 borked 磁盘。
我可以在那里找到文件,但它们大约有 2 个月大。我认为这与我最后一次对机器进行 virtualbox 快照相吻合,但不是我最后一次得到一台可以工作的机器,那是昨天。有没有办法在vdi
昨天崩溃之前安装它?
编辑:
这是Virtual Media Manager
告诉我有关我的ubuntu64.vdi
文件的内容:
编辑2:
我将我的复制ubuntu.vdi
到具有足够磁盘空间的外部 USB。我尝试使用 Windows 克隆它,但出现错误:
我通过 USB 驱动器的共享文件夹从工作 VM 尝试了相同的操作,并开始克隆。花了一段时间,但成功完成:
root@precise64:/media/sf_E_DRIVE/copy_of_ubuntu64_vm_folder_20140224/ubuntu64#
VBoxManage clonehd ubuntu64.vdi ubuntu64.raw --format RAW
0%...
10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'RAW'. UUID: 90f99198-18e1-40ee-85fe-c083dcbb1ac3
Run Code Online (Sandbox Code Playgroud)
编辑 3:
创建原始文件后,我跑testdisk
带Deeper Search
,我得到这样的列表:
AterDeeper Search
已经完成,我得到一个这样的列表:
但我不知道哪个是哪个快照......有什么想法吗?
Tak*_*kat 21
如果我们使用 Ubuntu 作为主机,我们可以使用以下命令将 .vdi 磁盘转换为原始磁盘:
VBoxManage clonehd <sourcename> <clone.raw> --format RAW
Run Code Online (Sandbox Code Playgroud)
然后我们可以打开testdisk 使用此文件恢复虚拟驱动器映像上的文件(另见下文):
testdisk <clone.raw>
Run Code Online (Sandbox Code Playgroud)
如果损坏的 VDI 驱动器映像仍然在 Virtual Box 中注册,我们可以将此映像作为驱动器添加到我们的新虚拟机中:
启动我们添加了损坏的 .vdi 但不要挂载驱动器的虚拟 Ubuntu 。
在已安装的分区上创建一个目录来保存收集的数据(例如~/rescued
),
安装测试盘 在虚拟机上。
从那里的终端启动 testdisk:
sudo testdisk
Run Code Online (Sandbox Code Playgroud)选择适当的驱动器来收集数据(此处显示为/sdb
)并选择[Proceed]
选择合适的分区布局(通常Intel
)
选择[Analyse]
-[Quick Search]
选择包含要收集的数据的分区(这里只存在一个 NTFS 分区):
按 P 列出该分区上的文件。
浏览到包含数据的目录。查看文件名以确保您选择了正确的文件名。
选择要使用的目录或文件 : 。所有选定的文件/目录将被标记为绿色:
按大写 C 将所有选定的目录/文件复制到下一步将选择的救援目录中。
在 Ubuntu VM 的挂载分区上选择一个目录来保存获救的数据:
按 c 开始将数据从损坏的 .vdi 复制到健康 VM 中的救援目录。
如果我们无法使用6 中的[Quick Search]
选项查看我们的文件,我们可能必须执行. 这还将列出以前删除和覆盖的分区。因此,我们需要确保选择数据所在的适当分区。[Deeper Search]
如果我们拍摄了 .vdi 的快照,我们可能会在其中找到这些,~/.VirtualBox/Machines/<Name of Machine>/Snapshots/{###}.vmdk
但是每当我们使用 Virtual Box 的快照功能时,快照中的任何更改都将写入差异文件。
要将差异文件与硬盘驱动器合并,我们需要删除所有快照(这可能不是我们想要的,因为我们可以恢复到以前的快照而不是调用数据恢复),或者我们需要使用以下命令克隆机器的驱动器:
VBoxManage clonehd <name_of_source> <clone>
Run Code Online (Sandbox Code Playgroud)
然后我们将克隆绑定到我们的救援 VM,如上所示。
写入损坏的 .vdi 应仅在数据安全后进行,因为这可能会进一步损坏文件系统。
如果我们的救援 Ubuntu 太小而无法保存获救的数据,我们可能会创建另一个新的虚拟驱动器来绑定到 VM。然后必须将该驱动器安装在 VM 中才能将测试磁盘中的数据保存在那里。
1)尝试通过UUID恢复快照,使用以下hack:
输入命令 C:> VBoxManage clonehd <UUID> CloneDisk.vdi
希望它有所帮助,我确实在这里找到了解决方案:(https://forums.virtualbox.org/viewtopic.php?t=791)
2) 如果 1) 中的步骤不起作用,您可以尝试其他步骤。如何克隆磁盘的当前状态:
这个解决方案来自这里:(http://www.im-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/)两者大致相同。
归档时间: |
|
查看次数: |
50028 次 |
最近记录: |