[简体中文] / English


Linux From Scratch 安装小记

 

久仰 Linux From Sratch 大名, 最近有空来尝试一下.

Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own custom Linux system, entirely from source code.

官网介绍给出了几个使用 LFS 的理由, 我主要还是想通过构建一个 Linux distro 对 Linux 的各个部分了解的更深入些.

速览

我本次安装的是 13.0 版本的 Linux From Scratch. 这本书渲染成 PDF 有 300 多页, 看着有些吓人, 但编译的指令占了很多篇幅. 我实操总共历时 2 周, 但只投入了一些零碎的时间, 没有仔细统计, 实际花费的时间应该在 10 小时以内.

使用的是环境是 Ubuntu 24.04 的 PVE 虚拟机, 额外加了一块 30G 虚拟硬盘用于安装 LFS, 照抄绝大部分指令就成功了.

开始我觉得做一个 Linux 系统也就是编译一些基本软件, 拼出 rootfs, 再搞个 kernel 和 GRUB 就搞定了. 这个想法可以说是对的, 但不完全对, LFS 构建流程大概有这么几步:

  1. [第 2 章] LFS 磁盘分区创建和挂载
  2. [第 3/4 章] 下载所有所需软件的代码, 配一些 host 上的环境
  3. [第 5 章] 在 host 构建一个临时的 cross compiler gcc (用于保证新构建的软件不依赖到 host 的 lib)
  4. [第 6/7 章] 用上述临时 gcc 编译一个最小的可在目前啥也没有的 LFS 运行的 gcc, 以构建系统必须的工具 (e.g. bash/make/sed/tar 等)
  5. [第 8 章] chroot 到这个只有临时工具的 LFS, 用第二个 gcc 重新编译一次所有软件包, 同时运行测试和安装
  6. [第 9 章] 配置 timezone / locale / shell 等基础配置
  7. [第 10 章] 编译并安装 kernel / GRUB, 配置 fstab
  8. [第 11 章] 重启到 LFS, 安装完成

其中占了我一大半时间的其实还是各种编译, 手动编译 100 来次各种包还是需要不少时间的. 最怀念包管理器的一集.

整个系统安装完成后, 我第一次遇到了启动黑屏的问题, 不过按照 LFS troubleshooting 的文档, 加了几个 kernel 选项很快就解决了. 由于 LFS 运行在 QEMU 虚拟机里, 没有遇到很奇怪的硬件兼容性问题, 还是挺顺利的.

成功启动成功启动

LFS 还有一系列 DLC - BLFS, ALFS, MLFS 等. 如果你真的希望将 LFS 日常使用, 你大概率需要参考一下. 不过我就不继续坐牢手动编译了, 我宁可用 Gentoo.

一些冷知识

仅记录我之前孤陋寡闻而不知道的事, 以及觉得比较新奇的 part


又是一篇小短篇~ 这个月突然写了好多博客

本文采用 CC BY-NC-SA 4.0 许可协议发布.

作者: lyc8503, 文章链接: https://blog.lyc8503.net/post/linux-from-scratch/
如果本文给你带来了帮助或让你觉得有趣, 可以考虑赞助我¬_¬