目錄
- 🌲 前言
- 🏅 構建流程
- 一、準備構建
- 二、構建臨時檔案系統
- 三、構建 LFS 系統
- 四、基本系統配置
- 五、讓 LFS 系統可引導
- ?? 粉絲專屬福利
🌲 前言
曾幾何時,是否有想過自己 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: 《玩轉 Vagrant 系列》
玩轉 Oracle: 《Oracle 一鍵安裝腳本》
安裝 Oracle: 《Oracle 零基礎安裝》
運維小知識: 《每天一個DBA小知識》
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/306479.html
標籤:其他
下一篇:【歷史上的今天】10 月 8 日:Netflix 創始人誕生;反向傳播演算法經典論文發表;Android 4.0 發布
