LFS7.7一步步教你从 〇 开始撸个 Linux 系统 | 文末送书

Posted Lucifer三思而后行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LFS7.7一步步教你从 〇 开始撸个 Linux 系统 | 文末送书相关的知识,希望对你有一定的参考价值。


点我跳转文末 领书,价值 109 元的 《Linux核心技术从小白到大牛》!

本篇文章 点赞 + 收藏 + 评论!评论区点赞前三,皆可参与送书活动!

🌲 前言

曾几何时,是否有想过自己 DIY 一个 Linux 系统,就像造汽车一样一步步的构建一个 Linux 系统!

🚗 做个形象的比喻:

汽车(Linux发行版)= 发动机(内核)+ 轮子和方向盘(shell)+ 车架子和座椅(桌面)+ 倒车雷达/自动泊车(基础软件)

在大众的眼里,Linux似乎是很神秘的东西,比如经常说到的,网上的黑客用的都是Linux,对着黑色的框框敲几条命令,就能够控制很多电脑,控制网络。这个时候,Linux像是游戏里的神器,无所不能。稍微懂一点计算机知识的人来说,知道Linux是一个操作系统,但是是个什么样的操作系统,也不太了解。

Linux From Scratch 项目简称 LFS,它提供具体的步骤、特定的补丁、必须的脚本,从而提供一个简便的创建Linux发行版的途径。LFS并不是一个发行版,但是它可以作为制作初级发行版的良好练习。

🔥 有什么好处:

  • 了解一个完整的linux系统是如何组成的
  • 可以更好的理解 Linux 是如何正常运转,和其它程序之间是如何协同工作,以及和其它程序之间的依赖关系
  • 可以让你创建极其精简的 Linux 系统
  • 对系统本身有更多的控制权,而不必知道别人是如何实现的
  • 加强对 Linux 系统的深入理解,装逼必备

☀️ 本文将一步步教你如何从零开始构建一个 Linux 系统!

🏅 构建流程

📚 构建流程参考自官方文档:Linux From Scratch

以下将我完整构建流程分为以下几个部分进行展示链接 🔗,通过链接可以直接跳转操作!

只要跟着教程一步步操作,必然可以成功!🎉

一、准备构建

从零开始 DIY Linux 系统:LFS 介绍
从零开始 DIY Linux 系统:虚拟机创建宿主机(Centos7)

⭐️ 系统安装完成配置之后,建议做一个快照!以备后续误操作可以回退~

从零开始 DIY Linux 系统:磁盘分区(Version 7.7)
从零开始 DIY Linux 系统:软件包、补丁以及创建用户(Version 7.7)

上述步骤为准备阶段,下面开始构建临时文件系统!

二、构建临时文件系统

Binutils 编译耗时较长…

从零开始 DIY Linux 系统:构建临时系统 - Binutils-2.25 - 第1遍

GCC 编译耗时较长…

从零开始 DIY Linux 系统:构建临时系统 - GCC-4.9.2
从零开始 DIY Linux 系统:构建临时系统 - Linux-3.19

Glibc 编译耗时较长…

从零开始 DIY Linux 系统:构建临时系统 - Glibc-2.21
从零开始 DIY Linux 系统:构建临时系统 - Libstdc+±4.9.2

Binutils 编译耗时较长…

从零开始 DIY Linux 系统:构建临时系统 - Binutils-2.25 - 第2遍

GCC 编译耗时较长…

从零开始 DIY Linux 系统:构建临时系统 - GCC-4.9.2 - 第2遍

⭐️ GCC 第2遍编译之后,建议做一个快照!以备后续误操作可以回退~

