Linux之磁盘概述
介紹Linux 硬件相關概念(硬盤、磁盤、磁道、柱面、磁頭、扇區、分區、MBR、GPT),教程操作方法:
? ? ? ?硬盤的功能相當簡單但很重要,它負責記錄系統所需要的各種數據。硬盤記錄數據有兩個方面,一個是硬件方面的存儲原理和結構,另外一方面則是軟件方面的數據和文件系統。硬盤的主要行為就是數據的存放和取出。
構成硬盤的基本元件,主要可以分為實際存儲數據用的磁盤(Plat Platter)、讀取數據用的磁頭(Head)、幫助磁頭搜尋讀取位置的馬達等等,這些元件構成一個能夠在不同磁盤上的任意位置讀取數據的結構體。
1、磁盤(Plat Platter)
磁盤是硬盤中真正用來存儲信息的部分,外觀上如同圓盤一樣,中間有孔可供馬達運轉軸通過(硬盤必須經過不斷旋轉磁盤才能找到數據),每個硬盤都有至少一個以上的磁盤。
? ? ? ?一般來說硬盤中磁盤的大小,目前主要有 3.5 英寸和 5.25 英寸兩種,而筆記本計算機所使用的磁盤大小一般為 2.5 英寸,有些甚至只有 1 英寸,大型磁盤防震的能力較差,而且一般來說磁盤越大硬盤的性能越差(因為磁盤的旋轉速度降低,在磁盤上搜尋數據的事件會變長),不過因為表面積較大,所以能夠存放的數據也就較多。
? ? ? ? 大部分磁盤都是以鋁合金制成,而由于磁盤運轉的速度較高,磁盤表面必須相當光滑,而重量的分布也必須相當均勻。而磁盤鋁合金的表面,則涂了一層磁性物質,以供數據寫入之用(寫入或讀取數據事實上都是在這層磁性物質上,與鋁合金無關),這個磁性物質是利用電鍍或濺鍍的方法涂上,因此分布相當均勻,最后在磁性物質上,會再加上一層薄薄的保護膜,以提供潤滑作用,避免磁頭與磁盤不正常接觸所造成的損壞。磁盤的兩面都可以使用,因此每個磁盤上下共有兩個磁頭來讀取數據。
在磁盤上可以感應到數字信息,是因為在磁盤上可以針對特定區域進行磁性的變動,因此我們只需要利用一些可以感應磁性變化的裝置,可以依照磁盤上特定區域的磁性變化,來讀取其中的內容。
2、硬盤數據單位?
? ?1. 磁道(Track)
一個磁盤劃分為多個磁道,事實上一個磁道也就是指磁盤上的一圈數據區域(也就是說同一磁盤撒和國內所有的磁道都會以同心圓環的方式來排列),就像樹木年輪中的一環。因此最靠近內圈的磁道上所能記錄的數據量最小(由于越靠近內圈則圓圈越小)。
2. 柱面(Cylinder)
? ? ? ?繞馬達旋轉軸旋轉的多個磁盤,每個磁盤有兩個盤面(片),每個盤面里有多個磁道(Track)。多個磁盤上相同大小的磁道在垂直空間上構成了一個柱面,可以想象成圓柱狀的形體,視覺上構成了一個空心筒(柱面)。
3. 磁頭(Header)
? ? ? 當需要使用磁盤中的數據時,需要利用磁頭來讀取或寫入數據。因此磁頭可以說是磁盤與計算機中其他數字設備之間的接口。磁頭負責把數字的位數據轉換為磁性的變動,以便將數據寫入磁盤之中,而反過來的動作就可以把數據由磁盤中讀取出來。磁頭的質量嚴重影響整個硬盤的性能,例如當我們增加磁盤的密度以及磁盤旋轉的速度來增加數據傳輸的速率時,一定要有精密的磁頭才能將這些數據正確地讀取出來,因此每當發展出新技術的磁頭時,通常都會帶動整個硬盤效率的提高。
4. 扇區(Sector)
? ? ? 事實上僅把數據分為磁道,還不能達到細分數據區的目的(一個磁道中的數據容量還是相當大,即使是最內圈最小的磁道也是一樣),因此我們再把磁道分為許多的扇區。由于內圈磁道的數據容量較少,因此內圈磁道所分割出來的扇區數碼會比外圈磁道要少。扇區是磁盤上能讀取數據的最小單位,大小為 512Bytes,因此,即是是 1 個 Byte 的文件,也要占據一個扇區的大小,無論這個扇區的數據量是 2KB 還是 16KB 都是一樣。每個扇區內部的數據被視為連續的數據,因此實際存取時,需要再指定扇區中數據的地址,就可以找到所需要的數據。
Boot sector是硬盤(嚴格來說是所有可引導的存儲介質)上的第一個扇區,大小為512字節,這個扇區對于計算機啟動來說至關重要。這個小小的512字節包含了很多內容,主要分為三個部分,分別是:
MBR(master boot record,主引導記錄)446字節。
DPT(disk partition table,磁盤分區表)64字節,每16個字節標識一個分區(所以只能劃分4個主分區)
? ? ? ?Linux 的所有設備都被抽象為一個文件,保存在 /dev 目錄下。根據接口可以分為:IDE、SATA、SAS、SCSI、USB。硬盤名稱一般為:設備類型 + [a-z],其中 [a-z] 表示第幾塊硬盤。
? ? ? ? ? ?IDE 硬盤的名稱一般是:hd[a-z]。
? ? ? ? ? ?SATA 硬盤、SAS 硬盤、SCSI 硬盤和 USB 硬盤的名稱一般為:sd[a-z]。
例如,第一塊 SATA 硬盤名為 /dev/sda,第二塊 SATA 硬盤名為 /dev/sdb,以此類推...
? ? ? 柱面是分區的最小單位,把一塊硬盤的磁盤邏輯地分為幾個區,每個區當作獨立磁盤,以方便使用管理,目錄是邏輯上的區分。分區是物理上的區分。
不同的分區用:“設備名 + 分區號”來表示,如第一塊 SATA 硬盤的兩個分區 sda1,sda2。
主流的分區機制有 MBR 和 GPT。
? ? ?5、? MBR(Master Boot Record,主引導記錄)
MBR 是傳統的分區機制,應用于絕大多數使用 BIOS 引導的 PC 設備(蘋果使用EFI的方式)
MBR 支持 32 位和 64 位的操作系統 MBR 支持的分區數量有限 MBR 支持不超過 2T 的硬盤,超過 2T 的硬盤只能使用 2T 空間(有第三方解決辦法),因為MBR的尋址空間只有 32 位長 MBR 結構:占用硬盤最開頭的 512 字節,即 0 柱面 0 磁道 1 扇區。前 446 字節是引導代碼,不同操作系統的引導代碼不一樣。然后是 4 個 16 字節的主分區 表信息。最后 2 個字節 55 AA,是操作系統的啟動標識。
? ? ? ? 主引導分區之所以如此重要,因為其涉及到開機與文件加載,因為操作系統也是軟件,COMS記錄了各項硬件參數且嵌入在主板上的存儲器中,而BIOS則是寫到主板上的一個程序,這個BIOS是開時系統主動調用的第一個程序,BIOS根據計算機的設置找到能開機的第一個硬盤中的第一個扇區的MBR位置,MBR這個僅有446bytes的硬盤容量里面放置基本的引導加載程序,這個引導加載程序是為了加載內核文件,由于引導加載程序是操作系統在安裝時所提供的,所以他能夠識別硬盤中的文件系統各式,就可以讀取內核文件,因此整個流程如下:
? ? ? ? ? ? BIOS:開機執行的第一個程序
? ? ? ? ? ? MBR:第一個開機設備的第一個扇區內的主引導分區塊,里面包含引導加載程序
? ? ? ? ? ? 引導加載程序(Boot Loader):可讀取內核文件的軟件
? ? ? ? ? ? 內核文件:執行操作系統的功能
主分區與擴展分區最多只能有4個,擴展分區最多只能有一個,IDE硬盤最多有59個邏輯分區(5~63),SATA硬盤有11個邏輯分區(5~15)
? ? ?6、? 磁盤分區表(partition table)
由前文可知,柱面是文件系統和分區的最小單位,這里假設使用的這塊磁盤有400個柱面,如下圖:如果是SATA硬盤,則這4個分區在系統中的設備文件名如下:
P1:/dev/sda1? ? ?P2:/dev/sda2? ? P3:/dev/sda3? ? P4:/dev/sda4 ?? ?? ?
總結
以上是生活随笔為你收集整理的Linux之磁盘概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux之tcpdump
- 下一篇: linux 其他常用命令