「緯育 2026-0407」修訂間的差異

出自頂極製作所
行 254: 行 254:
** 純 MBR 壞掉需推測分割邊界並以檔案系統固定標記(如 ext superblock)驗證;GPT 可自尾端備份修復。理解底層有助於疑難排解,非開發者可依賴工具。
** 純 MBR 壞掉需推測分割邊界並以檔案系統固定標記(如 ext superblock)驗證;GPT 可自尾端備份修復。理解底層有助於疑難排解,非開發者可依賴工具。
[[檔案:2026-0413-02.png|800px]]
[[檔案:2026-0413-02.png|800px]]
=== 磁碟與檔案系統資訊查詢 ===
* 查詢磁碟分割區類型與屬性 (blkID)
** blkID 可列出系統中所有磁碟分割區的裝置名稱、LABEL(標籤)、UUID(通用唯一識別碼)、TYPE(檔案系統類型)與 Block Size(區塊大小)。
** 範例:sdb2 的 LABEL 為 MFAD、Block Size 為 512。
** 可在資料救援前確認檔案系統類型以利後續操作。
** 可針對單一分割區查詢:blkID /dev/sdb1。
** 亦可透過 LABEL 或 UUID 反查裝置:blkID -L [label_name]。
* 查詢磁碟空間使用狀況 (df)
** df 顯示已掛載檔案系統的空間使用狀況;未掛載的分割區不會出現。
** 預設容量單位為 1K-blocks,可能與實際 Block 大小(如 4K)不符。
** 常用參數:
** -h(human-readable):以 G/M/K 顯示,便於快速判讀。
** -i(inodes):顯示 inode 使用情況;inode 用盡等同空間用滿。
** -T(print-type):顯示檔案系統類型(如 ext4、tmpfs)。
* 查詢目錄或檔案占用空間 (du)
** du 用於估算檔案或目錄占用的磁碟空間。
** 常用參數:
** -a(all):列出所有檔案與目錄大小。
** -s(summarize):僅顯示總計。
** -h(human-readable):人類易讀格式。
** 常見用法:du -sh [路徑] 快速查詢指定目錄總大小,如 du -sh /home/user。
* 查詢檔案或目錄詳細狀態 (stat)
** stat 顯示檔案或目錄的詳細 inode 資訊。
** 輸出包含:
** 檔名、檔案大小、占用 Blocks 數量、IO Block 大小。
** 檔案類型(regular file、directory)。
** 權限(如 0664)、UID(擁有者 ID)、GID(群組 ID)。
** Inode 編號:資料救援時的關鍵。
** Links(連結數):指向同一 inode 的檔名數量;若為 2,表示另有一個連結(類似捷徑)。
** 時間戳:Access(存取)、Modify(內容修改)、Change(狀態變更);部分系統另有 Birth(建立)。
** stat -f [檔案路徑] 可列出檔案所在檔案系統資訊。
** stat -c [格式] 可自訂輸出,如 stat -c %s [檔案] 只顯示檔案大小。
=== LVM(邏輯卷管理)概念 ===
* 空間不足的解決方案
** 除了更換更大硬碟,亦可使用 LVM 動態調整儲存空間,常見情境可在不停機或不遷移資料下完成。
* LVM 的應用場景
** 擴充空間:購入新硬碟後,透過指令將容量加入現有邏輯卷。
** 縮小空間:縮減未使用空間,釋放以供他用。
** 更換硬碟:當插槽已滿時,可將舊硬碟資料遷移至新硬碟,再移除舊硬碟;LVM 能簡化流程。
=== 磁碟檢測與修復 ===
* 基本概念
** 各檔案系統對應不同檢測與修復工具。
** 在檢測與修復前,務必先卸載目標分割區,否則可能無法執行。
* EXT 檔案系統檢測 (e2fsck)
** e2fsck 用於檢測 EXT2/EXT3/EXT4。
** 常用參數:
** -p:自動修復偵測到的問題,無需逐一確認。
** -n:僅檢查不修復,列出問題但不寫入變更。
* *其他檔案系統檢測 (fsck.)
** fsck 為通用前端,依檔案系統類型呼叫對應工具,如 fsck.fat、fsck.ntfs。
** FAT 系統:使用 fsck.fat;-a 自動修復、-v 顯示詳細過程。
** NTFS 系統**:工具為 ntfsfix(講師口誤為 NTFS Base),主要比對 MFT(主檔案表)與其備份並修正常見問題;在掛載狀態下無法執行。
[[檔案:2026-0413-03.png|800px]]

