本篇文章主要描述了Linux硬盤分區(qū)的過(guò)程,及其為何這樣分區(qū)的原理。
文件系統(tǒng)重點(diǎn):inode(索引節(jié)點(diǎn)),block(邏輯區(qū)塊),superblock(每個(gè)檔案系統(tǒng)開(kāi)始的位置的那個(gè)block,用于存儲(chǔ)像是檔案系統(tǒng)的大小,空的或填滿的區(qū)塊,以及它各自的總數(shù)等等信息)
磁盤的物理組成:
圓形的磁盤盤
機(jī)械手臂,與在機(jī)械手臂上的磁盤讀取頭(可擦寫(xiě)磁盤盤上的數(shù)據(jù))
主軸馬達(dá),可以轉(zhuǎn)動(dòng)磁盤盤,讓機(jī)械手臂的讀取頭在磁盤盤上讀寫(xiě)數(shù)據(jù)
磁盤盤的物理組成:
扇區(qū)(sector)為最小的物理儲(chǔ)存單位,每個(gè)扇區(qū)為512bytes
將扇區(qū)組成一個(gè)圓,那就是磁柱,磁柱是分區(qū)的最小單位
第一個(gè)扇區(qū)最重要,里面有mbr(主要開(kāi)機(jī)區(qū))及分割表,其中mbr占有446bytes,而分區(qū)表則占有64bytes
磁盤分區(qū):指定分區(qū)的起始與結(jié)束磁柱
分區(qū)的磁柱范圍記錄在第一個(gè)扇區(qū)的分割表中
Inode:存放權(quán)限與屬性,有:
1.該檔案的擁有者與群組(owner/group);
2. 該檔案的存取模式(read/write/excute);
3. 該檔案的類型(type);
4. 該檔案建立或狀態(tài)改變的時(shí)間(ctime)、近一次的讀取時(shí)間(atime)、近修改的時(shí)間(mtime);
5. 該檔案的容量;
6.定義檔案特性的旗標(biāo)(flag),如 SetUID...;
7. 該檔案真正內(nèi)容的指向 (pointer);
Data block:存放實(shí)際數(shù)據(jù)
Superblock:記錄整個(gè)文件系統(tǒng)的整體信息,包括inode與block的總量,使用量,剩余量等
由于ext2是索引式文件系統(tǒng),通常情況下不需要常常進(jìn)行碎片整理
如果硬盤文件系統(tǒng)高達(dá)數(shù)百gb,將所有的inode與block通通放置在一起將是很不智的決定,因?yàn)閕node與block的數(shù)量太龐大,不容易管理;因此ext2文件系統(tǒng)在格式化的時(shí)候基本上是區(qū)分為多個(gè)區(qū)塊群組(block group)的,每個(gè)區(qū)塊群組都有獨(dú)立的inode/block/superblock系統(tǒng)
一個(gè)文件系統(tǒng)僅有一個(gè)superblock;除了第一個(gè)block group內(nèi)會(huì)含有superblock之外,后續(xù)的block group不一定含有superblock,而若含有superblock則該superblock主要是作為第一個(gè)block group內(nèi)superblock的備份,可以進(jìn)行superblock的救援
Dumpe2fs /dev/hda2:查看hda2分區(qū)與superblock的信息
目錄并不只會(huì)占用一個(gè)block而已,就是說(shuō):在目錄底下的檔案數(shù)如果太多而導(dǎo)致一個(gè)block無(wú)法容納下所有的檔名與inode對(duì)照表時(shí),linux會(huì)給予該目錄多一個(gè)block來(lái)繼續(xù)記錄先關(guān)的數(shù)據(jù)
如果檔案太過(guò)離散,可以將文件系統(tǒng)內(nèi)的數(shù)據(jù)全部復(fù)制出來(lái),然后將文件系統(tǒng)重新格式化,再講數(shù)據(jù)復(fù)制回去就可以解決問(wèn)題
日志式文件系統(tǒng):ext3:
預(yù)備:當(dāng)系統(tǒng)要寫(xiě)入一個(gè)檔案是,會(huì)現(xiàn)在日志記錄區(qū)塊中記錄某個(gè)檔案準(zhǔn)備要寫(xiě)入的信息
實(shí)際寫(xiě)入:開(kāi)始寫(xiě)入當(dāng)時(shí)的權(quán)限與數(shù)據(jù);開(kāi)始更新metadata的數(shù)據(jù)
結(jié)束:完成數(shù)據(jù)域metadata的更新后,在日志記錄區(qū)塊當(dāng)中完成該檔案的記錄
當(dāng)文件系統(tǒng)出現(xiàn)不一致的情況后,系統(tǒng)只需要去檢查日志記錄區(qū)塊,就可以找到異常的檔案,然后針對(duì)該檔案進(jìn)行一致性檢查即可,而不必針對(duì)整塊filesystem去檢查,達(dá)到快速修復(fù)filesystem的能力
常見(jiàn)的支持文件系統(tǒng)有:
傳統(tǒng)文件系統(tǒng):ext2,mimix,ms-dos,fat(用vfat模塊),iso9660(光盤)等等
日志式文件系統(tǒng):ext3,reiserfs,windows’sntfs,ibm’s jfs,sgi’s xfs
網(wǎng)絡(luò)文件系統(tǒng):nfs,smbfs
Linux的標(biāo)準(zhǔn)文件系統(tǒng)是ext2
查看linux支持的文件系統(tǒng):ll /lib/modules/$(uname -r)/kernel/fs
查看系統(tǒng)目前已加載到內(nèi)存中支持的文件系統(tǒng):cat /proc/filesystems
硬連結(jié)(不能跨filesystem,不能link目錄):通過(guò)文件系統(tǒng)的inode連結(jié)來(lái)產(chǎn)生新檔名,而不是產(chǎn)生新檔案
軟連結(jié):相當(dāng)于windows下的快捷方式
建立連結(jié)文件:Ln [-sf] 源文件目標(biāo)文件
Linux重新分區(qū)后,可能需要重新啟動(dòng)來(lái)更新核心的分割表;在不重啟的情況下,也可以通過(guò)下面的命令來(lái)執(zhí)行:partprobe;partprobe的作用是高職核心必須要讀取新的分割表而已
硬盤分區(qū)時(shí),最好在單人維護(hù)模式下比較安全一些;在進(jìn)行fdisk的時(shí)候,如果該硬盤的某個(gè)partition還在用當(dāng)中,那么很有可能使系統(tǒng)核心無(wú)法重載硬盤的partition table,解決的方法是敬愛(ài)那個(gè)該使用中的partition給卸除,然后再重新進(jìn)入fdisk一遍,重新寫(xiě)入partition table,就可以成功了。
以上便是Linux硬盤分區(qū)注意事項(xiàng)及操作步驟,希望能幫助到大家,謝謝。