从零开始 DIY Linux 系统:构建临时系统 - Tcl-8.6.3
从零开始 DIY Linux 系统:构建临时系统 - Expect-5.45
从零开始 DIY Linux 系统:构建临时系统 - DejaGNU-1.5.2
从零开始 DIY Linux 系统:构建临时系统 - Check-0.9.14
从零开始 DIY Linux 系统:构建临时系统 - Ncurses-5.9
从零开始 DIY Linux 系统:构建临时系统 - Bash-4.3.30
从零开始 DIY Linux 系统:构建临时系统 - Bzip2-1.0.6
从零开始 DIY Linux 系统:构建临时系统 - Coreutils-8.23
从零开始 DIY Linux 系统:构建临时系统 - Diffutils-3.3
从零开始 DIY Linux 系统:构建临时系统 - File-5.22
从零开始 DIY Linux 系统:构建临时系统 - Findutils-4.4.2
从零开始 DIY Linux 系统:构建临时系统 - Gawk-4.1.1
从零开始 DIY Linux 系统:构建临时系统 - Gettext-0.19.4
从零开始 DIY Linux 系统:构建临时系统 - Grep-2.21
从零开始 DIY Linux 系统:构建临时系统 - Gzip-1.6
从零开始 DIY Linux 系统:构建临时系统 - M4-1.4.17
从零开始 DIY Linux 系统:构建临时系统 - Make-4.1
从零开始 DIY Linux 系统:构建临时系统 - Patch-2.7.4
从零开始 DIY Linux 系统:构建临时系统 - Perl-5.20.2
从零开始 DIY Linux 系统:构建临时系统 - Sed-4.2.2
从零开始 DIY Linux 系统:构建临时系统 - Tar-1.28
从零开始 DIY Linux 系统:构建临时系统 - Texinfo-5.2
从零开始 DIY Linux 系统:构建临时系统 - Util-linux-2.26
从零开始 DIY Linux 系统:构建临时系统 - Xz-5.2.0
从零开始 DIY Linux 系统:构建临时系统 - 收尾工作

⭐️ 构建临时系统完成之后,建议做一个快照!以备后续误操作可以回退~

三、构建 LFS 系统

接下来,我们会进入构建环境然后开始认真地构建 LFS 系统!

从零开始 DIY Linux 系统:构建 LFS 系统 - 准备虚拟内核文件系统
从零开始 DIY Linux 系统:构建 LFS 系统 - 进入 Chroot 环境

📢 注意:如果下方编译过程未一次完成,再次继续的时候需要再次进入 Chroot 环境才能编译:

chroot "$LFS" /tools/bin/env -i \\
    HOME=/root                  \\
    TERM="$TERM"                \\
    PS1='\\u:\\w\\$ '              \\
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \\
    /tools/bin/bash --login +h

从零开始 DIY Linux 系统:构建 LFS 系统 - 创建目录
从零开始 DIY Linux 系统:构建 LFS 系统 - 创建必需的文件和符号链接

下面又要开始编译啦!

从零开始 DIY Linux 系统:构建 LFS 系统 - Linux-3.19 API 头文件
从零开始 DIY Linux 系统:构建 LFS 系统 - Man-pages-3.79

Glibc 编译耗时非常久… 需要耐心等待丫!

从零开始 DIY Linux 系统:构建 LFS 系统 - Glibc-2.21

⭐️ Glibc 编译完成之后,如果后续出问题,重新编译太久了,建议做一个快照!

从零开始 DIY Linux 系统:构建 LFS 系统 - 调整工具链
从零开始 DIY Linux 系统:构建 LFS 系统 - Zlib-1.2.8
从零开始 DIY Linux 系统:构建 LFS 系统 - File-5.22

Binutils 编译耗时较长…

从零开始 DIY Linux 系统:构建 LFS 系统 - Binutils-2.25
从零开始 DIY Linux 系统:构建 LFS 系统 - GMP-6.0.0a
从零开始 DIY Linux 系统:构建 LFS 系统 - MPFR-3.1.2
从零开始 DIY Linux 系统:构建 LFS 系统 - MPC-1.0.2

⚠️ 这次的 GCC 编译耗时灰常灰常久…

从零开始 DIY Linux 系统:构建 LFS 系统 - GCC-4.9.2

⭐️ GCC 编译完成之后,如果后续出问题,重新编译太久了,建议做一个快照!