於 2026年4月14日 (二) 00:58 的修訂

本系列講座旨在介紹磁碟的基礎知識,從傳統機械硬碟(HDD)的物理架構、歷史演進、運作原理談起,深入剖析了影響其效能的各種因素,如磁頭同步移動的瓶頸、資料儲存方式(PMR/SMR)的演進等。講座涵蓋了一顆新硬碟從購買到可以儲存檔案的完整流程,包含磁碟分割、格式化至掛載的三大步驟,並比較了MBR與GBT兩種分割表。

此外,內容還深入探討了記憶體與硬碟在電腦系統中的不同角色、巨大的速度差異及其對系統效能的影響,並解釋了資料從CPU、記憶體到硬碟的流動過程。最後,講師分享了硬碟的選購考量、品牌保固經驗、資料救援概念與實務技巧,並建議使用者遵循標準關機程序以避免資料遺失。

磁碟管理流程與概念

  • 磁碟管理三步驟
    • 一個全新的磁碟從購買到可以儲存第一個檔案,需要經過三個主要步驟:分割、格式化、掛載。
    • 在Linux中,這三個步驟是明確分開的;而在微軟Windows或蘋果macOS中,許多步驟已自動化,例如插入隨身碟時,系統會自動分配磁碟機代號或在桌面顯示圖示,這背後其實就是自動化的掛載過程。
  • 磁碟分割與分割表
    • 磁碟分割是使用特定指令(如磁碟分割工具)來規劃硬碟空間,將其劃分為一個或多個稱為「分割區」(Partition)的獨立區域。
    • 分割資訊儲存在磁碟分割表中,目前主要有兩種:MBR (Master Boot Record) 和 GBT (GUID Partition Table)。
    • MBR是較早且較簡單的格式。GBT是更新、可支援更大容量的格式,現今Windows系統預設使用GBT。
    • 如果購買的內接硬碟插入電腦後,Windows 系統立即就分配了磁碟機代號(如 D 槽),這代表硬碟可能已經被使用過(二手品),因為原廠新碟不會預先分割。
  • 磁碟格式化與檔案系統
    • 僅分割完的磁碟還無法使用,必須進行格式化。
    • 格式化時需要選擇一種檔案系統,例如NTFS或FAT32,這個選擇決定了檔案在硬碟上的儲存方式,並為分割區建立檔案系統結構。
    • 了解檔案系統的運作原理,是進行磁碟資料救援的基礎。
  • 掛載 (Mount)
    • 格式化完成後,需要進行「掛載」,才能讓作業系統存取該磁碟區。
    • 在微軟系統中,這個過程對應的是分配一個磁碟機代號(如D槽)。雖然有「卸載」概念,但通常不使用「掛載」一詞。
    • 在Linux和macOS中,掛載是將一個分割區連結到指定的目錄(進入點),使用者進入該目錄即是存取該分割區。

硬體架構與效能

  • 傳統硬碟 (HDD) 架構與歷史
    • 講座主要介紹包含旋轉盤片、磁頭的傳統硬碟架構。儘管SSD普及,但HDD因其每TB成本最低,仍被廣泛使用。
    • 硬碟內部所有磁頭是連動的,會一起移動,無法分開行動,這是硬碟存取速度最慢的瓶頸。
    • 硬碟製造商經歷多次併購,現今市場上所剩無幾,如WD併購Quantum、Seagate也併購多家公司。
  • 記憶體 (RAM) 與硬碟 (Disk) 的比較
    • 記憶體:暫存資料,斷電後資料會消失,但存取速度極快。增加記憶體可提升系統效率,但受CPU等其他元件影響。
    • 硬碟:永久存放資料,關機後資料依然存在,但存取速度是電腦中最慢的元件之一,常是系統效能瓶頸。
  • 速度比較
    • 傳統硬碟讀寫速度約140-180MB/s。
    • SATA SSD可達約500MB/s。
    • PCIe 5.0 M.2 SSD可達10G/s上下。
    • DDR5記憶體速度可達每秒六七十GB (60-70 G/s),遠快於最快的硬碟。
  • 提升舊電腦效能
    • 若舊電腦開機緩慢且仍在使用傳統硬碟,將其更換為SSD會帶來顯著的速度提升。若提升未達預期,則瓶頸可能在於CPU。

