2025年12月28日 星期日

Fedora安裝教學 + 配置btrfs硬碟分割 + btrfs淺談

  最近放了寒假,我於是藉此機會把我的筆電的Linux重灌,主要是兩個目的,一是我想要進一步壓縮Windows系統的硬碟佔用,原本512GB的硬碟一半是Windows、一半是Linux,現在我改爲128GB是Windows、剩下的都是Linux(詳細配置如附圖一);另一個目的是我想要來用看看btrfs這個檔案系統,我好奇相較於Ext4有什麼具體的差別,以及體驗那個有些抽象的子卷(subvolume)的概念。現在就開始吧。

圖一:我目前的硬碟分割配置表。

  • 我的碎碎唸與btrfs的閒聊

  我想要先簡單聊聊btrfs的子卷、優缺點。先說子卷和Linux硬碟分割的關係與重要性。我記得我之前在圖書館看過兩本關於如何上手Fedora Core的書籍(這裏要小小講述一下歷史,一開始Fedora Core是Red Hat Enterprise Linux(簡稱RHEL)的下游,基本上是把RHEL修改後變成Fedora Core,這就有些類似過去的CentOS和RHEL的關係,後來RHEL贊助Fedora社群,此時Fedora變成RHEL的上游、成爲RHEL的商業試驗田,此時也從Fedora Core改爲Fedora),裡面有提到磁碟分區的概念,哪些目錄要分割出多少大小的容量(基本款是分離出/boot、/、/home這三個目錄,分別是用來開機引導、系統目錄、使用者目錄),我當時不知道爲何要細分這麼多目錄,而且這種切割方式會導致空間利用效率不足(那本書切割出很多分區,像是/var、/usr等其他目錄)。而子卷正好解決的這類的問題,現在想象有一個房間,傳統的硬碟分割是把這個房間做隔間,這個隔間蓋好了基本就動不了了;但是btrfs用了一種新的概念,就類似虛擬分區,現在想象一個房間,裏面一樣有分區,但實際上沒有隔間,這些資料都各自屯放在各自的收納袋上(這些收納袋就是子卷,而這些子卷都有自己的名字,以便系統識別),直到所有的東西填滿這個房間才算是使用完這個房間,就不會發生傳統分割方式那樣,其中一間滿了、另一間沒滿,但又不能完全的利用有空間的那一間。


