歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 磁盤文件系統

磁盤文件系統

日期:2017/2/28 14:32:52   编辑:Linux教程

Linux最傳統的磁盤文件系統(filesystem)使用EXT2,目前EXT3也用的比較多。

各種接口的磁盤在Linux中文件名分別為:
/dev/sd[a-p][1-15] 為SCSI ,SATA,USB,FLASH等設備名
/dev/hd[a-d][1-63] 為IDE接口的磁盤文件名

硬盤的物理組成:
1.圓形的磁盤盤(主要用來記錄數據)
2.機械手臂及磁頭
3.主軸馬達,可以轉動磁盤盤,讓機械手臂上磁頭讀寫數據
磁盤盤上的物理組成(單盤片)
1.扇區(sector) 最小的物理儲存單位,每個扇區為512bytes
2.將扇區組成一個圓,就是磁柱(cylinder 磁柱是分割槽(partition)的最小單位。
3.第一個扇區包括 主要開機區(MBR) 446 bytes 分割表(partition table) 64 bytes

硬盤分區的概念:
磁盤分區指的是告訴操作系統此分割槽的開始和結束磁柱
指定分割槽的磁柱范圍就記錄在第一個扇區的分割表 partition cable
因為分割表只有64bytes,最多只能記錄四筆分割槽記錄,稱為主要9primary)或延伸(extended)分割槽。
延伸分割最多只能有一個(操作系統的限制)
延伸分割槽還可以再次分割出邏輯分割槽(logical),能補格式化的是主要分割和邏輯分割。
LINUX中,IED硬盤最多有59個邏輯分割(5號到63號),SATA硬盤有11個邏輯分割(5號到15號)

文件系統
磁盤分區後還要進行格式化(format),之後操作系統才能夠使用這個分區。
格式化就是將分區的文件屬性設定為操作系統能夠利用的文件系統格式(filesystem)
文件系統格式(filesystem)常見的有WINDOWS的FAT,NTFS,LINUX的EXT2,EXT3等。
一般情況下,一個分區只能被格式化為一個文件系統,所以可以說一個filesystem就是一個partition。
但是新的技術,如LVM,RAID可將多個分區合成一個文件系統。

文件系統的運作:
Linux中將檔案權限(rwx)與文件屬性(所有者,群組,時間參數等).
Linux文件系統通常將權限與屬性放到inode ;實際數據放在data block區塊中。
超級區塊(superblock)會記錄整個文件系統的整體信息,包括inode與block的總量,使用量,剩余量。
inode 一個檔案占用一個inode,同時記錄此檔案數據所在的block號碼。(提供數據讀寫效率)
block 實際記錄檔案內容(數據)
稱為索引式文件系統(indexed allocation)

Linux ext2 inode
ext2文件系統在格式化時候是區分為多個區塊群組(block group),每個區塊有獨立的inode/block/superblock系統。
文件系統最前面有一個啟動扇區(boot sector).
每一個區塊群組(block group)的六個主要內容;

1.date block 數據塊 放置檔案數據 ext2支持block大小有1K,2K及4K三種。
block大小在格式化時確定,且每個block都有編號,由inode記錄。
block大小差異,導致文件秕能支持的最大磁盤與最大單一檔案容量不同。
Block 1KB,最大單一檔案限制 16GB ,最大文件系統總容量2TB
Block 2KB,最大單一檔案限制 256GB ,最大文件系統總容量8TB
Block 4KB,最大單一檔案限制 12TB ,最大文件系統總容量16TB
每個block內最多只能放置一個檔案的數據,剩余容量不能再使用。

2.inode table
檔案屬性及權限放置在這裡。
inode記錄的檔案數據包括以下:
該檔案的存取模式(rwx)
檔案的擁有者與群組(owner/group)
該檔案的容量
該檔案建立或狀態改變的時間(ctime)
最近一次的讀取時間(atime)
最近修改的時間(mtime)
定義檔案特性的標志(flag)
該檔案真正內容的指向(pointer)

每個inode大小均為固定的128bytes
每個檔案都只占用一個inode
文件系統能夠建立的檔案數量與inode數量有關

3.superblock超級區塊
大小為1024bytes 一個文件系統只有一個 dumpe2fs
主要記錄:
block與inode的總量
未使用與已使用的inode/block數量
block與inode的大小 (block 為 1, 2, 4K,inode 為 128 bytes)
filesystem掛載時間,最近一次寫入數據時間,最近一次檢驗磁盤fsck的時間等文件系統相關信息
一個 valid bit 數值,若此文件系統已被掛載,則 valid bit 為 0 ,若未被掛載,則 valid bit 為 1

4.filesystem description 文件系統描述說明
可以描述每個 block group 的開始與結束的 block 號碼,以及說明每個區段 (superblock,
bitmap, inodemap, data block) 分別介於哪一個 block 號碼之間。這部份也能夠用 dumpe2fs 來觀察。

5.block bitmap 區塊對照表
記錄未使用的block。

6.inode bitmap (inode對照表)
記錄未使用的block號碼

Copyright © Linux教程網 All Rights Reserved