硬碟技術的發展與演進

  • 失敗的技術嘗試
    • 雙磁頭硬碟:Seagate曾推出有兩組獨立磁頭的硬碟,雖理論速度翻倍,但因故障率過高而被淘汰。
    • 混合碟 (Hybrid Drive):結合HDD與少量SSD,由韌體自動將常用資料快取至SSD。但因常「猜錯」資料導致SSD過度寫入而損壞,最終失敗。
  • 定址模式的演進
    • CHS (磁柱-磁頭-磁區):非常早期的定址方式,上限僅8GB,已被淘汰。
    • LBA (Logical Block Addressing):目前所有硬碟使用的定址機制,將所有磁區從0開始編號,作業系統只需提供一個邏輯位址即可。LBA的版本(如LBA32、LBA48)決定了電腦能支援的最大硬碟容量。
  • 容量增加技術
    • 垂直磁記錄 (PMR):將磁性顆粒從水平改為垂直排列,增加儲存密度。
    • 疊瓦式磁記錄 (SMR):將磁軌部分重疊以進一步提升容量。寫入時因「寫入頭」比「讀取頭」寬,會覆蓋相鄰磁軌。這使得修改資料時,需將整個大區塊讀入快取,修改後再整個寫回,導致寫入效能較差且更易損壞。

提升傳統硬碟效能與選購技巧

  • 效能優化技巧
    • 資料連續存放:應盡量讓資料連續存放,最好在同一個磁軌或磁柱上,以減少磁頭移動。
    • 磁碟重組:將分散的檔案片段整理成連續區塊,對傳統硬碟效率有顯著幫助,但對SSD則不建議。
    • 利用外圈高速特性:硬碟外圈的線性速度快於內圈。可將系統分割區(C槽)設定得較小並置於硬碟起始位置,確保作業系統檔案存放在最快的外圈。
  • 硬碟轉速的影響
    • 過去認為轉速越快越好,但對於現代高密度大容量硬碟,為確保磁頭能準確讀寫,轉速反而可能偏低。
  • SMR 硬碟的辨識與選購建議
    • SMR 硬碟為彌補寫入缺陷,通常會配備比同容量CMR硬碟大得多的快取記憶體(如256MB vs 32MB)。檢查快取大小是分辨方法之一。
    • 講師建議,若可選擇,應購買快取較小(如16MB、32MB)的硬碟,這類硬碟通常採用傳統PMR/CMR技術,寫入效能較穩定。
  • 硬碟品牌與保固經驗 (WD vs. Seagate)
    • 講師個人經驗認為WD硬碟相對不易損壞,但其保固內的資料救援需額外付費。
    • Seagate在特定時期曾提供免費資料救援服務,顯示廠商誠意。
    • WD的綠標硬碟因頻繁休眠導致口碑不佳後停產,現今部分藍標實為過去的綠標產品。黑標提供五年保固但價格昂貴。

資料處理與救援

  • 電腦資料處理流程
    • CPU需要資料時,作業系統會指揮硬碟將資料讀取到高速的記憶體中,CPU直接與記憶體互動。
    • 存檔時,資料先寫入記憶體,作業系統會等待閒置時機再將資料寫回硬碟以提高效率。
  • 不正常關機的風險
    • 由於無法確認記憶體中的資料是否已全部寫入硬碟,突然斷電可能導致這些暫存資料遺失,造成檔案損毀。
    • 為確保資料完整性,務必遵循標準的關機程序。

2026-0407-05.png

硬碟分割管理觀念

本次系列講座深入探討了個人電腦(PC)硬碟分割的歷史淵源、技術細節與實務操作。講師從IBM設計PC的歷史背景講起,解釋了IBM如何透過BIOS控制周邊硬體,以及鳳凰科技如何透過逆向工程開發相容BIOS,促成「相容IBM PC」時代的來臨。接著,講座詳細闡述了硬碟分割的演進,從最初的四個主要分割區限制,到為了解決不足而提出的「延伸分割區」與「邏輯分割區」概念。

講座的核心聚焦於主開機紀錄(MBR)的結構與運作原理,涵蓋其三個主要部分:開機管理程式(Bootloader)、分割區分配表(Partition Table)及結束標記(55AA)。講師深入探討了每個部分的位元組大小、功能、限制,以及CHS與LBA兩種定址方式的差異,並特別強調了MBR在LBA模式下存在2.2TB的容量限制,這也解釋了為何舊版作業系統(如Windows XP)無法支援大容量硬碟。

