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 系统就已经安装完成了!🎉
🥇 评论区抽粉丝送书啦
【内容简介】
Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户、多线程操作系统,目前已经广泛应用于服务器、桌面、嵌入式等领域。随着互联网的发展,Linux得到了全世界软件爱好者和组织的支持,并不断地完善和发展。
《Linux核心技术从小白到大牛》内容全面、图文并茂、讲解清晰、易学易用、注重实操,不仅涵盖了Linux的安装、命令、文件、目录、系统、磁盘、用户,以及Shell编程等基础操作,还收录了管理软件包、设置和维护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