从零开始 DIY Linux 系统:构建 LFS 系统 - Bzip2-1.0.6
从零开始 DIY Linux 系统:构建 LFS 系统 - Pkg-config-0.28
从零开始 DIY Linux 系统:构建 LFS 系统 - Ncurses-5.9
从零开始 DIY Linux 系统:构建 LFS 系统 - Attr-2.4.47
从零开始 DIY Linux 系统:构建 LFS 系统 - Acl-2.2.52
从零开始 DIY Linux 系统:构建 LFS 系统 - Libcap-2.24
从零开始 DIY Linux 系统:构建 LFS 系统 - Sed-4.2.2
从零开始 DIY Linux 系统:构建 LFS 系统 - Shadow-4.2.1
从零开始 DIY Linux 系统:构建 LFS 系统 - Psmisc-22.21
从零开始 DIY Linux 系统:构建 LFS 系统 - Procps-ng-3.3.10
从零开始 DIY Linux 系统:构建 LFS 系统 - E2fsprogs-1.42.12
从零开始 DIY Linux 系统:构建 LFS 系统 - Coreutils-8.23
从零开始 DIY Linux 系统:构建 LFS 系统 - Iana-Etc-2.30
从零开始 DIY Linux 系统:构建 LFS 系统 - M4-1.4.17
从零开始 DIY Linux 系统:构建 LFS 系统 - Flex-2.5.39
从零开始 DIY Linux 系统:构建 LFS 系统 - Bison-3.0.4
从零开始 DIY Linux 系统:构建 LFS 系统 - Grep-2.21
从零开始 DIY Linux 系统:构建 LFS 系统 - Readline-6.3
从零开始 DIY Linux 系统:构建 LFS 系统 - Bash-4.3.30
从零开始 DIY Linux 系统:构建 LFS 系统 - Bc-1.06.95
从零开始 DIY Linux 系统:构建 LFS 系统 - Libtool-2.4.6
从零开始 DIY Linux 系统:构建 LFS 系统 - GDBM-1.11
从零开始 DIY Linux 系统:构建 LFS 系统 - Expat-2.1.0
从零开始 DIY Linux 系统:构建 LFS 系统 - Inetutils-1.9.2
从零开始 DIY Linux 系统:构建 LFS 系统 - Perl-5.20.2
从零开始 DIY Linux 系统:构建 LFS 系统 - XML::Parser-2.44
从零开始 DIY Linux 系统:构建 LFS 系统 - Autoconf-2.69
从零开始 DIY Linux 系统:构建 LFS 系统 - Automake-1.15
从零开始 DIY Linux 系统:构建 LFS 系统 - Diffutils-3.3
从零开始 DIY Linux 系统:构建 LFS 系统 - Gawk-4.1.1
从零开始 DIY Linux 系统:构建 LFS 系统 - Findutils-4.4.2
从零开始 DIY Linux 系统:构建 LFS 系统 - Gettext-0.19.4
从零开始 DIY Linux 系统:构建 LFS 系统 - Intltool-0.50.2
从零开始 DIY Linux 系统:构建 LFS 系统 - Gperf-3.0.4
从零开始 DIY Linux 系统:构建 LFS 系统 - Groff-1.22.3
从零开始 DIY Linux 系统:构建 LFS 系统 - Xz-5.2.0
从零开始 DIY Linux 系统:构建 LFS 系统 - GRUB-2.02~beta2
从零开始 DIY Linux 系统:构建 LFS 系统 - Less-458
从零开始 DIY Linux 系统:构建 LFS 系统 - Gzip-1.6
从零开始 DIY Linux 系统:构建 LFS 系统 - IPRoute2-3.19.0
从零开始 DIY Linux 系统:构建 LFS 系统 - Kbd-2.0.2
从零开始 DIY Linux 系统:构建 LFS 系统 - Kmod-19
从零开始 DIY Linux 系统:构建 LFS 系统 - Libpipeline-1.4.0
从零开始 DIY Linux 系统:构建 LFS 系统 - Make-4.1
从零开始 DIY Linux 系统:构建 LFS 系统 - Patch-2.7.4
从零开始 DIY Linux 系统:构建 LFS 系统 - Systemd-219
从零开始 DIY Linux 系统:构建 LFS 系统 - D-Bus-1.8.16
从零开始 DIY Linux 系统:构建 LFS 系统 - Util-linux-2.26
从零开始 DIY Linux 系统:构建 LFS 系统 - Man-DB-2.7.1
从零开始 DIY Linux 系统:构建 LFS 系统 - Tar-1.28
从零开始 DIY Linux 系统:构建 LFS 系统 - Texinfo-5.2
从零开始 DIY Linux 系统:构建 LFS 系统 - Vim-7.4

📢 注意:清理前需要先退出当前环境,然后再次进入 Chroot 环境:

export LFS=/mnt/lfs
chroot $LFS /tools/bin/env -i            \\
    HOME=/root TERM=$TERM PS1='\\u:\\w\\$ ' \\
    PATH=/bin:/usr/bin:/sbin:/usr/sbin   \\
    /tools/bin/bash --login

从零开始 DIY Linux 系统:构建 LFS 系统 - 再次清理无用内容

