「緯育 2026-0407」修訂間的差異
| 行 307: | 行 307: | ||
** NTFS 系統**:工具為 ntfsfix(講師口誤為 NTFS Base),主要比對 MFT(主檔案表)與其備份並修正常見問題;在掛載狀態下無法執行。 | ** NTFS 系統**:工具為 ntfsfix(講師口誤為 NTFS Base),主要比對 MFT(主檔案表)與其備份並修正常見問題;在掛載狀態下無法執行。 | ||
[[檔案:2026-0413-03.png|800px]] | [[檔案:2026-0413-03.png|800px]] | ||
=== dd 指令基礎與風險警示 === | |||
* dd 可直接對裝置或檔案進行位元/區塊讀寫,與檔案系統無直接關聯;檔案系統損毀時仍可嘗試以區塊層級擷取資料。 | |||
* 高風險操作:if 與 of 一旦寫反將覆寫錯誤目標;未設定 count 可能從頭讀到尾導致容量暴增或整碟覆寫;若目的檔案位於同一顆來源磁碟上可能發生自我覆蓋。 | |||
* 常見裝置命名:/dev/sdX 表整顆磁碟,/dev/sdX1 表分割;備份 MBR 時對象應是整顆磁碟。 | |||
=== MBR 結構與識別 === | |||
* 三段式結構:446 bytes Bootloader、64 bytes Partition Table(四個 entries)、2 bytes 簽章 0x55AA,總長 512 bytes。 | |||
* GPT 系統亦有保護 MBR;可用 hexdump/xxd 檢視內容與簽章。 | |||
=== 核心參數:if、of、bs、count、skip、seek === | |||
* if 指定來源,of 指定目的;來源/目的不可互換。 | |||
* bs 決定每次 I/O 區塊大小;較大 bs 可減少 I/O 次數但過大未必更快,建議參考硬碟快取大小設定。 | |||
* count 指定讀寫的區塊數;不指定可能整碟寫入。 | |||
* skip/seek 分別為輸入/輸出位移,單位受 bs 影響;需同時設定以確保來源與目的對位,避免將資料貼到錯誤位置。 | |||
=== MBR 相關實務操作 === | |||
* 完整備份 MBR(512 bytes):dd if=/dev/sdX of=/path/to/mbr.backup bs=512 count=1。 | |||
* 完整還原 MBR:dd if=/path/to/mbr.backup of=/dev/sdX bs=512 count=1;目的為整顆磁碟而非分割。 | |||
* 僅處理 Bootloader(446 bytes):備份/還原時以 bs=446 count=1 讀寫前段。 | |||
* 僅處理 Partition Table(64 bytes):以 bs=1、skip=446、seek=446、count=64 精準定位;若 seek 漏設可能覆蓋頭部其他區段。 | |||
* 等效寫法效率比較:bs=512、count=1 與 bs=1、count=512 結果相同,前者 I/O 次數較少效率更佳。 | |||
* dd 回饋統計可顯示讀/寫量與速率;若出現「+」的錯誤計數可能代表硬體讀取失敗(壞軌等)。 | |||
=== 整顆硬碟對拷(克隆)與還原 === | |||
* 由源碟複製到新碟:dd if=/dev/sdA of=/dev/sdB,bs 可取兩顆硬碟較小的快取大小或其分割值,提升效率;完成後新碟多數情況可直接開機。 | |||
* 由備份碟還原至來源位:dd if=/dev/sdB of=/dev/sdA,保持參數一致或選擇合適 bs。 | |||
* 嚴格核對裝置代號(sda/sdb/sdc),避免 A→B 與 B→A 寫反;部分系統可能對硬體序號進行檢查,首次開機可能有調整或警示。 | |||
=== 勒索病毒與 MBR === | |||
* 常見流程:引誘使用者執行惡意程式後以公鑰加密檔案,改寫 MBR 顯示勒贖訊息並要求付款;早期可從記憶體找金鑰,後續攻擊演進為強制重開機。 | |||
* 還原策略:若僅 MBR 被改寫可用備份還原 MBR,但檔案加密仍存在;需平時建立系統映像與異地/離線備份並演練還原。 | |||
=== 作業系統與安全機制影響 === | |||
* Windows 的裝置加密/PIN/BitLocker 與主機板/TPM 綁定可能導致更換主機板後無法開機;須預先保存恢復金鑰並規劃硬體更換情境。 | |||
* 講者實務上建議妥善保存金鑰,或在風險可控時關閉相關機制。 | |||
=== 工具與書寫注意 === | |||
* Clonezilla:免費開源映像備份/還原工具,支援整碟/分割、外接或網路位置、中文介面,適合作為跨平台影像方案與商業軟體替代。 | |||
* 現代系統(macOS、iOS/Android、Windows 10/11)多具備還原機制;建議定期備份與還原演練。 | |||
* 指令換行與反斜線:教材為避免換行誤解可能加入反斜線,實際操作可整行輸入避免誤觸新命令。 | |||
=== 進階:檔案系統對位與 dd === | |||
* 若理解檔案系統與 inode,可將 bs 設為對應 block/extent 大小,配合 skip/count 精準擷取特定資料區塊,用於更細緻的資料復原或備份。 | |||
=== 風險控管與實驗建議 === | |||
* 建議先於虛擬機或離線/實驗環境進行練習,誤操作可快速回復;實務操作需逐字檢查參數。 | |||
* 在執行前建立檢核清單:if/of、裝置代號、掛載狀態、輸出路徑位置、bs/count/skip/seek 等。 | |||
[[檔案:2026-0413-04.png|800px]] | |||
於 2026年4月14日 (二) 01:02 的最新修訂
本系列講座旨在介紹磁碟的基礎知識,從傳統機械硬碟(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直接與記憶體互動。
- 存檔時,資料先寫入記憶體,作業系統會等待閒置時機再將資料寫回硬碟以提高效率。
- 不正常關機的風險
- 由於無法確認記憶體中的資料是否已全部寫入硬碟,突然斷電可能導致這些暫存資料遺失,造成檔案損毀。
- 為確保資料完整性,務必遵循標準的關機程序。
硬碟分割管理觀念
本次系列講座深入探討了個人電腦(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對齊」,可優化現代硬碟的讀寫效能。
檔案系統的職責與基本概念
- 檔案與目錄的樹狀架構:以樹狀目錄與檔案組織儲存,介面常見展開/收合視圖。
- 屬性與位置紀錄:名稱、時間戳(建立/修改/存取)、擁有者與群組、權限、大小,以及內容所在區塊與分散度。
- 空間管理與即時回報:持續紀錄已用/未用區塊,提供剩餘容量;目錄大小常需即時掃描計算。
- 區塊/簇大小影響: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 → 重組檔案。
檔案系統格式化指令與系統支援
- 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 可自尾端備份修復。理解底層有助於疑難排解,非開發者可依賴工具。
磁碟與檔案系統資訊查詢
- 查詢磁碟分割區類型與屬性 (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(主檔案表)與其備份並修正常見問題;在掛載狀態下無法執行。
dd 指令基礎與風險警示
- dd 可直接對裝置或檔案進行位元/區塊讀寫,與檔案系統無直接關聯;檔案系統損毀時仍可嘗試以區塊層級擷取資料。
- 高風險操作:if 與 of 一旦寫反將覆寫錯誤目標;未設定 count 可能從頭讀到尾導致容量暴增或整碟覆寫;若目的檔案位於同一顆來源磁碟上可能發生自我覆蓋。
- 常見裝置命名:/dev/sdX 表整顆磁碟,/dev/sdX1 表分割;備份 MBR 時對象應是整顆磁碟。
MBR 結構與識別
- 三段式結構:446 bytes Bootloader、64 bytes Partition Table(四個 entries)、2 bytes 簽章 0x55AA,總長 512 bytes。
- GPT 系統亦有保護 MBR;可用 hexdump/xxd 檢視內容與簽章。
核心參數:if、of、bs、count、skip、seek
- if 指定來源,of 指定目的;來源/目的不可互換。
- bs 決定每次 I/O 區塊大小;較大 bs 可減少 I/O 次數但過大未必更快,建議參考硬碟快取大小設定。
- count 指定讀寫的區塊數;不指定可能整碟寫入。
- skip/seek 分別為輸入/輸出位移,單位受 bs 影響;需同時設定以確保來源與目的對位,避免將資料貼到錯誤位置。
MBR 相關實務操作
- 完整備份 MBR(512 bytes):dd if=/dev/sdX of=/path/to/mbr.backup bs=512 count=1。
- 完整還原 MBR:dd if=/path/to/mbr.backup of=/dev/sdX bs=512 count=1;目的為整顆磁碟而非分割。
- 僅處理 Bootloader(446 bytes):備份/還原時以 bs=446 count=1 讀寫前段。
- 僅處理 Partition Table(64 bytes):以 bs=1、skip=446、seek=446、count=64 精準定位;若 seek 漏設可能覆蓋頭部其他區段。
- 等效寫法效率比較:bs=512、count=1 與 bs=1、count=512 結果相同,前者 I/O 次數較少效率更佳。
- dd 回饋統計可顯示讀/寫量與速率;若出現「+」的錯誤計數可能代表硬體讀取失敗(壞軌等)。
整顆硬碟對拷(克隆)與還原
- 由源碟複製到新碟:dd if=/dev/sdA of=/dev/sdB,bs 可取兩顆硬碟較小的快取大小或其分割值,提升效率;完成後新碟多數情況可直接開機。
- 由備份碟還原至來源位:dd if=/dev/sdB of=/dev/sdA,保持參數一致或選擇合適 bs。
- 嚴格核對裝置代號(sda/sdb/sdc),避免 A→B 與 B→A 寫反;部分系統可能對硬體序號進行檢查,首次開機可能有調整或警示。
勒索病毒與 MBR
- 常見流程:引誘使用者執行惡意程式後以公鑰加密檔案,改寫 MBR 顯示勒贖訊息並要求付款;早期可從記憶體找金鑰,後續攻擊演進為強制重開機。
- 還原策略:若僅 MBR 被改寫可用備份還原 MBR,但檔案加密仍存在;需平時建立系統映像與異地/離線備份並演練還原。
作業系統與安全機制影響
- Windows 的裝置加密/PIN/BitLocker 與主機板/TPM 綁定可能導致更換主機板後無法開機;須預先保存恢復金鑰並規劃硬體更換情境。
- 講者實務上建議妥善保存金鑰,或在風險可控時關閉相關機制。
工具與書寫注意
- Clonezilla:免費開源映像備份/還原工具,支援整碟/分割、外接或網路位置、中文介面,適合作為跨平台影像方案與商業軟體替代。
- 現代系統(macOS、iOS/Android、Windows 10/11)多具備還原機制;建議定期備份與還原演練。
- 指令換行與反斜線:教材為避免換行誤解可能加入反斜線,實際操作可整行輸入避免誤觸新命令。
進階:檔案系統對位與 dd
- 若理解檔案系統與 inode,可將 bs 設為對應 block/extent 大小,配合 skip/count 精準擷取特定資料區塊,用於更細緻的資料復原或備份。
風險控管與實驗建議
- 建議先於虛擬機或離線/實驗環境進行練習,誤操作可快速回復;實務操作需逐字檢查參數。
- 在執行前建立檢核清單:if/of、裝置代號、掛載狀態、輸出路徑位置、bs/count/skip/seek 等。