标题可能不像我希望的那样具有描述性,但我无法想出更好的标题。
我的服务器文件系统变成只读状态。我不明白为什么会这样,以及如何解决。
我可以通过 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
如果存在文件系统一致性问题,文件系统通常会在系统运行时进入只读状态。这在fstab
as中指定,并且会在 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 -Af
ObsessiveSSOℲ 的回答也不会有什么坏处。