答案1
您的硬盘分区很可能已损坏。当 Linux 检测到分区已损坏时,它会自动重新安装为只读,这很可能就是这里发生的情况。
大多数 Linux 发行版在启动时都会运行文件系统检查 (fsck) 命令来检查和修复文件系统和分区错误。此问题的一个可能但不太可能的原因是,您以某种方式禁用了此自动文件系统检查。
像 NoMad 所建议的那样,尝试运行(以 root 身份)fsck.ext4 -f -n /dev/sda5
以查看分区上的文件系统损坏级别(注意:仅仅因为有损坏并不意味着一切都崩溃,我收到 7 个未修复的错误和 2 个未优化的警告,并警告文件系统仍然有错误,但一切仍正常运行。)
你在终端屏幕上看到的输出可以通过以下方式访问消息命令(可能需要 sudo)。试试这个:
dmesg | grep -B 5 -A 5 filesystem
最好是在你遇到问题之后。这应该会向你显示你的文件系统何时被挂载为只读,并且最好能显示确切的原因。
如果文件系统确实损坏,则可能有很多原因。其中最主要的是硬盘出现故障(尤其是在格式化之间发生这种情况)。
要检查您的硬盘是否出现故障,我建议您运行 SMART 测试。为此,您需要安装 smartmontools,或者您可以使用图形前端进行智能测试,例如 GSmartControl,但下面是如何使用 smartmontools 进行测试的指南。
然后运行(以 root 身份)
smartctl -i /dev/sda
(其中 sda 是您要测试的硬盘。在您的具体问题中,该硬盘应该是 /dev/sda)以查明硬盘是否支持 SMART(此输出的底线)。
如果支持可用但尚未启用,请启用它。
smartctl -s on /dev/sda
如果有支持且已启用,则运行智能测试。
smartctl -t long /dev/sda
输出将告诉您等到特定时间再检查并查看结果,它看起来像这样:
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Tue Jan 14 13:54:05 2020
在上述时间之后,你运行
smartctl -l selftest /dev/sda
smartctl -a /dev/sda
smartctl -H /dev/sda
看看结果能得出什么结论。这应该能告诉你硬盘是否出现故障。
如果哪怕只有一个测试失败,您的驱动器就会出现故障,您应该备份数据并尝试寻找替代品。切换到 Windows 也没有用,它只会给您带来 BSOD。
如果您的硬盘没有问题,并且 fsck 结果也没有问题,那么我就不完全确定最可能的原因是什么。
答案2
系统冻结可能无关紧要,但控制台输出显示文件系统错误。systemd 日志无法写入磁盘,因为它以只读方式挂载,并且来自 EXT4 文件系统的读取操作也会失败。
我强烈建议您备份数据,然后在数据安全后尝试修复文件系统。
执行fsck.ext4 -f -n /dev/sda5
以检查文件系统是否损坏。磁盘(硬件)也可能出现故障,从而阻止读写访问。请注意,如果磁盘一开始就存在问题,则文件系统检查和修复等读写密集型操作可能会导致磁盘完全失效。