從頭建立Linux系統,Linux from Scratch安裝訣竅與心得
Linux From Scratch教你從頭編譯安裝出一個Linux系統。就是完全從原始碼編譯軟體和Linux核心,沒有套件管理員輔助,連檔案系統結構都自己設定。
這篇文章紀錄我安裝Linux From Scratch 11.2系統的過程和訣竅,邊看邊實作大約花了整整2天,而且還沒有安裝X視窗系統。
![](https://assets.matters.news/embed/0a94ad71-e733-4c5f-a083-edf81e4d0f73.jpeg)
## 1. 簡介
Linux From Scratch (LFS,直譯為從頭開始的Linux)是一本Linux的安裝手冊,由傑勒德·比克曼斯等人撰寫,可免費於官方網站上取得。
(點選Read Online → Stable LFS 開始閱讀)
![](https://assets.matters.news/embed/0eccea63-ee9c-4367-b1ec-8f6f94e9faa3.png)
LFS主要教導使用者如何從原始碼編譯安裝Linux系統,整本書沒有太多理論,大部分都是照書上的說明打指令安裝。本書內容一直有在更新,LFS相關工具的版本都有追上最新Linux核心,使用者還能從LFS網站下載書中的軟體原始碼「教材」。
此外,照著LFS安裝之後是沒有任何圖形界面的,還要閱讀第二集《Beyond Linux From Scratch》了解如何編譯與設定X視窗系統。
雖然LFS有簡體中文翻譯版,不過有能力的話看英文版比較好。
## 2. LFS安裝註解
這裡給想照著書上步驟安裝LFS的人一點訣竅。
1. 首先,推薦透過Linux宿主機安裝Linux From Scratch。也就是在現有的Linux電腦或虛擬機的硬碟切一個分區用來安裝LFS,並且以chroot設定好LFS的一切東西。這樣做的好處是你可以直接將書中的指令直接複製貼上。
我的作法是用Gpared在電腦上切一個64GB的硬碟分區用於安裝LFS,檔案系統為EXT4,LFS的boot分區跟宿主機共用,採用UEFI開機。
2. LFS只有講傳統BIOS的開機方法,在執行到Chapter 10.4步驟時,使用者需要自行參閱BLFS的GRUB段落,了解如何改用UEFI開機。
3. LFS共有10個章節,但安裝LFS不需要從頭裝到尾不關機,可以退出chroot後休息再來。只要重開機後確認LFS變數還在,接著mount LFS分區,再按照Chapter 7.3和Chapter 7.4步驟,chroot進去LFS系統,就可以繼續安裝。
4. 在Chapter 3.1要下載軟體原始碼的時候,可以使用wget-lists-sysv一次下載LFS需要的全部軟體和patch:
wget --input-file=https://www.linuxfromscratch.org/lfs/view/stable/wget-list-sysv --continue --directory-prefix=$LFS/sources wget --input-file=$LFS/sources/wget-list-sysv --continue --directory-prefix=$LFS/sources
5. Chapter 4.5有提及"SBU"的計量單位,使用者可藉此評估某某軟體的編譯時間。書中皆是以1執行緒為單位計算,比方說Binutils是1 SBU,GCC是11 SBU,你就知道GCC編譯會花很長時間。如果你的電腦硬體比較好,在執行`make`指令的時候可加上"-j"的參數加快編譯速度,像我的電腦有4核心,所以寫成`make -j8`。
6. 在進入Chapter 5後會開始編譯軟體。當書中說要編譯某某軟體的時候,使用者要手動切換到`$LFS/sources`目錄,將對應的軟體原始碼用tar解壓縮,並切換到該目錄,才能繼續操作。例如Chapter 5.2. Binutils-2.39 - Pass 1:
cd $LFS/sources tar -xvf binutils-2.39.tar.xz cd binutils-2.39 # 接著按照該章節說明編譯軟體
7 . Chapter 8每章節編譯軟體後,會有`make check`的步驟,不可略過,因為要檢查編譯過的軟體是否正常執行,可在指令中加上`-j8`加快速度。
8. Chaper 8.50中Pip3安裝套件一律使用root。Chapter 8.51的Wheel是先解壓縮`wheel-0.37.1.tar.gz`後進入目錄,才執行`pip3 install`指令。
9. Chapter 10.3要編譯Linux核心,建議開啟UEFI的選項。硬碟若為NVME則需要在核心中開啟NVME的config,否則開機會無法掛載。
10. 如果要跟宿主機共用boot分區,首先將宿主機的boot分區mount到LFS的/boot目錄,接著再安裝Linux核心和GRUB。grub.cfg不需要手動調整,可用`grub2-mkconfig -o /boot/grub/grub.cfg`自動產生。之後重開機進入BIOS就會看到LFS的開機選項。
![](https://assets.matters.news/embed/50c4e906-74f4-447e-9dcb-01e5813d8bad.jpeg)
## 寫在最後
LFS要人全部軟體從頭編譯,讓人體會1980年代Linux剛出來時,人們開發系統的艱辛。
我用chroot安裝,大部分時候都只是複製貼上指令而已...可是手動編譯了50個以上軟體,也大致記住如何從原始碼編譯安裝軟體了。最難的還是Linux核心設定部份,有時候我會覺得乾脆拷貝Gentoo官方的核心設定檔來用好了。
然而這只是開始而已呢,光沒有圖形的系統就手動編譯了50個以上軟體,續集《Beyond Linux From Scratch》還有更多軟體要編譯。畢竟沒有X視窗是很難將Linux當桌面系統的。
讓我們下次再會吧,在那Linux彼方 (Beyond)。
謝謝您的閱讀,有空歡迎來我的Blog看看更多自由軟體的情報。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/avatar/89acac8f-4c47-4bb2-937a-218251d3fab2.jpeg/public)
- 来自作者
- 相关推荐