问题描述
标题可能不像我希望的那样具有描述性,但不能提出更好的标题。
我的服务器的文件系统进入Read-only。我不明白它为什么这样做以及如何解决它。
我可以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
一旦我手动重新启动,它就会在没有任何警告或消息表明有问题的情况下启动。
我希望有人能指出我解决这个问题的正确方向。
最佳解决方法
如果存在文件系统一致性问题,则在系统运行时,文件系统通常会进入read-only。这在fstab
中指定为errors=remount-ro
,并且在FS访问失败或通过Alt
+ SysRq
+ SysRq
+ U
请求紧急read-only重新安装时发生。你可以运行:
sudo fsck -Af -M
强制检查所有文件系统。作为其他答案之一,看着dmesg
也很有帮助。
编辑:不要忘记命令行上的-M
。
次佳解决方法
这是解决我的问题的命令:
mount -o remount /
比重新启动或sudo fsck更好 – 都是
第三种解决方法
六分法的答案对我不起作用。每次我尝试执行sudo fsck -Af -M
时,它都显示出来
$ sudo fsck -Af -M
fsck from util-linux 2.20.1
没有别的。没有错误或任何东西。对我来说,启动到一个实时光盘并执行这个工作 –
sudo fsck.ext4 -f /dev/sda1
假设问题/dev/sda1
的分区是ext4文件系统。
第四种方法
尝试运行dmesg | grep "EXT4-fs error"
以查看是否有任何与文件系统/日志系统本身相关的问题。那么我会建议你重新启动你的系统。另外,ObsessiveSSOℲ的sudo fsck -Af
答案不会受到伤害。
第五种方法
如果您想强制根文件系统重新挂载为rw,则可以执行以下操作。
mount -o remount,rw /
第六种方法
请注意,有时这可能是由于计算机忘记了系统时间而引起 – 磁盘检查失败,因为日志中的日期处于未来!
设置BIOS时间(并检查BIOS电池)为我解决了这个问题,而无需进行任何磁盘恢复。