此外,課程介紹了Linux系統中硬碟和分割區的識別與編號規則(如sda、nvme0n1p1),並實際演示了如何使用ls和fdisk -l指令在Ubuntu和CentOS系統中查看硬碟及分割區的詳細資訊,比較了MBR與GPT分割表的差異。最後,透過實作練習,指導學員使用fdisk指令工具進行磁碟分割,包括建立複雜的MBR結構(主要、延伸、邏輯分割區)、刪除分割區、以及變更分割區類型(如設為NTFS),為後續的檔案系統格式化與掛載教學做好準備。

PC的歷史與硬體生態

  • IBM PC的誕生與硬體策略
    • IBM在設計PC時,因資源有限,採用了組合外部廠商零件的策略,如Intel的CPU和Microsoft的作業系統。
    • 為了控制這個開放的硬體生態系,IBM透過在主機板的BIOS中加入特定編碼來綁定周邊廠商,要求廠商支付費用以獲得認證。
  • 相容IBM PC的崛起
    • 美國的鳳凰科技(Phoenix Technologies)透過逆向工程開發出相容的BIOS,使主機板廠商無需向IBM購買昂貴的晶片,即可組裝電腦。
    • 此舉催生了「相容IBM PC」的概念,促進了PC市場的蓬勃發展。
  • 蘋果的封閉生態策略
    • 蘋果吸取IBM的教訓,採取嚴格的封閉策略,從開機程序、CPU到晶片組都進行硬體綁定,其作業系統只識別特定合作的硬體型號。
    • 這導致了在普通PC上安裝蘋果作業系統的「黑蘋果」現象,常因硬體不被識別而失敗。

硬碟分割區的演進

  • 早期的四分割區限制
    • IBM最初設計規定一顆硬碟最多只能有四個分割區(partition)。
    • 微軟的DOS系統使用字母作為磁碟機代號,A/B保留給軟碟機,硬碟從C槽開始,四個分割區很快就不敷使用。
  • 延伸分割區與邏輯分割區的誕生
    • 為解決分割區數量不足的問題,IBM與微軟提出解決方案,維持最多四個「頂層」分割區的限制。
    • 允許將其中一個設為「延伸分割區」(Extended Partition),其餘最多三個為「主要分割區」(Primary Partition)。
    • 延伸分割區內部可再劃分出數量不限的「邏輯分割區」(Logical Partition),從而解決了磁碟機代號不足的問題。

主開機紀錄 (MBR) 的結構與功能

  • MBR的定義與位置
    • MBR (Master Boot Record) 是用來辨別四個主要/延伸分割區的機制,固定位於整個磁碟的第一個磁區,大小為512位元組。
    • 現代所有儲存設備(包括GPT磁碟)都保留此結構以確保相容性。
  • MBR 總體結構
    • MBR 結構可劃分為三個主要段落:
   1. 開機管理程式 (Bootloader):佔用446位元組(實際程式碼空間440位元組),負責載入作業系統核心或顯示開機選單。
   2. 分割區分配表 (Partition Table):佔用64位元組,用來記錄最多四個分割區的資訊。
   3. 結束標記 (End of MBR Signature):佔用2個位元組,其值固定為 55AA,用來標示MBR內容的有效性。若此標記被修改,硬碟會被視為全新未格式化。
  • 開機管理程式的種類
    • Lilo: 早期Linux的Bootloader。
    • GRUB (GRand Unified Bootloader): 目前主流Linux系統使用的Bootloader。
    • NTLDR / Windows Boot Manager: 微軟Windows系統使用的Bootloader。
    • SPFDisk: 由臺灣人開發的功能強大的圖形化開機管理程式。
  • 分割區表 (Partition Table) 的詳細解析 (16位元組/分割區)
    • 開機旗標 (Boot Flag):1位元組,80表示可開機。
    • CHS 起始/結束位置:共6位元組,記錄舊式CHS定址位置。
    • 檔案系統類型 (Partition Type):1位元組,標示檔案系統,如07為NTFS,83為Linux。此為參考標記,可與實際格式不符。
    • LBA 起始位置:4位元組,記錄新式LBA定址的起始磁區編號。
    • LBA 總磁區數:4位元組,記錄此分割區的總磁區數。
  • 定址方式與容量限制
    • CHS (Cylinder-Head-Sector):舊式定址,最大支援約8.4 GB。
    • LBA (Logical Block Addressing):新式定址。MBR使用32位元記錄LBA,最大可定址容量為 2³² 512 bytes = 2.2 TB。
    • MBR 的 2.2 TB 容量限制與 GPT
    • 由於LBA的32位元限制,MBR分割表無法支援超過2.2 TB的硬碟。
    • 為此,發展出了新的GPT(GUID Partition Table)格式,它沒有2.2TB的限制,可支援極大的硬碟容量。
    • 舊版作業系統(如Windows XP)不支援GPT,因此無法完整使用超過2.2TB的硬碟。

