我最近在一块全新的外置硬盘上安装了 Lubuntu 17.10,但它经常在启动时出现问题。我收到了标题消息。
如果我启动到恢复模式,除了视频驱动程序未加载之外,一切似乎都很好。
我加载了一张实时 CD 并运行了“检查磁盘”选项。这可以暂时解决问题,但一两次启动之后,问题总会再次出现。
安装操作系统时,我按照网上找到的建议格式化了驱动器:https://i.stack.imgur.com/xSTcF.jpg
我已经重新格式化驱动器并从头开始两次了,如果这值得一提的话,我上次注意到它工作了几天并多次启动,但就在我安装了 postgresql 9.6 并设置了几个服务器之后,启动问题就开始出现了。这可能只是巧合……
有什么提示吗?我可以尝试排除故障吗?我读过其他人谈论编辑 /etc/fstab 的文章,但我对 Linux 操作系统还比较陌生,我不知道我在那里寻找什么。
更新:其他错误信息开始时不时弹出. 包括“journalctl -xb”的这些输出:
- 找不到 TOCBLOCK,数据库可能已损坏
- 未找到缓存模式页面
- SystemID 范围与 Opregion 冲突
- fsck 失败,错误代码为 4
- 本地文件系统依赖失败
我只是在这里大声思考,但这是否与我将驱动器插入多台计算机有关?我需要它在旅行时为我的笔记本电脑提供稳定性,这就是我首先选择外部驱动器的全部原因。
提前感谢您提供的任何帮助!如果您希望我发布更多信息,请告诉我!
答案1
更新 20180327:我最近遇到了一个相当深奥的命令,在过去的两周里,它解决了我的启动问题。以下是我所做的...
按住 ALT+SysRq(在我的笔记本电脑上,SysRq 是 HOME 上的功能键,因此要求我还按住 FN 键),然后在按住这些键的同时,慢慢地 - 每个键之间等待一两秒钟 - 输入(小写):
r e i s u o
这会执行很多操作,包括关闭计算机。瞧!过去两周我都没有遇到任何问题。
那么这到底起什么作用呢?
- R:将键盘从原始模式切换到 XLATE 模式
- E:向除init之外的所有进程发送SIGTERM信号
- I:向除init之外的所有进程发送SIGKILL信号
- S:同步所有已挂载的文件系统
- U:以只读模式重新挂载所有已挂载的文件系统
- O:立即关闭系统,不卸载分区或同步。如果您想重新启动计算机,请键入 B。
更新 20171120:似乎 /dev/sdb3 存在一个反复出现的问题,其中 inode 变得孤立。每当系统以维护模式启动时,运行以下命令始终可以纠正此问题:
$ umount /dev/sdb3 # as a precaution, sdb3 is usually not mounted yet
$ fsck -y /dev/sdb3
这通常会返回一条通知,提示“空闲块计数错误...”,然后是“空闲 inode 计数错误...”,随后进行修复。
系统为什么会经常出问题,目前尚无定论。但与此同时,这修复了系统,让一切恢复正常。
更新 20171113:哎呀……事实证明,这个答案充其量只是暂时的权宜之计……系统将连续多次启动,没有任何问题。但随后,似乎不知从何而来,它将开始启动到维护模式。那么唯一的“修复”就是启动到恢复模式并运行检查磁盘。如果这不能修复默认启动,则加载实时 CD 并对其运行完整的 fsck 检查。
系统在恢复模式下运行良好,这让我确信磁盘没有损坏。此外,由于视频驱动程序在恢复模式下未完全加载,这让我怀疑这与我的笔记本电脑的板载 AMD Radeon 芯片有关。
这让我最终发现了以下命令:
$ ubuntu-drivers devices
此命令列出了与系统硬件相对应的可用软件包。在我的情况下,它列出了“amd64-microcode”。安装该软件包后,我再也没有遇到任何启动问题(敲木头)。当驱动器连接到我的主桌面时,我重复了相同的过程,因此驱动器应该在两个环境中都完全准备好了。