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

  • 164