圖二:我看過的關於Fedora Core的兩本書

  現在來講講btrfs的優點,優點很明確,就是有較佳的空間利用效率,因爲我每次都在深思熟慮根目錄要分割多少大小、家目錄要分割多少大小,但現在不用煩惱了,只要將這些分區映射到對應的子卷上就可以了,同時也會發生一個有趣的現象,假設我現在有一個500GB的硬碟,裏面有兩個子卷,而這兩個子卷都會顯示自己有500GB的空間;另一個優點就是快照備份,因爲btrfs採用寫時複製(Copy on Write,CoW),基本上只記錄有變更的部分(這部分用openSUSE的YaST比較能體會出來),因此省空間之外,若要還原(或是回滾)系統,只需要把差異的部分恢復即可;還有一個優點就是壓縮功能,可以適當的設定壓縮比,使得檔案在寫入硬碟前會先進行資料的壓縮,以減少空間佔用和減緩固態硬碟(SSD)的老化。
  來講講缺點,我覺得最主要的缺點大概就是掛載點分配的問題,而這個問題和發行版比較有關係,Fedora和openSUSE對於btrfs的支持度比較友好,可以正確的識別出一個btrfs分區的所有子卷,但是Debian系列(包含Ubuntu)對於btrfs的支援讀不是很好,因爲Debian系列在安裝是無法指定子卷,雖然有自動辨識子卷,但只認得出名爲@(代表/目錄)、@home(代表/home)的子卷,而我的/目錄使用「root」、/home是用「home」表示,使得我要是安裝Debian,我就得手動指定,頗不方便。
  關於設定btrfs之前我想要先分享一下命名子卷的概念以及分享我的分區方案。首先是子卷的命名,一般來說「@」常用來代表「/(根目錄)」、「@home」常用來代表「/home(家目錄)」。而子卷的命名是硬碟的檔案系統——btrfs——用來管理硬碟的這些虛擬分區的錯失、標籤,然而Linux系統是透過目錄(例如/、/home)來識別檔案所在的對應位置,這部分是比較抽象的概念,這麼說好了,可以這麼理解,Linux要對硬碟進行檔案的管理與讀取,會把命令交給btrfs,而btrfs會去定位這些檔案的所在位置,以便系統使用。如果你分割的目錄愈瑣碎,針對性就愈強,未來某一分區出事,就可以針對性的備份或還原,就不用動到整體。還有一個可以留意的是,這些掛載點其實都是掛載在同一個分區。以下是我的分區方案以及我事後推薦的分區方案:

  1. /boot/efi:就是所謂的ESP分區,檔案格式限用FAT32,否則uefi會無法讀取到可以開機的操作系統,大小大約100MB即可。 
  2. /(根目錄):命名爲@,掛載點是「/」。是用來存放系統的目錄,檔案格式是btrfs
  3. /home(家目錄):命名爲@home,掛載點是「/home」。是用來存放使用者資料的目錄,檔案格式是btrfs。
  4. /opt:用來存放軟體的目錄,這裏要留意,這些軟體是指「不用套件管理器安裝的」、「使用.run之類的安裝程式安裝的(就類似用.exe安裝軟體)」,命名爲@opt,掛載點是/opt,檔案格式是btrfs。 

   那麼,接下來我們來進行Fedora的安裝與設定

  • Fedora的安裝(以目前最新的Fedora Workstation 43爲例)
  1. 下載iso檔,並且寫入隨身碟,這部分我就略過。值得一提的是,Fedora Workstation預設是GNOME桌面,也可以下載不同桌面的版本(就是不同spin的版本)。網址:https://www.fedoraproject.org/
    圖三:捲動頁面可以下載GNOME桌面或是KDE桌面,我是下載GNOME桌面。(關於桌面環境選擇,可以參考我的Disto-hopping之旅
    圖四:亦或是點選「Get Fedora」、「Spins」,選擇偏好的桌面環境。
  2. 因爲我是要Windows和Fedora雙系統,因此我先在Windows下切割出一塊空間來安裝(我是拿另外一臺電腦示範,就是那臺AMD CPU的Lenovo電腦,所以分區會和前述不同,但概念是一樣的) 
    圖五:打開WIndows的電腦管理
    圖六:選擇「磁碟管理」
    圖七:選中欲縮小容量的槽,我這裡是C槽
    圖八:輸入要分給Linux的容量,我這裡是128GB,所以輸入128*1024=131072MB的空間(注:Fedora是用二進位制計算容量,也就是1KiB=1024B、1MiB=1024KiB;然而Windows是用十進位,也就是1KB=1000B、1MB=1000KB)
    圖九:分割完成
  3. 開進進入Fedora安裝鏡像。這裏可以不用關閉Secure Boot,因爲Debian、Ubuntu、Fedora基本都支持Secure Boot,但是Arch Linux、Manjaro等Arch系列是不支持Secure Boot,這時就可以關掉,或是一律關掉也行。
    圖十:選擇開機介質
    圖十一:選擇要開機的iso
    圖十二:我們用normal模式開機。如果normal模式會無法通過Secure Boot,那就把Secure Boot關掉
    圖十三:選擇第一項,進入Fedora Live CD
    圖十四:成功進入
  4. 點選「Install Fedora Linux...」
  5. 設定語言
  6. 必要的話選擇欲安裝的硬碟
  7. 進入安裝方法,點選右上角三個點,進入儲存空間編輯器
     
  8. 建立分割區


  9. 因爲我的電腦是uefi,所以我需要掛載/boot/efi分區作爲開機引導

     
  10. 建立子卷

  11. 點選回到安裝。有時Fedora會出現無法識別根目錄的安裝位置,我們點選「繼續安裝」,之後再手動分配掛載點

  12. 在「安裝方法」步驟中,我們選擇「掛載點分配」

  13. 我們手動映射掛載點(注:我這裏就不設定/boot分區,而Fedora預設會配置/boot分區)
     
  14. 完成安裝,重啓電腦到Fedora
     
  15. 接下來就是設定使用者的名稱和密碼,這裏建議務必打開「第三方套件」(在最後一步,我沒截到圖,因此就不展示了。) 

參考資料

沒有留言:

張貼留言