提供ext4文件系統(tǒng)的支持,可以說是Fedora 9的最大亮點,但ext4只是可選安裝,直接進入安裝程序的話,并沒有ext4的選項,若要啟用ext4,需要在光盤啟動后在安裝啟動選項上按tab鍵,在命令行上加上內(nèi)核選項ext4,才能在安裝時使用ext4。需要注意的是ext4還在dev階段,Grub還沒有支持ext4做為啟動分區(qū),所以/分區(qū)用ext4的話,需要把/boot分區(qū)獨立出來,放在非ext4分區(qū)上邊,否則系統(tǒng)將無法啟動。
光盤啟動后、在安裝啟動選項上按tab鍵,然后在命令行上加上內(nèi)核選項ext4、在分區(qū)時就會出現(xiàn)ext4dev的選項。
ABOUT ext4:
因為ext3的inode使用32的地址指針以及3次間接指針,這樣單個文件的大小最多為2^10*2^10*2^10*2^11,也就是2的41次方,即在32系統(tǒng)上并使用4k塊大小時,單個文件最多是8TB。由于使用32位的地址長度,ext3最多支持的磁盤大小為2^31*4K,即8TB(inode號是有符號int的變量,所以是2^31)。
由于當今磁盤陣列的發(fā)展,已經(jīng)出現(xiàn)了超過8TB的磁盤陣列,于是最近內(nèi)核郵件列表里火了一把關(guān)于ext3擴展的討論,這就是ext4。
看了一下,那幫ext3/ext2的開發(fā)者們使用了如下了inode替換了原來的ext3_inode結(jié)構(gòu)
struct ext3_extent {
__le32 ee_block; /* first logical block extent covers */
__le16 ee_len; /* number of blocks covered by extent */
__le16 ee_start_hi; /* high 16 bits of physical block */
__le32 ee_start; /* low 32 bits of physical block */
};
原來的inode使用15個指針指向文件存放的塊,其中最后三個是間接索引;現(xiàn)在ext4使用稱為擴展的inode替代了原來的ext3_inode,即ext3_extent。
extent的空間占3個字節(jié),這樣原來的15個指針空間可以存放5個extent,如果文件足夠連續(xù)的話,就可以存放5×2^16byte(320kbyte)大小的文件。原來的ext3在不使用間接索引的時候,只能存放48kbyte大小的文件,這樣extent就減少了小文件(不大不小文件?)的指針索引次數(shù),加快了訪問時間。
當文件超過一定大小時,extent也使用間接索引,不過與ext3不同的是,extent的間接索引次數(shù)沒有限制,不像ext3最多只能做3次間接索引。
注意ee_len字段,它是16位的,也就是說它的一個塊組最大是64k,而不是4k。這樣大量減少了查找時間,ext4開發(fā)者解釋說,“現(xiàn)在文件存放傾向于使用連續(xù)的塊,這樣做是不會讓費空間的”。
另一個重要的字段是:ee_start和ee_start_hi,他們共同組成48位的磁盤塊索引,
這樣可以支持1024 PB大小的設備,在未來數(shù)十年,足夠了!
但是ext4有一個缺點,那就是舊內(nèi)核不能識別使用ext4的磁盤。