这个标题可能不像我希望的那样具有描述性,但无法想出更好的标题。
我的服务器的文件系统进入了只读状态。我不明白它为什么这样做,以及如何解决这个问题。
我可以通过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
一旦我手动重启它,它就直接启动了,没有任何警告或消息说有问题。
我希望有人能给我指出正确的方向来解决这个问题。
如果文件系统出现一致性问题,文件系统通常会在系统运行时进入只读状态。这在fstab
中被指定为errors=remount-ro
,当FS访问失败或通过Alt+SysRq+U请求紧急只读重挂时会发生。你可以运行。
sudo fsck -Af -M
来强制检查所有文件系统。正如其他答案之一所说,查看dmesg
也很有帮助。
编辑:别忘了命令行中的 "M"。
注意:正如Bibhas[在他的答案中]提到的(https://askubuntu.com/a/422153/54298)。如果`fsck`在其版本标语后被卡住。
$ sudo fsck -Af -M
fsck from util-linux 2.20.1
你可能想尝试使用 EXT4 专用的fsck
$ sudo fsck.ext4 -f /dev/sda1
只要有问题的分区/dev/sda1
是一个ext4文件系统。