如何修复 ext3 启动分区?

如何修复 ext3 启动分区?

我有一个小型 VIA Ubuntu 服务器用作防火墙,还有一个 Ubuntu 桌面服务器用于托管不同的服务(网络、邮件等)。

由于未知原因,两台计算机的 sda1 分区(启动分区)都出现了一些错误。我怀疑这是今年夏天的一次断电造成的,尽管我有一台 APC UPS。

我昨天才发现这个问题,因为这个错误导致 apt-get upgrade 中止。它很聪明,让我处于某种状态并发出修复文件系统的指令。

启动防火墙服务器时,fsck 阶段会告诉我磁盘正常。但登录后,当我执行 fsck -n -C /dev/sda1 时,它告诉我有错误。空闲块数量不匹配。

使用相同命令在另一个 VIA 上运行 fsck 时,报告了很多错误。

在网上快速搜索如何修复文件系统,我得到了使用实时 CD 的建议。但是防火墙服务器没有 CD/DVD。我确实有一个 USB DVD,但我想知道是否可以在不使用它的情况下修复文件系统,因为我这里没有实时 CD。

编辑:我很幸运,Ubuntu 桌面的自动定期检查成功了,并检查了我的 sda1 磁盘。显然它没有报告任何错误。可能是因为我在挂载的磁盘上运行了 fsck,所以才出现错误。但在 Ubuntu 服务器上,肯定是出现了错误,因为 apt-get upgrade 因文件系统错误而中止。

我刻录了 Ubuntu 服务器 10.04 LTS,但我的 USB CD 驱动程序在启动过程中没有被考虑,尽管我可以在 BIOS 中选择它。也许我需要升级 BIOS。如果我能找到在 Ubuntu 服务器上启动时强制执行 fsck 的方法并依赖其结果,那么一切都会好起来。

解决方案:以 root 身份在 / 中创建一个名为 forcefsck 的空文件,然后使用命令“shutdown -rF now”重新启动。这将在启动时强制执行 fsck 并在需要时进行修复。

$ sudo touch /forcefsck
$ sudo shutdown -rF now

显然没有发现任何错误。所以我最初看到的错误可能是由检查已安装和使用的文件系统引起的。

答案1

通常,概念是以只读方式安装文件系统(这就是需要实时 CD 的原因)。对于您的情况,由于您没有任何东西,因此您可以在单一模式下启动系统(在启动参数中添加 1)。

您可以做的另一件事是制作一个可启动的 USB(unetbootin)并启动它(有些人认为是 Live CD)

您还可以使用另一个磁盘进行临时启动,并且只读取您实际的磁盘。

还有很多很多事情我现在想不出来。但正如我之前所说,只要找到一种方法将其安装为只读即可。

答案2

如果您可以从防火墙设备中移除驱动器,则将其添加到另一台服务器、挂载 /dev/sda1 并在那里运行 fsck 可能会更简单。

相关内容