如何修复“sudo:无法打开...只读文件系统”?

如何修复“sudo:无法打开...只读文件系统”?

标题可能不像我希望的那样具有描述性,但我无法想出更好的标题。

我的服务器文件系统变成只读状态。我不明白为什么会这样,以及如何解决。

我可以通过 SSH 进入服务器,例如,当尝试启动 apache2 时,我得到以下信息:

username@srv1:~$ sudo service apache2 start
[sudo] password for username:
sudo: unable to open /var/lib/sudo/username/1: Read-only file system
 * Starting web server apache2                                                                                                                                                                                                               (30)Read-only file system: apache2: could not open error log file /var/log/apache2/error.log.
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.

当我尝试重新启动服务器时,我得到:

username@srv1:~$ sudo shutdown -r now
[sudo] password for username:
sudo: unable to open /var/lib/sudo/username/1: Read-only file system

一旦我手动重新启动它,它就会启动,没有任何警告或消息表明有问题。

我希望有人能指出正确的方向来解决这个问题。

答案1

如果存在文件系统一致性问题,文件系统通常会在系统运行时进入只读状态。这在fstabas中指定,并且会在 FS 访问失败或通过+ +errors=remount-ro请求紧急只读重新挂载时发生。您可以运行:AltSysRqU

sudo fsck -Af -M

强制检查所有文件系统。正如其他答案所述,查看dmesg也非常有帮助。

编辑:不要忘记-M命令行。

笔记:正如 Bibhas 所说在他的回答中:如果fsck在版本横幅后卡住了:

$ sudo fsck -Af -M
fsck from util-linux 2.20.1

你可能想尝试使用 EXT4 特定的 fsck

$ sudo fsck.ext4 -f /dev/sda1

假设所讨论的分区/dev/sda1是 ext4 文件系统。

答案2

十六分法给出的答案对我来说不起作用。每次我尝试执行它时sudo fsck -Af -M,它都只显示

$ sudo fsck -Af -M
fsck from util-linux 2.20.1

除此之外什么都没有。没有错误或任何东西。对我来说,启动到实时磁盘并执行此操作有效 -

sudo fsck.ext4 -f /dev/sda1

假设所讨论的分区/dev/sda1是 ext4 文件系统。

答案3

这是解决我的问题的命令:

mount -o remount /

重启或者命令 fsck -Af

答案4

尝试运行dmesg | grep "EXT4-fs error"以查看是否存在与文件系统/日志系统本身相关的任何问题。然后,我建议您重新启动系统。此外,sudo fsck -AfObsessiveSSOℲ 的回答也不会有什么坏处。

相关内容