Linux磁盤系統

一,硬盤組成和分區

  1. 扇區,柱面,分區

    • 扇區sector,最小物理存儲單位,每個扇區512bytes;第一個扇區最重要,其含有硬盤主引導記錄MBR和分區表,MBR佔446bytes,partition table佔64bytes;
    • 柱面cylinder,分區的最小單位,是扇區組成的圓;
    • 分區partition,指起始柱面到結束柱面之間的塊;
    • 磁盤分區:告訴操作系統可訪問區域是由A柱面到B柱面之間的塊;
    • 每塊硬盤只有唯一的MBR,但是每個文件系統最前面都有一個啓動扇區(boot sector),如此,就可以將不同引導裝載程序安裝到個別的文件系統最前端,這樣就能夠製作出多重引導的環境;
  2. 分區

    • 磁盤第一個扇區:在硬盤的開頭,也就是0磁頭(head)、0柱(cylinder)、0面(side)、0磁道(track)、0扇區(sector)總共512字節存放着硬盤最重要的信息MBR(Master Boot Record,主引導記錄)和分區的相關信息,由於記錄空間只有那麼大,所以也只能記錄這4個分區的信息;
    • 由上可知,分區表中記錄了個分區的柱面範圍,最多能記錄4個分區,成爲主分區(primary)或擴展分區(extended);
    • 由操作系統的限制,擴展分區最多只能有一個,擴展分區可以再分出邏輯分區(logical);
    • 能被格式好後作爲數據訪問的分區是主要分區或邏輯分區,擴展分區無法格式化;
    • 至於邏輯分區的數量依操作系統而不同,具體多IDE硬盤和SATA硬盤的支持數量也不同;

二,文件系統特效

  1. 爲什麼分區後需“格式化”

    • 因爲每種操作系統設置的文件屬性/權限並不相同,爲了存放這些文件所需的數據,因此需要將分區進行格式化,以成爲操作系統能夠利用的文件系統格式;
    • 格式化是在分區上建立文件系統,也就是告訴系統按照什麼規則存取文件。格式化操作是以分區爲單位進行的,一次格式化會破壞該分區上的所有數據。
    • 每種操作系統能夠使用的文件系統並不相同。Windows 98以前的操作系統使用的文件系統是FAT(或FAT16),Windows 2000以後的版本使用NTFS文件系統,而Linux使用的是Ext2,默認情況下,Windows操作系統不會認識Linux的Ext2;
    • 傳統磁盤與文件系統應用中,一個分區只能被格式化成一個文件系統,可以說成一個文件系統就是一個分區。隨着技術發展,現在可將一個分區格式化成多個文件系統(例如,LVM),也可以將多個分區合併成一個文件系統(例如,LVMRAID)。所以目前,在格式化時,已經不再說成針對分區格式化了,而是通常稱呼一個可被掛載的數據爲一個文件系統而不是一個分區;
  2. inode和block簡述

    • 較新的操作系統的文件數據除了文件實際內容外(data block),還有非常多的屬性(inode);
    • Linux操作系統中,文件系統將文件權限(rwx)和文件屬性(所有者、羣組、時間參數)放置在inode中,將文件實際數據內容放置在data block中;另外還有一個超級塊(superblock)記錄整個文件系統的整體信息,包括inode與block的總量,使用量,剩餘量,以及文件系統的格式與相關信息等;
    • inode,記錄文件的屬性,一個文件對應一個inode,inode中還記錄了此文件的數據所在的block號碼,便於索引到文件;
    • block,實際記錄文件的內容,若文件太大,則文件會佔用多個block;
    • inode和block分屬於不同的塊,通過inode中記錄的block編號,可以同時將多個記錄的block中的數據讀出來,這種數據訪問方式叫做索引式文件系統(indexed allocation),Ext2屬索引式文件系統,這種方式有別於u盤用的的FAT格式訪問方式,FAT文件系統中沒有inode的存在,每個block的號碼都記錄在前一個block中,所以不能同時讀取所有block數據,只能一個個依次讀取;
  3. data block數據塊細節

    • block的大小和數量在格式化完就不能再改變了(除非重新格式化);
    • Ext2文件系統中所支持的block的大小有1kb、2kb、4kb三種 ,其對應的最大單一文件限制和最大文件系統總容量也都各不一樣;
    • 每個block內最多隻能放置一個文件的數據;
    • 如果文件大於block的大小,則一個文件會佔用多個block數量,如果文件小於block,則該block的剩餘空間就不能夠再被使用了(磁盤空間會浪費);
  4. inode細節

    • inode的數量和大小也是在格式化時就已經固定了,每個inode大小固定爲128bytes,每個文件都僅會佔用一個inode而已;
    • 因此文件系統能夠創建的文件數量與inode的數量有關;

    - 系統讀取文件時需要先找到inode,並分析inode所記錄的權限是否與用戶符合,若符合才能夠開始實際讀取block的內容;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章