柳大的Linux講義·基礎篇(1)磁碟與檔案系統

鍾超發表於2012-01-25

《柳大的Linux講義·基礎篇》來自柳大的CSDN部落格,轉載請註明原文連結:http://blog.csdn.net/poechant/article/details/7214926


一、磁碟知識

1、磁碟物理結構

1)結構:

物理上,一塊磁碟,有多個碟片。每個碟片上根據半徑不同,有很多磁軌(track)。不同碟片上半徑相同的磁軌,在邏輯上稱為磁柱(cylinder)。一個磁軌上的某段弧內的區域,被稱為扇區(sector)。每個扇區的大小是512位元組。

2)容量:

計算公式是:

磁碟容量 =512位元組 x每個磁軌的扇區數 x 磁頭數 x柱面數

磁碟容量= 512位元組 x每個磁軌的扇區數 x 碟片數 x每個碟片的磁軌數

注意:磁頭數 = 碟片數,柱面數 =每個碟片的磁軌數。


2、磁碟分割槽

1)結構:

一塊磁碟從外層的某個起始柱面,到內層的某個結束柱面,稱為一個分割槽(partition)。

2MBR

Master Boot Recorder,是整個磁碟的第0個柱面,記錄有整個磁碟的分割槽資訊。開機後對磁碟的讀取首先從MBR開始。如果一個磁碟的MBR壞了,那麼整個磁碟也就廢了。

3MBR的限制:

畢竟MBR的大小有限,無法儲存任意多個分割槽的資訊。所以MBR限制了只能儲存4個分割槽的資訊。這四個分割槽中最多隻可以有一個擴充套件分割槽。所以磁碟分割槽的的結果一定是:X個主分割槽+Y個擴充套件分割槽,且X+Y<=4Y<=1。如果你分了4個分割槽後還有剩餘空間,則這些空間是無法使用的。如果你分了1個,2個或3個分割槽,而且還有剩餘空間,那麼這些空間會被分成3個,2個或1個主分割槽。


3、磁碟邏輯結構

1)結構:

磁碟的邏輯結構是由作業系統決定的。一塊磁碟的最小物理儲存單位是512位元組的扇區,但一個磁碟的最小邏輯儲存單位可以由作業系統指定,稱為塊(block),大小比如4KB(即8個扇區)。一個塊最多隻能儲存一個檔案,所以塊的設定要適中,太大了浪費空間,太小了降低效率。

2superblock

每個分割槽(partition)起始位置的那個block,儲存著這個分割槽的資訊,包括分割槽的塊總數、空閒塊總數、非空閒塊總數、所有塊的狀態資訊對映表等。對某個分割槽中的資料進行讀寫時,首先讀取的是該分割槽的superblock。如果一個分割槽的superblock壞了,那麼整個分割槽也就廢了(但不影響其他分割槽)。


4、檔案的讀寫過程

先讀整個磁碟的MBR,獲取所有分割槽資訊,並確定要載入的作業系統檔案所在的分割槽。然後,讀取某個分割槽時,先讀取該分割槽的superblock,然後找到相應的塊(可能是多個)進行讀取。


二、檔案系統

1、檔案系統概念

檔案系統(file system,或filesystem)是硬體儲存裝置與作業系統之間的資料傳輸與管理層。恰如客戶端提供與網路之間的資料通訊一樣,檔案系統提供作業系統或者使用者與硬體儲存裝置之間的通訊。很多情況下,檔案系統與作業系統分得不那麼清楚,而是一個整體。任何形式的儲存裝置上都有檔案系統,比如硬碟(hard disk)、軟盤(floppy disks)、光碟(optical disks)、快閃記憶體(flash memory)。


2、檔案系統分類

磁碟檔案系統(disk filesystem

快閃記憶體檔案系統(flash filesystem

磁帶檔案系統(tape filesystem

資料庫檔案系統(database filesystem

事務檔案系統(transactional filesystem

網路檔案系統(network filesystem

共享磁碟檔案系統(shared disk filesystem

軟盤檔案系統(flat filesystem


3Linux檔案系統

ext22nd EXTended filesystem,釋出於1993

ext33rd EXTended filesystem,釋出於2001

ext44th EXTended filesystem,釋出於2008

XFSeXtended FileSystem,釋出於1994

JSFJounaled1990釋出JFS1AIX 3.11999釋出JFSOS/24.5版本。

ReiserFSReiser File System,釋出於2001

BtrfsB-TRee File System2009非穩定版,穩定版還未釋出。


4Linux系統的磁碟與分割槽編號

1)磁碟編號:/dev/hda/dev/hdb/dev/hdc表示本地硬碟。/dev/sda/dev/sdb/dev/sdc表示外接的可行動硬碟。

2)分割槽編號:/dev/hda1/dev/hda2/dev/hdc1表示本地硬碟的分割槽。/dev/sda1/dev/sdc2表示外接硬碟的分割槽。


《柳大的Linux遊記·基礎篇》來自柳大的CSDN部落格,轉載請註明原文連結:http://blog.csdn.net/poechant/article/details/7214926

-

相關文章