Linux 中的硬碟管理與 fdisk 操作

  • 硬碟編號規則
    • 設備檔案位於 /dev 目錄下。
    • SATA/SCSI/USB 硬碟 (SD): 以 sd 開頭,sda為第一顆,sdb為第二顆。分割區編號1-4為主要/延伸分割區,從5開始為邏輯分割區。
    • NVMe 硬碟: 格式為 nvme<X>n<Y>p<Z>,如 nvme0n1p1 代表第一顆NVMe硬碟的第一個分割區。
  • 查看硬碟資訊指令
    • ls -l /dev/sd: 快速列出所有sd開頭的硬碟與分割區。
    • fdisk -l /dev/sda: 詳細列出指定硬碟的分割表類型(MBR/GPT)、磁區大小、分割區詳細資料等。
  • fdisk 指令工具基礎操作
    • fdisk /dev/sdb 進入對話式分割模式。
    • 常用指令:
    • m: 顯示說明。
    • p: 印出目前的分割區表。
    • n: 新增分割區。
    • d: 刪除分割區。
    • t: 變更分割區的系統ID類型。
    • a: 設定或取消啟動磁碟標記 (僅適用MBR)。
    • o / g: 建立新的MBR / GPT分割表。
    • w: 將變更寫入磁碟並離開(此為實際生效指令)。
    • q: 不儲存變更並離開。
  • 安全操作與4K對齊
    • 在執行 w 前,所有操作僅在記憶體中,可隨時用 q 安全退出。
    • fdisk 建議的起始磁區 2048 是為了「4K對齊」,可優化現代硬碟的讀寫效能。

2026-0407-06.png

檔案系統的職責與基本概念

  • 檔案與目錄的樹狀架構:以樹狀目錄與檔案組織儲存,介面常見展開/收合視圖。
  • 屬性與位置紀錄:名稱、時間戳(建立/修改/存取)、擁有者與群組、權限、大小,以及內容所在區塊與分散度。
  • 空間管理與即時回報:持續紀錄已用/未用區塊,提供剩餘容量;目錄大小常需即時掃描計算。
  • 區塊/簇大小影響:partition 以相同大小的 block/cluster 切分,大小影響單檔上限、分割區上限與效能;以「豆腐切塊」比喻。

檔案系統選擇與格式化影響

  • 單一分割區對應單一檔案系統,格式化後功能固定,無法直接轉換;需備份、重格式化再拷回。
  • 格式化前審慎評估:根據需求(是否需長檔名、>4GB 單檔、加密/壓縮/配額、特定延伸屬性)選擇合適檔案系統。
  • 實務案例:FAT32 單檔上限 4GB,複製大型 ISO 失敗;解法為改用 NTFS 或 exFAT。

FAT 家族檔名規則與能力

  • FAT16:8.3 檔名規則;單檔上限受區塊大小影響(示例 32K 時約 2GB);分割區容量依「豆腐」大小 8MB/32MB/2GB 等;檔案數量受 16 位元限制。
  • FAT32:支援長檔名(255 字元)、較多檔案與目錄;單檔上限 4GB;分割區可至數 TB(如 4K 區塊時可至 16TB);穩定性較 NTFS 差。
  • exFAT(FAT64):為 FAT32 的加強版,廣用於嵌入式/行動裝置;單檔上限遠超 4GB,適配 512GB~數 TB 等裝置。

NTFS 的特性與進階功能

  • 版本背景與定位:自 Windows NT 時期面向伺服器與進階用途,XP 後預設採用,可靠性提升。
  • 容量上限:單檔至 EB 等級、分割區至 YB 等級(理論極限)。
  • 效能與可靠機制:具檢查修復(Stage1/2/3)機制,維持兩份檔案列表,比對不一致時引導修復。
  • 進階功能:分割區/目錄/檔案壓縮、磁碟配額、原生加密與安全性;FAT32 無原生加密與壓縮。
  • Windows 版本差異:部分配額功能需專業版。

