在过去的几天里,我的 Ubuntu 12.10 随机进入只读模式,导致我无法保存任何已编辑的文件,并迫使我重启电脑,这很麻烦,因为这是我进行所有编程工作的平台。当我重启进入 Ubuntu 时(我与 Windows 7 有双启动),它告诉我检测到磁盘错误,我必须按 来f修复它,之后它将成功重启。
我的 Windows 7 没有出现任何问题,所以不可能是硬盘。我还在论坛上看到我应该运行这些命令来修复此问题:mount --options remount,rw /
和mount --all
,但这些命令只是说我无法在只读系统上安装该设备。我是 Linux 新手(也是计算机新手),所以任何帮助都将不胜感激!
编辑1:
好的,我fsck
从启动 CD 运行了……它应该只需要两秒钟吗?因为我的确实需要两秒钟。无论如何,它返回了两个错误:
Superblock last mount time is in the future (hardware clock incorrect)
和
Superblock last write time is in the future (hardware clock incorrect)
显然,它解决了这两个问题。
编辑2:
我刚才跑了sudo fsck -Cf /dev/sda5
。这次发现了很多。
应该fsck
只需要几秒钟吗?
编辑3:
我刚刚运行sudo badblocks -v /dev/sda5
,badblocks 发现了四个坏扇区:
27238968
27238969
27238970
27238971
我该如何利用这些知识?bodhi 链接的指南说将它们写入文件,但我在 LiveCD 中 - 我无法将任何东西写入硬盘。
答案1
问题
它随机切换到只读的原因是,如果内核检测到文件系统错误,它会立即切换到只读模式,以防止进一步破坏磁盘。(也就是说,问题不在于硬盘本身,而在于硬盘上的文件系统。)如果继续使用这种损坏的文件系统,情况只会变得更糟,而不是更好。修复它的最简单方法是使用实时 CD/DVD;Ubuntu 安装盘就可以了。
修复
不言而喻,但第零步是确保您已备份重要数据。
- 从活动磁盘启动您的计算机。
- 执行这些操作的最简单方法是在终端中,因此继续使用 Ctrl-Alt-T 打开一个终端。
- 运行
sudo blkid
以获取计算机上所有块设备的列表。您要查找的是安装 Ubuntu 的分区;它可能是/dev/sdaX
,其中 X 是某个数字。如果您完全不知道它是哪一个,它很可能是唯一一个格式化为 ext3 或 ext4 的分区(TYPE="ext4"
)。 - 运行
sudo umount <your partition>
以确保分区已被卸载;文件系统检查器将拒绝对已安装的磁盘进行操作。 - 运行
sudo fsck -Cy <your partition>
。该-C
选项显示进度条,仅供展示。-y
告诉fsck
继续并修复它发现的所有内容。如果返回错误,请自行判断,或在此处发布错误,我会查看。 - 重启;希望您已经完成!如果您愿意,您可以
fsck
多次运行以确保它确实修复了所有问题。
答案2
如果您同时使用 Ubuntu 和 Windows 双启动您的计算机并且出现此问题,这是因为 Windows 更改了文件系统,在这种情况下,这可能会奏效。尝试禁用快速启动
控制面板 > 硬件和声音 > 电源选项 > (左侧)选择关闭盖子的功能 > 更改当前不可用的设置 > 取消勾选“打开快速启动”
现在启动 Ubuntu 将解决问题。希望这能有所帮助!