NMG
2014/12/08
前情提要
更多權限
預設權限
隱藏屬性
特殊權限
前情提要
找檔案
前情提要
SSH
檔案系統
PC
硬碟
檔案系統
PC
硬碟
磁碟分割
檔案系統
硬碟sda
格式化
Why format ?
作業系統不同
Windows 98 以前
-FAT(or FAT16)
Windows 2000以後
-NTFS
Linux
-EXT2 /3 /4
檔案系統
格式化

EXT2
?
FileSystem
A Partition -> A FileSystem
LVM ,RAID
A Partition -> Many FileSystem
一個可被掛載的資料為一個檔案系統而不是一個分割槽
FileSystem
FAT(File Allocation Table)
- 幾乎每個作業系統都有
- 隨身碟(快閃記憶體)
- FAT12 FAT16 FAT32 vFAT exFAT(FAT64)
NTFS(New Technology File System)
- Windows主要FS
- 取代FAT
- 日誌檔案系統
FileSystem
EXT (Extended File System)
- 延伸檔案系統
- Linux第一個FS
- 索引式檔案系統
- ext ext2 (ext2fs) ext3 ext4
檔案系統運作
檔案
檔案系統運作
檔案

一大堆
權限
檔案系統運作
檔案

一大堆
權限

一大堆
屬性
內容
檔案系統運作
檔案

一大堆
權限

一大堆
屬性
inode
data block
super block
內容
檔案系統運作
superblock :記錄此FS的整體資訊
- inode/block總量 , 使用量 , 剩餘量 ...
inode :記錄檔案的屬性
- 一個檔案佔用一個inode
- 記錄此檔案的資料所在的block號碼
block :實際記錄檔案的內容
- 一個檔案可以佔用多個block
檔案系統運作
索引式檔案系統(indexed allocation)

inode
block
檔案系統運作

反觀 FAT
檔案系統運作

EXT2
檔案系統運作
data block
格式化時就固定了 ,影響最大單一檔案大小

格式化後block數量就不能再改變
一個block只能放置一個檔案的資料
- 檔案大於一個block,則佔用多個block
- 檔案小於一個block,剩餘空間無法再使用 (浪費空間)
大的 block 可能會產生較嚴重的磁碟容量浪費,那麼就將 block 訂為1K ?
inode紀錄太多block -> 影響效能
檔案系統運作
inode table
檔案權限、屬性、擁有者、容量、時間、block位址
128bytes
每個檔案(只)佔用一個inode
能建立的檔案數量與inode數量有關
讀取檔案時,先找到inode、確認權限,才開始讀檔案
檔案系統運作

12直接指向
12 x 1K
1間接指向
(1K/4bytes =256)
256 x 1K
1雙間接指向
256 x 256 x 1K
1三間接指向
256^3 x 1K
總和:16GB
大於2K的block因EXT2檔案系統限制計算結果會不準
檔案系統運作
superblock
inode,block總量
未使用與已使用的inode ,block總量
inode ,block大小
filesystem掛載時間,最近一次的寫入時間,最近一次檢驗時間
valid bit值 0掛載 1未掛載
1024bytes
一個FS只有一個superblock (第一個group)
但每個block group都可能有superblock (備份用)
檔案系統運作
Block bitmap(區塊對照表)
- 記錄未使用的block
Inode bitmap(inode 對照表)
- 記錄未使用的inode
Filesystem Description (檔案系統描述說明)
- 記錄每個block group 開始與結束的位址
- 記錄super block、bitmap、inode table、data block位址
檔案系統運作
df :目前掛載的裝置
dumpe2fs:列出裝置資訊
與目錄樹關係
ls -li

建立一個目錄時
mkdir test
ext2 會分配一個 inode
與至少一塊 block 給該目錄
-記錄目錄下的檔名與inode
建立一個檔案時
touch test
ext2 會分配一個 inode
與相對於該檔案大小的 block 數量給該檔案
e.q. block=4Kbytes 建立一個100Kbytes的檔案
總共需要26block(25檔案用+1 inode用) + 1 inode
與目錄樹關係
與目錄樹關係
目錄樹讀取
由/開始讀取
檔案的inode不記錄檔名,必須去讀取目錄的權限

讀取 /etc/passwd
與目錄樹關係
讀取/的inode (r? x?)
/的block
讀取etc/的inode(r? x?)
etc/的block
讀取passwd的inode(r?)
passwd的block
Filesystem
2
1912545
1914888
/dev/hda2
/ /etc /etc/passwd
...
1912545 etc
...
...
1914888 passwd
...
找2的block號碼
找etc的inode
找1912545的block號碼
找passwd的inode
讀出block內容
與目錄樹關係
Filesystem大小與讀取效能
檔案block不會連號
資料離散導致效率低
=> 拿出資料,格式化
檔案系統太大,機械手臂轉動幅度大,讀取效能低 =>partition大小分割好
補充指令
tree /
(sudo apt-get install tree)
du -sh /
NMG_20141208
By 坊吉
NMG_20141208
- 157