3 Linux管理員手冊--存貯介質( 六 )


事實上,一些新版的BIOS和IDE硬盤可以處理多于1024柱面 。如果你有這樣一個系統,你可以忘卻這個問題;如果你不能確認,還是把啟動分區放在前1024柱面內 。
每個分區擁有一塊連續的扇區 。因為Linux文件系統使用1 kB的塊,即2個扇區,所以奇數個扇區會導致最后一個扇區不能使用,這不會有什么問題,但不好,有些版本的 fdisk 會對此給出警告 。
改變分區大小一般要求首先備分此分區想保留的所有東西(為防萬一,最好備分整個硬盤),然后刪除此分區,產生新分區,最后回存所有東西到新分區 。如果是擴大分區,你可能需要調整相鄰分區的大小(并備分、回存) 。
由于改變分區大小是如此痛苦,最好一次就確定 。或擁有一個有效而易用的備分系統 。如果你通過無須太多人工干預的介質安裝(例如CDROM,而不是軟盤),那么開始可以比較容易地玩玩各種設置 。因為你無須備分什么數據,改幾次分區大小不會太過痛苦 。
有個MSDOS的程序叫fips , 可以無須備分和回存地改變MSDOS分區的大小, 但對其他文件系統,備分回存還是必須的 。
設備文件和分區
每個分區和擴展分區有自己的設備文件 。這些文件的命名規定是在整個盤的名字加分區號,并約定1-4是基本分區(不管真的有幾個基本分區),5-8是邏輯分區(不管它在哪個基本分區中) 。例如,/dev/hda1 是第一個IDE硬盤的第一個基本分區,而/dev/sdb7 是第二個SCSI硬盤的第三個擴展分區 。設備列表 [Anv]給出更詳細的信息 。
文件系統
什么是文件系統?
文件系統是操作系統用于明確磁盤或分區上的文件的方法和數據結構;即在磁盤上組織文件的方法 。也指用于存儲文件的磁盤或分區,或文件系統種類 。因此,可以說"我有2個文件系統"意思是他有2個分區,一個存文件,或他用 "擴展文件系統",意思是文件系統的種類 。
【3 Linux管理員手冊--存貯介質】磁盤或分區和它所包括的文件系統的不同是很重要的 。少數程序(包括最有理由的產生文件系統的程序)直接對磁盤或分區的原始扇區進行操作;這可能破壞一個存在的文件系統 。大部分程序基于文件系統進行操作,在不同種文件系統上不能工作 。
一個分區或磁盤能作為文件系統使用前,需要初始化,并將記錄數據結構寫到磁盤上 。這個過程就叫建立文件系統 。
大部分UNIX文件系統種類具有類似的通用結構,即使細節有些變化 。其中心概念是超級塊superblock, i節點inode, 數據塊data block,目錄塊directory block, 和間接塊indirection block 。超級塊包括文件系統的總體信息,比如大小(其準確信息依賴文件系統) 。i節點包括除了名字外的一個文件的所有信息,名字與i節點數目一起存在目錄中,目錄條目包括文件名和文件的i節點數目 。i節點包括幾個數據塊的數目,用于存儲文件的數據 。i節點中只有少量數據塊數的空間,如果需要更多,會動態分配指向數據塊的指針空間 。這些動態分配的塊是間接塊;為了找到數據塊,這名字指出它必須先找到間接塊的號碼 。
UNIX文件系統通常允許在文件中產生孔(hole) (用lseek ; 請看手冊), 意思是文件系統假裝文件中有一個特殊的位置只有0字節,但沒有為這文件的這個位置保留實際的磁盤空間(這意味著這個文件將少用一些磁盤空間) 。這對小的二進制文件經常發生,Linux共享庫、一些數據庫和其他一些特殊情況 。(孔由存儲在間接塊或i節點中的作為數據塊地址的一個特殊值實現,這個特殊地址說明沒有為文件的這個部分分配數據塊,即,文件中有一個孔 。)
孔有一定的用處 。在筆者的系統中,一個簡單的測量工具顯示在200MB使用的磁盤空間中,由于孔,節約了大約4MB 。在這個系統中,程序相對較少,沒有數據庫文件 。有關這個測量工具的細節請看附錄 A.

推薦閱讀