Linux 常見檔案系統與生態

  • XFS:預設於部分系統(口述 SameOS/SIMOS),擅長大型檔案與 NAS/伺服器場景,支援巨量容量與完整工具鏈(格式化、掃描、修復、備份)。
  • Ext2:早期商業等級檔案系統,強調效率,無日誌;可設定 1K/2K/4K 等 block;現少用。
  • Ext3:在 Ext2 基礎加回日誌,支援無痛升級;日誌提升一致性(斷電後依日誌完整度決定丟棄/補寫),但寫入加倍 I/O;可依規劃偏小檔或大檔。
  • Ext4:現行主力,Android 2.3 起採用;支援 Extents(連續空間),預設連續存放減碎裂;具日誌檢查機制、預留/稀疏檔等;Ext2/3 可直接掛載至 Ext4,效能可提升。

EXT 內部結構與資料定位

  • block(區塊):最小儲存單位,分 data block 與 metadata;常見大小 512/1K/2K/4K,也可更大如 8K/16K/32K。
  • block group:為管理便利將區塊分組,每組含 SuperBlock(主/備)、Block Bitmap、Inode Bitmap、Inode Table、Data Blocks、Group Descriptor 等。
  • SuperBlock:紀錄全域參數與配置,提供空間統計;於多處有備份。
  • Block/Inode Bitmap:分別標示 block 與 inode 使用情況。
  • Inode Table:存檔案/目錄的屬性與位置指標(不含名稱);記錄權限、擁有者、時間戳、連結數、大小、位置等。
  • 目錄與檔名:檔名存於目錄的 data block,inode 只指向目錄資料位置。
  • Ext2/3 指標層級:12 組 direct、single/double/triple indirect 逐層擴充;block 大小影響指標承載量與單檔上限。
  • Ext4 Extents:以起點+長度描述連續區段,少量範圍即可映射大檔,連續讀取效能佳、碎裂少。

cluster/簇大小對效能與空間的影響

  • 定義:cluster/簇(Windows 術語,亦稱豆腐/瓦格)為最小配置單位;單檔至少占一簇,不與其他檔共享。
  • 大簇策略:適合大型影片等順序讀寫,提升吞吐與快轉順暢;簇大可減少跨區讀取與磁頭移動。
  • 小簇策略:適合大量小檔,降低空間浪費、提高可容納檔案數量;同容量下簇越小可存更多檔。
  • 空間利用率範例:簇 4096 而檔案僅 426(單位示例),利用率約 10.4%;檔案 5566 需至少 6 顆簇,示例利用率約 91%。
  • 綜合調校:依工作負載(大型檔 vs 小檔)權衡效能與密度,避免簇配置導致實際可用容量不如標稱。

相容性與支援

  • 安裝格式化選擇:Windows 常見 FAT/NTFS,Linux 選項多(Ext 家族、XFS 等);格式化後功能固定。
  • Linux 對 NTFS:核心 5.15+ 內建支援(2021 年整合);RHEL/SUSE 預設關閉,需啟用 NTFS 或安裝 ntfs-3g 與 ntfsprogs 工具提供讀寫與管理;可參考教學影片與鏡像站。
  • 行動裝置與記憶卡:雖 Ext4 理論更佳,手機廠商為跨 Windows 相容常用 FAT32,避免 Windows 不識別。

檔案救援與恢復

  • 前段損壞情境:SuperBlock、位圖等 metadata 受損時系統可能無法掛載,但後段資料仍在。
  • 救援策略:先建立整碟影像、避開壞區;辨識檔案系統類型與推測 block/cluster 大小與群組配置(如群組含 32767 blocks、每 block 16K/32K 等)。
  • 還原流程:解析 Inode Table → 依 direct/indirect 或 Extents 取得資料位置 → 讀取 data block → 重組檔案。

2026-0413-01.png

檔案系統格式化指令與系統支援

  • mke2fs 的角色與主態檔
    • mke2fs 源於 ext2,現兼容 ext3/ext4;預設值取自 /etc/mke2fs.conf,依媒體類型定義 block 與 inode 比例策略。
  • mkfs 家族整合
    • mkfs.ext2/ext3/ext4(或 mke2fs)、mkfs.xfs、mkfs.btrfs、mkfs.fat/mkfs.vfat、mkfs.ntfs、f2fs、exFAT、minix 等。不同發行版在 /sbin 或 /usr/sbin 下提供的子指令不一,缺工具即無法格式化且常無法掛載/讀取。
  • 系統支援差異
    • 無 mkfs.ntfs 則無法格式化 NTFS,且核心/套件若不支援通常也不認識該檔案系統;需安裝相應軟體(如 ntfs-3g)與核心模組。

