鳥哥的Linux學習筆記之三

來源:互聯網
上載者:User

標籤:linux

第8章 Linux磁碟與檔案系統管理

1 磁碟組成與分區:     磁碟由  圓的碟片、磁頭、主軸馬達 等組成。     碟片主要有:          扇區(Sector)為最小的實體儲存體單位,每個扇區512bytes          將扇區組成一個圓,就是柱面(Cylinder),是分區的最小單位。          第一個扇區最重要,裡面有MBR(主引導記錄)、分區表;MBR佔446位元組,分區表佔64bytes。          
          分區表最多支援4個分區,成為 主primary分區或者 擴充Extended分區。                   擴充分區最多有一個;                    邏輯分區是由擴充分區分出來的。                    能被格式化的只有主要磁碟分割和邏輯分區。
                各種介面的磁碟在Linux 中的檔案名稱為:               /dev/sd[a-p][1-15]:為SCSI、SATA、USB,Flash等介面裝置               /dev/hd[a-p][1-63]:為IDE介面的磁碟。
2. 檔案系統特性          分區完後之所以要進行格式化,是因為每種作業系統所設定的檔案屬性許可權不相同,為了存放這些檔案所需的資料,因此需要將分區進行進行格式化,以成為作業系統能夠利用的檔案格式。          Linux正規檔案系統為Ext2(Linux second Extended file system,Ext2fs),預設情況下,windows是不識別Linux的Ext2檔案系統的。
          傳統情況下,一個分區只能格式化為一個檔案系統,也就是一個檔案系統就是一個分區。但是新技術的發展,我們常通道LVM與軟磁碟陣列(software raid)可以將一個分區格式化成多個檔案系統個,,也能夠將多個分區合成一個檔案系統。目前我們已經不在說針對分區進行格式化了,而是一個可被掛在的資料為一個檔案系統而不是一個分區。          Linux較新的檔案系統,除了檔案資料外還有很多屬性,如rwx與檔案屬性(owner、group、time parameter等)。檔案系統通常會將這兩部分資料分別存在不同的塊,許可權和屬性放在inode中,資料放在data block中,另外還有個超級快(super block)會記錄整個檔案系統的整體資訊,包括 inode 與 block的總量、使用量、剩餘量等。          super block:記錄檔案系統整體資訊,包括inode與block的總量、使用量、剩餘量、檔案系統的格式與相關資訊等。          inode: 記錄檔案屬性,一個檔案佔用一個inode,同時記錄檔案資料所在的block。          block: 記錄檔案的資料,若檔案太大,會佔用多個block。          這種存取方法稱為: 索引式檔案系統(indexed allocation)。
3 Linux的Ext2檔案系統(inode)     檔案系統一開始就將inode與block規劃好了,除非重新格式化或者利用resize2fs等命令變更檔系統大小,否則inode與block固定後就不再變動。     在Ext2格式化時是將分區分為多個塊組(block group),每個塊組都有獨立的inode/block/super block,檔案系統最前面有一個開機磁區(boot sector),這個開機磁區用來安裝引導裝載程式的。     每個塊組有6個主要內容組成:data block:     在Ext2中支援的block大小有1kb、2kb、4kb三種,在格式化時block大小就固定了,且每個block都有編號,以方便inode的記錄。block大小決定檔案系統能支援的最大單一檔案大小如下:     inodetable:     inode記錄的檔案資料有以下幾個:          該檔案的訪問模式(rwx);          檔案所有者與組(owner、group);          檔案大小;          檔案建立或者狀態改變的時間(ctime)          最近一次讀取時間(atime);          最近修改時間(mtime);          定義檔案特性的標誌flag,如SetUID等          該檔案真正執行的資料內容;          inode的數量和大小在格式化時就已經確定了,          每個inode大小均為128bytes;          每個檔案佔有一個inode;          檔案系統能夠建立的檔案數量和inode的數量有關;          系統讀取檔案時先找到對應的inode,分析inode所記錄的許可權與使用者是否符合,若符合才能開始讀取指向的block塊。
     inode/block與檔案大小的關係:          inode結構如下:inode有12個直接指向、1個間接、一個雙間接和一個三間接記錄區。假如1k的block,每條block記錄需要4bytes,因此1k的block可以記錄256個block記錄。
super block:     記錄的資訊主要有:          block與inode的總量;          未使用與已使用inode、block的數量          block與inode的大小(1k、2k、4k; 128bytes);          檔案系統的掛載時間、最近一次寫入資料的時間、最近一次檢查磁碟(fsck)的時間等檔案系統相關資訊;          一個validbit數值,表示檔案系統是否被掛載。
     一般來說,superblock大小為1024bytes。相關資訊可以用dumpe2fs命令來查看。
檔案系統描述(file system description):     用來描述每個block group的開始與結束block 號碼,以及每個區段的superblock inode block 分別位於哪個block之間;
block bitmap:     用來記錄那些block用過,那些block未用。
inode bitmap:     記錄inode的使用與未使用方式。
     dumpe2fs [-bh] 裝置檔案名稱          -b:列出保留為壞道的部分          -h:列出superblock的資料,不會列出其他的區段內容。
     df  :這個命令調出目前掛載裝置
4. Ext2/Ext3檔案訪問與記錄檔系統:          一般來說,將inode table和data block成為資料區域,將其他地區成為metadata(中間地區)。     記錄檔系統:          1:預備,當系統寫入一個檔案中,現在日誌記錄總記錄夠格檔案準備要寫入的資訊。               2:實際寫入:開始吸入檔案許可權和資料,開始更新meta data資料          3: 結束:完成資料與meta data更新,在日誌記錄塊當中完成該檔案的記錄。
     這樣當斷電等,系統只要檢查日誌記錄塊就知道那些檔案出現問題,針對該問題再進行一致性檢查。
5 Linux檔案操作:          當系統載入一個檔案到記憶體中,如果該檔案沒有被改過,則在記憶體區段的檔案資料會設定為clean;如果發生改過,此時記憶體中的資料會被設定成dirty,系統會不定時的將記憶體中設定為dirty的資料歇會磁碟,保持磁碟與記憶體資料的一致性。
          可以利用sync命令強制記憶體中dirty的檔案寫回到磁碟。



鳥哥的Linux學習筆記之三

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.