VirtualBox VM 中未处理的孤立 inode 列表

Ant*_*ard 18 linux virtualbox filesystems filesystem-corruption vagrant

最近在使用我的 VirtualBox VM 时,系统崩溃了。之后,VM 将不再启动(我正在使用 Vagrant)。在我的故障排除中,我打开了 VirtualBox GUI,发现 VM 不再启动的原因是由于以下错误:

Couldn't remount RDWR because of unprocessed orphan inode list.
Run Code Online (Sandbox Code Playgroud)

我在谷歌上搜索了这个错误,发现这可能是由文件系统损坏引起的,但可以通过简单的卸载/重新安装来修复。不幸的是,我无法使用控制台来执行此操作,或者至少我想不出办法。有没有办法在没有控制台的情况下修复这个错误,或者代替那个,有没有办法可以在我的 VM 中访问控制台而不能挂载虚拟硬盘?

Ant*_*ard 37

今天早上我设法解决了这个问题。以下是我采取的步骤,以防其他人遇到此问题:

下载可启动的 linux .iso。

我在我的 VM 中运行 Ubuntu 14.04 x64,所以我决定从这里下载 64 位 Ubuntu 14.04 安装 .iso 。你下载什么版本并不重要,只要它支持你的文件系统并且你熟悉它。

将 .iso 文件作为虚拟 CD-ROM 挂载到 VM 中。

从控制台运行virtualbox以打开 Virtual Box 配置 GUI。从那里,转到:设置 -> 存储 -> 添加 CD/DVD 设备 -> 选择磁盘。浏览到您刚刚下载的 .iso 文件。

从 .iso 文件启动。

现在使用命令启动 VM 的启动过程vagrant up。在启动过程中,应该会提示您按一个键来选择一个启动设备(对我来说是F12)。现在选择 CD-ROM 启动。您下载的 .iso 应该会启动。如果您使用的是 Ubuntu,请选择尝试 Ubuntu。 现在,启动一个终端窗口。

卸载并 fsck 磁盘

在终端中,您可能首先必须卸载虚拟硬盘。如果您的磁盘是/dev/sda1,请使用以下命令:

sudo umount /dev/sda1
Run Code Online (Sandbox Code Playgroud)

然后你可以fsck在磁盘上运行:

fsck /dev/sda1
Run Code Online (Sandbox Code Playgroud)

确认修复后,重新启动 VM。一切都应该恢复正常。

  • 这有效!作为附加提示,在 VirtualBox 设置中安装可引导 CD 后,请确保转到“系统”选项卡并在“引导顺序”中选择 CD/DVD。此外,您可以将其放在顶部以在进行修复时强制从 cd 启动(F12 在我的 Mac 上不起作用......)。 (9认同)
  • 这适用于@RayOnAir 建议的步骤。此外,Ubuntu Server 映像不起作用,我必须使用桌面映像才能使用 fsck 命令。 (3认同)
  • 澄清一下:“现在,启动终端窗口”步骤是在来宾机器的 Ubuntu 中执行的。单击左上角的 Ubuntu 图标,输入“终端”,然后单击终端应用程序图标。 (2认同)