快轉到主要內容

安裝訣竅與心得:Linux From Scratch 11.2 (LFS)

Linux系統 Linux系統安裝教學 Linux
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

Linux From Scratch讓你從頭編譯安裝出一個Linux系統。對,就是完全從原始碼編譯軟體和Linux核心,沒有套件管理員輔助,連檔案系統結構都自己設定。

這篇文章紀錄我安裝Linux from Scratch 11.2系統的過程和訣竅,邊看邊實作大約花了整整2天,而且還沒有安裝X視窗系統。

1. Linux From Scratch簡介
#

Linux From Scratch (LFS,直譯為從頭開始的Linux)是一本Linux的安裝手冊,由Gerard Beekmans等人撰寫,可免費於 官方網站 上取得。

(點選Read Online → Stable LFS 開始閱讀)

LFS主要教導使用者如何從原始碼編譯安裝Linux系統,整本書沒有太多理論,大部分都是照書上的說明打指令安裝。本書內容一直有在更新,本文標題「11.2」就是最新版號。LFS相關工具的版本都有追上最新Linux核心,使用者還能從LFS網站下載書中的軟體原始碼「教材」。

此外,照著LFS安裝之後是沒有任何圖形界面的,還要閱讀第二集《Beyond Linux From Scratch》了解如何編譯與設定X視窗系統。

雖然LFS有簡體中文翻譯版,不過有能力的話看英文版比較好。

2. Linux From Scratch安裝訣竅
#

這裡給想照著書上步驟安裝LFS的人一點訣竅。

  1. 首先,推薦透過Linux宿主機安裝Linux from Scratch。也就是在現有的Linux電腦或虛擬機切一個分區用來安裝LFS,並且以chroot設定好LFS的一切東西。這樣做的好處是你可以直接將書中的指令直接複製貼上。我的作法是用Gparted在電腦上切一個64GB的硬碟分區用於安裝LFS,檔案系統為EXT4,LFS的boot分區跟宿主機共用,採用UEFI開機。

  2. LFS只有講傳統BIOS的開機方法,在執行到 Chapter 10.4步驟時,使用者需要自行參閱 BLFS的GRUB段落,了解如何改用UEFI開機。

  3. LFS共有十個章節,安裝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
  1. Chapter 4.5有提及"SBU"的計量單位,使用者可藉此評估某某軟體的編譯時間。書中皆是以1執行緒為單位計算,比方說Binutils是1 SBU,GCC是11 SBU,你就知道GCC編譯會花很長時間。如果你的電腦硬體比較好,在執行make指令的時候可加上"-j"的參數加快編譯速度,像我的電腦有4核心,所以一律寫成make -j8

  2. 在進入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
# 接著按照該章節說明編譯軟體
  1. Chapter 8每章節編譯軟體後,會有make check的步驟,不可略過,因為要檢查編譯過的軟體是否正常執行,可在指令中加上-j8加快速度。

  2. Chaper 8.50 Pip3安裝套件一律使用Root。 Chapter 8.51 Wheel是先解壓縮wheel-0.37.1.tar.gz後進入目錄,才執行pip3 install指令。

  3. Chapter 10.3要編譯Linux核心,建議開啟UEFI的選項。硬碟若為NVME則需要在核心中開啟NVME的config,否則開機會無法掛載。

  4. 如果要跟宿主機共用boot分區,首先將宿主機的boot分區mount到LFS的/boot目錄,接著再安裝Linux核心和GRUB。grub.cfg不需要手動調整,可用grub2-mkconfig -o /boot/grub/grub.cfg自動產生。之後重開機進入BIOS就會看到LFS的開機選項。

3. 寫在最後
#

LFS要人全部軟體從頭編譯,讓人體會1980年代Linux剛出來時,人們開發系統的艱辛。

我用chroot安裝,大部分時候都只是複製貼上指令而已…可是手動編譯了50個以上軟體,也大致記住如何從原始碼編譯安裝軟體了。最難的還是Linux核心設定部份,有時候我會覺得乾脆拷貝Gentoo官方的核心設定檔來用好了。

然而這只是開始而已呢,光沒有圖形的系統就手動編譯了50個以上軟體,續集《Beyond Linux From Scratch》還有更多軟體要編譯。畢竟沒有X視窗是很難將Linux當桌面系統的。

讓我們下次再會吧,在那Linux彼方 (Beyond)。

相關文章

初探GNU Guix System安裝
Linux系統 Linux系統安裝教學 Linux
筆電Gentoo Linux 安裝紀錄 (Systemd + Gnome)
Linux系統 Linux系統安裝教學 Gentoo
桌上電腦安裝Gentoo Linux筆記 (OpenRC + KDE)
Linux系統 Linux系統安裝教學 Gentoo

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。