常见问题与处理方式
在构建过程中会出现各种各样的问题,有些问题经常发生,也经常被问及。在这里将问题的现象和大致的处置措施总结如下,希望大家在发生问题的时候也能保持冷静,根据现象去寻求正确的解决方法。
-
GRUB 配置问题
- 现象:重启后无法进入系统、会进入 grub rescue 界面、甚至找不到引导。
- 原因:每个人的系统的环境也不相同,分区、安装双系统、使用的是 UEFI 都会导致命令和书中的例子有出入。照搬书中的例子去配置,失败的可能性很高。
- 措施:使用安装宿主机时用到的 iso,挂载/boot 分区更改配置即可,如果没有独立的/boot 分区就挂载/(根分区)。
-
其他配置问题
- 现象:你的配置没有生效。类似于网络无法访问、系统时间错误、键盘设置错误。
- 原因:配置未正确配置
- 措施:比 GRUB 配置更小的错误,大多数情况下不会影响系统的启动,系统正常启动后在重新配置即可。如果严重影响到自己配置可以参考 GRUB 配置问题,挂载/(根分区)找到并更改配置文件,或者 chroot 使用命令更改配置皆可。
-
软件包安装错误
- 现象:构建过程出现失败提示。
- 原因:环境配置错误或依赖的软件包安装错误。
- 措施:根据错误提示定位到自己安装错误的软件包,找到出错的原因,然后重新构建错误环节,再来一遍的时候务必仔细。这里推荐重新构建错误环节,也就是临时系统有问题,删掉$LFS/tools 重新构建临时系统,正式构建有问题清空$LFS 中$LFS/tools 以外的目录后重新开始构建。
- 注意:出现失败或者错误信息,并一定是软件包构建错误的原因。有些失败是可以忽略,其中有些在页面中已经记载,有些可能没有记载。原则是不影响后续构建就不是问题。反之如果影响到后续构建了,推荐重新构建该环节,因为你无法判断,在出错之后运行指令哪些生效了,哪些没生效。
-
没有正确设置$LFS
- 现象:无明显现象,但是自构建临时系统起,如果你的$LFS 没有正确设置,会错的乱七八糟,不可能构建成功。
- 预防措施:这个问题是三令五申过的,是不应该发生的问题。多发生在中断构建并重新回来开始构建的时候。能避免这个问题的做好方法就是每次重新开始构建要 chroot 前检查一下$LFS。
-
构建软件包前没有解压并进入软件包
- 该问题多发生于第一次构建 LFS,且没有认真阅读手册中通用编译指南章节的读者。由于问题过于常见,为此本书区别于 LFS 手册,直接把解压并进入软件包和退出并清理软件包的命令也完整的写出来了。
LFS 并没有很难,至少按照手册的推荐运行指令,可以很容易的完成构架工作。但 LFS 同样也没有很简单,至少不能将构建工作等同于复制粘贴。初学者常常不看指令的描述,甚至连标注注意的段落都不看,单纯的复制粘贴指令,然后发生了种种低级错误,再回过头提问,使用搜索引擎等。这样非常消磨时间和构建者本身的意志力。笔者更推荐读者将构建系统这个看得见的目标放下,转而去学习,去体会 LFS 的构建逻辑,去理解 Linux 系统的组成,构建本身只是践行所学知识的一种实践方式而已。
希望通过阅读本书,读者可以学到 Linux 构成的相关知识,享受自制 Linux 的过程。