我在 Mac OS X 主机上安装了 Ubuntu Server VM。很愚蠢的是,我没有这台 VM 的近期快照(这对我来说是个严峻的提醒)。
我的主机运行缓慢且不稳定 - 内存不足。在尝试更改虚拟机上的文件时,我收到一个持续的“文件系统为只读”错误(类似于此问题Ubuntu VM“只读文件系统”修复了吗?)。我关闭了虚拟机并重新启动了计算机,然后打开了虚拟机,没有运行其他应用程序。现在,当我尝试加载虚拟机时,启动屏幕上出现了许多错误,然后它冻结了:
comm init: bad extended attribute block (some numbers here)
我可以进入恢复模式,但没有修复 Linux 机器的经验。在恢复模式下或者其他情况下,我可以做些什么来尝试保存我的虚拟机?
答案1
回答我自己的问题,如上所述:
首先,我尝试使用 fsck 和下面这个有用的视频中包含的说明来恢复 Ubuntu 文件系统:
http://www.youtube.com/watch?v=twBf4MR5sh8
概括起来,它们是:
假设您有文件系统问题,在挂载文件系统时无法修复:
- 下载 Ubuntu 桌面磁盘映像
- 将磁盘映像附加到虚拟机并将其设置为启动顺序中的第一个
- 启动 CD 并点击“试用 Ubuntu”
- 在 CD 版本中,从终端运行需要卸载文件系统的文件恢复命令(例如 fsck)
这修复了许多文件系统问题,但机器在启动时仍然挂起,而我没有时间进行 Linux 系统恢复 101。所以我决定看看从 Time Machine 备份恢复是否可行。
大致来说,这个过程如下:
- 将虚拟机的已知良好备份恢复到桌面
运行命令来更改已恢复虚拟机的 UUID。在我的 Mac 上,这是
VBoxManage internalcommands sethduuid /path/to/my/restored/disk/image.vdi
- 在 VirtualBox 中,打开损坏机器的设置,转到存储,分离现有磁盘映像并附加恢复的磁盘映像
- 启动并屏住呼吸。
这种方法奏效了,尽管很多本该在那里的文件却不见了。幸运的是,我有这些文件的单独备份,因此能够在停机时间(呃,1.5 天)内恢复所有文件。