执行完 Strip 之后再次退出环境!

logout

⭐️ 所有软件编译安装完成之后,建议做一个快照!

四、基本系统配置

进入 Chroot 环境:

export LFS=/mnt/lfs
chroot $LFS /usr/bin/env -i            \\
    HOME=/root TERM=$TERM PS1='\\u:\\w\\$ ' \\
    PATH=/bin:/usr/bin:/sbin:/usr/sbin   \\
    /bin/bash --login

从零开始 DIY Linux 系统:基本系统配置 - 通用网络配置
从零开始 DIY Linux 系统:基本系统配置 - 配置系统时间
从零开始 DIY Linux 系统:基本系统配置 - 系统区域设置
从零开始 DIY Linux 系统:基本系统配置 - 创建 /etc/inputrc 文件
从零开始 DIY Linux 系统:基本系统配置 - 创建 /etc/shells 文件
从零开始 DIY Linux 系统:基本系统配置 - Systemd 的用法与配置

五、让 LFS 系统可引导

⭐️ 是时候该让 LFS 系统可以启动了!

本节主要为:

  • 创建 fstab 文件
  • 为新的 LFS 系统编译内核
  • 安装 GRUB 引导器

如此,就可以在电脑启动的时候选择启动 LFS 系统了!

从零开始 DIY Linux 系统:让 LFS 系统可引导 - 创建 /etc/fstab 文件
从零开始 DIY Linux 系统:让 LFS 系统可引导 - Linux-3.19
从零开始 DIY Linux 系统:让 LFS 系统可引导 - 安装 GRUB
从零开始 DIY Linux 系统:让 LFS 系统可引导 - 收尾


😄 哈哈,干的很不错!到这里,全新的 LFS 系统就已经安装完成了!🎉


🥇 评论区抽粉丝送书啦

本次赠书由博主 联合 【机械工业出版社】一起赞助
💌 欢迎大家在评论区提出意见和建议! (抽 5 位幸运儿送书,实物图如下)💌

《Linux核心技术从小白到大牛》

【内容简介】

Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户、多线程操作系统,目前已经广泛应用于服务器、桌面、嵌入式等领域。随着互联网的发展,Linux得到了全世界软件爱好者和组织的支持,并不断地完善和发展。
《Linux核心技术从小白到大牛》内容全面、图文并茂、讲解清晰、易学易用、注重实操,不仅涵盖了Linux的安装、命令、文件、目录、系统、磁盘、用户,以及Shell编程等基础操作,还收录了管理软件包、设置和维护Linux系统、网络安全技术,以及部署网站等核心技术。同时,针对不同层次的读者增加了“小白逆袭”和“大牛成长之路”以及“技术大牛访谈”等辅助学习板块,让读者在学习的过程中获得更多贴近实际应用的技巧和方法。书中包含了丰富的实战案例,可以帮助读者快速掌握Linux各命令的作用和用法。
《Linux核心技术从小白到大牛》既可以作为大中专院校和培训机构相关专业的培训教程,也可以作为Linux开源爱好者和Linux用户的技术指南。

也有不想靠抽,想自己买的同学可以参考下面的链接!

京东自营购买链接:

《Linux核心技术从小白到大牛》- 京东图书


📢 注意:

🏆 想要跟着我一起打卡的朋友,可以 添加微信Lucifer-4622 一起打卡,我保证能让你学习之余收获奖品🏅!

❤️ 加入数据库社区跟我一起打卡:零基础 21 天速通 openGauss 打卡活动报名贴!

🏆 抽奖方式:社区报名活动贴报名参加活动后,添加微信 Lucifer-4622 参与抽奖!

新的一周,活动奖励升级,增加抽奖池,绝对丰厚!详情戳:https://bbs.csdn.net/topics/603632186

社区每日打卡地址(日更)https://docs.qq.com/doc/DRWJIV2VGdktPS3NE

以上是关于LFS7.7一步步教你从 〇 开始撸个 Linux 系统 | 文末送书的主要内容,如果未能解决你的问题,请参考以下文章

pygame教你从0到1一步步实现点到点的智能追踪系统(其三)

pygame教你从0到1一步步实现点到点的智能追踪系统(其二)

干货! 一步步教你从Oracle 11gR2 RAC 升级至18c

source insight 教你一步步建立linux源码工程

手把手教你从零开始搭建SpringBoot后端项目框架

手把手教你从零开始搭建SpringBoot后端项目框架