ext 系列格式化參數與結構

  • block 大小與群組
    • 以 mke2fs -t ext4 -b 1024/2048/4096/8192 指定;block 大小影響可分配 blocks 數量與大小檔案的效率;可用 -G 調整群組參數。
  • inode 大小與數量
    • 預設 inode 常為 256 bytes;格式化時建立固定數量的 inodes,決定最多可容納的檔案/目錄數。
  • 檔案系統標籤與特性
    • 可設定 label(如 OS),ext4 journaling 與特性依參數或主態檔啟用。

驗證與檢視工具

  • lsblk
    • 列出磁碟與分割區(大小、唯讀、掛載點、檔案系統);可指向特定裝置(lsblk /dev/sdb1)。
  • tune2fs 與 file
    • tune2fs -l 讀取 ext4 詳細資訊(UUID、block/inode、superblock 備份位置);file 檢查裝置上的檔案系統類型。

格式化實作與空間飽和

  • ext4 範例
    • mke2fs -t ext4 -b 1024 /dev/sdX1;若已有內容會警告需確認;完成後輸出 block/inode/superblock 配置。
  • 空間飽和兩態
    • inode 用盡或 block 用盡皆會報磁碟空間已滿;需依情境調整兩者配置。
  • superblock 與備份
    • ext 系列在特定 block 號備份 superblock;可依 block 大小定位備份位置並驗證。

FAT/NTFS 格式化與特性

  • FAT32
    • 以 mkfs.fat 或 mkfs.vfat 格式化,設定 label(如 myfat),利於以標籤掛載。
  • NTFS
    • 需 mkfs.ntfs 支援;可指定 Label(如 MyNTFS)、快速格式化(-F)、自動壓縮與 Cluster Size(預設 4096,可調 16K);在 Linux 掛載需核心支持或 ntfs-3g。

掛載/卸載方法與選項

  • 掛載基本條件
    • 需掛載點目錄與核心支援;以 mount/umount 手動掛載/卸載;拔除前須先 umount。
  • 手動掛載語法
    • mount 來源(/dev/sdXn、by-label、by-uuid) 目的;mount -l 列表;唯讀掛載用 -r;以 Label(--label)或 UUID(lsblk -f 取得,/dev/disk/by-uuid 連結)掛載提升穩定性。
  • 卸載注意
    • umount 掛載點或裝置;占用時會失敗,可釋放占用後再卸載;不建議 umount -a,強制 -f 有風險。
  • 目錄習慣
    • 常用 /mnt 或 /media 下建立具辨識性的子目錄(如 /mnt/sdb1.ext4、/mnt/sdb2.fat、/mnt/sdb3.ntfs)進行操作與測試。

靜態掛載與 /etc/fstab 設定

  • 目的與必要性
    • 手動掛載重開機消失;需在 /etc/fstab 設定持久掛載。
  • 六欄位說明
    • 欄一設備位置(/dev/sdX、LABEL、UUID、或網路來源),欄二掛載點,欄三檔案系統(ext4、vfat、ntfs、swap 等),欄四選項(defaults、ro 等;可 defaults,ro),欄五 dump 位元(1/0),欄六 fsck 序(0/1/2)。
  • 測試與故障排除
    • mount -a 測試;若設定錯誤重開機可能 timeout(約每條 90 秒),需修正;建議以編輯器支援的 :read! 外部指令貼入 UUID,避免手抄錯誤。

分割規劃、效率與風險控管

  • 依檔案型態選擇 block/cluster
    • 大檔案用較大 block/cluster,小檔案用較小以減少浪費;建議至少規劃兩顆分割/硬碟分別承載大/小檔案。
  • 企業規劃與效率
    • 預設雖可用但效率不佳;需細緻規劃檔案系統、標籤、對齊、掛載方式。
  • 風險控管
    • 三確認目標裝置名稱,避免誤格式化;裝置命名用小寫;未支援的檔案系統需先安裝支援。

MBR 與 GPT 分割表原理與救援

  • 數量與結構
    • MBR 傳統 3 主 + 1 擴展;GPT 支援 128 partitions,具前端 Header 與 Entry 區、尾端備份。
  • 驗證與保護
    • MBR 僅結尾標記(55A)無驗證;GPT 具校驗與尾端備援。保護 MBR(protective MBR)僅一條 partition,Type=1 以標示使用 GPT。
  • LBA 與欄位
    • LBA-1 為 Header;LBA-2 到 LBA-33 為 Entry 區,每 LBA 512 bytes、切成四段,共 128 entries;Entry 欄位含起始/結束 LBA、類型 GUID、版本等。
  • 對齊與切割
    • 常用 2048 sectors 對齊,避免與 GPT 前段結構衝突;實務中以對齊位置保護分割安全。
  • 救援策略
    • 純 MBR 壞掉需推測分割邊界並以檔案系統固定標記(如 ext superblock)驗證;GPT 可自尾端備份修復。理解底層有助於疑難排解,非開發者可依賴工具。

