Solaris系統管理培訓(第十三章:文件系統介紹)
2024-07-26 00:29:52
供稿:網友
文件系統的定義
對用戶來說,文件系統是存儲信息的文件和目錄的集合。
對操作系統來說,文件系統是以一些數據的集合。
磁盤文件系統
Solaris定義了3種文件系統類型:
ufs – UNIX文件系統。是Solaris缺省的文件系統。
hsfs – 高密度CD-ROM文件系統,是只讀文件系統。
pcfs – PC文件系統,支持DOS格式化的軟盤。
網絡文件系統
NFS是Solaris系統支持的網絡文件系統。
內存文件系統
指操作系統運行時存在于內存中的文件系統。
流分區已經定義了分區的大小和位置,但未創建文件系統。
塊分區已經創建了文件系統。
它們之間的邏輯設備名分別存放在/dev/rdsk河/dev/dsk中。
磁盤卷標包含了磁盤的分區表。磁盤卷標存放在磁盤的第一個扇區。
啟動塊
啟動塊存放著啟動程序。位于磁盤的1-15扇區。
超級塊
超級塊包含啟動塊后面的16個扇區。超級塊是文件系統的信息表,包含:
數據塊的數量
柱面組的數量
數據塊和碎片的大小
硬件的描述
掛接點
文件系統的狀態:干凈、穩定或激活
備份的超級塊
由于超級塊包含了許多關鍵數據,因此,必須要備份。備份是在文件系統創建時產生的。
Solaris下以inode的方式記錄文件
Inode包含文件的下列信息:
文件類型和訪問模式
文件的擁有者和所在組的
文件大小
上次訪問和更改的時間以及inode更改的時間
已用數據塊的數量
inode包含兩種指針:直接指針和間接指針
直接指針
有12個,直接指向數據塊。這12個指針可以支持96K字節的文件。
間接指針
單倍間接– 單倍間接指針指向包含指針的數據塊。這樣可以支持16M字節的文件。
雙倍間接–雙倍間接指針指向包含單倍間接指針的數據塊。這樣可以支持32G字節的文件。
三倍間接–三倍間接指針指向包含雙倍間接指針的數據塊。這樣可以支持70T字節的文件。
newfs創建文件系統
# newfs /dev/rdsk/c0t2d0s0
newfs: construct a new file system /dev/rdsk/c0t2d0s0: (y/n)? y
/dev/rdsk/c0t2d0s0: 41040 sectors in 57 cylinders of 9 tracks, 80 sectors
21.0MB in 4 cyl groups (16 c/g, 5.90MB/g, 2688 i/g)
super-block backups (for fsck -F ufs -o b=#) at: 32, 11632, 23232, 34832,
文件系統檢測工具(fsck)用于檢測文件系統是否出錯。
比如,某個數據塊不能同時被兩個不同的inode占用。Fsck程序可以檢測這種錯誤。
# fsck /dev/rdsk/c0t3d0s7
** /dev/rdsk/c0t3d0s7
** Last Mounted on /export/home
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
2 files, 9 used, 21606 free (14 frags, 2699 blocks, 0.1% fragmentation)
文件系統錯誤
許多情況下,文件系統發生錯誤是由于超級塊有錯誤。發生錯誤的原因主要是:
非正常關機
掉電
硬件錯誤
fsck運行的時間
系統每次啟動時都會自動運行fsck。如果發現錯誤,會嘗試自動修復,如果錯誤非常嚴重,需要人工修復。這是進入系統單用戶模式,然后打命令:
#fsck /dev/rdks/c0t0d0s0
df命令查看已掛接的文件系統使用狀況
參數k:表示以千字節格式顯示
$ df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t3d0s0 38111 19196 18877 51% /
/dev/dsk/c0t3d0s6 565503 361529 203409 64% /usr
/PRoc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
/dev/dsk/c0t3d0s1 25159 4886 20248 20% /var
/dev/dsk/c0t3d0s5 27439 20362 7050 75% /opt
swap 45980 12 45968 1% /tmp
du命令顯示某個目錄下文件的占用磁盤空間的情況:
du [-a] [-s] [-k] [directory]
參數:
-k 以千字節方式顯示(默認是以塊方式顯示,一個塊為512字節)
-s 只以簡略的方式顯示
-a 顯示制定目錄下所有文件和目錄占用的磁盤塊數量