2026-0413-02.png

磁碟與檔案系統資訊查詢

  • 查詢磁碟分割區類型與屬性 (blkID)
    • blkID 可列出系統中所有磁碟分割區的裝置名稱、LABEL(標籤)、UUID(通用唯一識別碼)、TYPE(檔案系統類型)與 Block Size(區塊大小)。
    • 範例:sdb2 的 LABEL 為 MFAD、Block Size 為 512。
    • 可在資料救援前確認檔案系統類型以利後續操作。
    • 可針對單一分割區查詢:blkID /dev/sdb1。
    • 亦可透過 LABEL 或 UUID 反查裝置:blkID -L [label_name]。
  • 查詢磁碟空間使用狀況 (df)
    • df 顯示已掛載檔案系統的空間使用狀況;未掛載的分割區不會出現。
    • 預設容量單位為 1K-blocks,可能與實際 Block 大小(如 4K)不符。
    • 常用參數:
    • -h(human-readable):以 G/M/K 顯示,便於快速判讀。
    • -i(inodes):顯示 inode 使用情況;inode 用盡等同空間用滿。
    • -T(print-type):顯示檔案系統類型(如 ext4、tmpfs)。
  • 查詢目錄或檔案占用空間 (du)
    • du 用於估算檔案或目錄占用的磁碟空間。
    • 常用參數:
    • -a(all):列出所有檔案與目錄大小。
    • -s(summarize):僅顯示總計。
    • -h(human-readable):人類易讀格式。
    • 常見用法:du -sh [路徑] 快速查詢指定目錄總大小,如 du -sh /home/user。
  • 查詢檔案或目錄詳細狀態 (stat)
    • stat 顯示檔案或目錄的詳細 inode 資訊。
    • 輸出包含:
    • 檔名、檔案大小、占用 Blocks 數量、IO Block 大小。
    • 檔案類型(regular file、directory)。
    • 權限(如 0664)、UID(擁有者 ID)、GID(群組 ID)。
    • Inode 編號:資料救援時的關鍵。
    • Links(連結數):指向同一 inode 的檔名數量;若為 2,表示另有一個連結(類似捷徑)。
    • 時間戳:Access(存取)、Modify(內容修改)、Change(狀態變更);部分系統另有 Birth(建立)。
    • stat -f [檔案路徑] 可列出檔案所在檔案系統資訊。
    • stat -c [格式] 可自訂輸出,如 stat -c %s [檔案] 只顯示檔案大小。

LVM(邏輯卷管理)概念

  • 空間不足的解決方案
    • 除了更換更大硬碟,亦可使用 LVM 動態調整儲存空間,常見情境可在不停機或不遷移資料下完成。
  • LVM 的應用場景
    • 擴充空間:購入新硬碟後,透過指令將容量加入現有邏輯卷。
    • 縮小空間:縮減未使用空間,釋放以供他用。
    • 更換硬碟:當插槽已滿時,可將舊硬碟資料遷移至新硬碟,再移除舊硬碟;LVM 能簡化流程。

磁碟檢測與修復

  • 基本概念
    • 各檔案系統對應不同檢測與修復工具。
    • 在檢測與修復前,務必先卸載目標分割區,否則可能無法執行。
  • EXT 檔案系統檢測 (e2fsck)
    • e2fsck 用於檢測 EXT2/EXT3/EXT4。
    • 常用參數:
    • -p:自動修復偵測到的問題,無需逐一確認。
    • -n:僅檢查不修復,列出問題但不寫入變更。
  • *其他檔案系統檢測 (fsck.)
    • fsck 為通用前端,依檔案系統類型呼叫對應工具,如 fsck.fat、fsck.ntfs。
    • FAT 系統:使用 fsck.fat;-a 自動修復、-v 顯示詳細過程。
    • NTFS 系統**:工具為 ntfsfix(講師口誤為 NTFS Base),主要比對 MFT(主檔案表)與其備份並修正常見問題;在掛載狀態下無法執行。

2026-0413-03.png