由於筆者原本計畫自己撰寫..但是發現有更好的文章..因此特別從對岸的ChinaUnix論壇轉載一位Solaris版主的文章與鳥哥的朋友分享..版主的暱稱風之幻想..風之幻想版主的文章可以供有興趣Solaris的朋友當做參考範例..順帶一提Study Area的站長netman兄在ChinaUnix的Shell版中發表的精華帖--Shell十三問..可謂之經典...對於Shell Script有興趣的朋友可以閱讀..
[補充] 感謝站長鳥哥的熱心提醒以下為此三篇文章的連結..作者總共寫暸16篇基礎介紹..有興趣可在連結上的論壇搜尋閱讀
1. [url]http://bbs.chinaunix.net/viewthread.php?tid=887227&highlight=风之幻想[/url]
2.[url]http://bbs.chinaunix.net/viewthread.php?tid=887869&highlight=风之幻想[/url]
3.[url]http://bbs.chinaunix.net/viewthread.php?tid=888126&highlight=风之幻想[/url]
以下先轉載三篇基礎文章..由於本著原汁原味的精神..小弟僅將簡體翻譯成繁體..不做任何增減修改(若有看不懂得可以在此討論)..以尊重原創者的智慧..(第一章是安裝因此略過)
第二章 solaris10的目錄結構
1. 描述/(ROOT)子目錄
2. 描述文件的组成
3. 描述文件的類型
4. 使用Hard Link
solaris的目錄層次是為了更加方便的管理。為了建立不同使用目的的原則,目錄架構內部建立了目錄樹的分割。舉例來說,根目錄的存在支援著本地系統的私有檔案和其他系統共享的檔案以及用戶的主目錄。
邏輯上說,所有的目錄都依附與根目錄。實際上目錄能夠定位在單一的檔案系統上,或者分離的多個檔案系統上。每個SOLARIS必須有一個ROOT檔案系統,同時,其他的檔案系統可以掛結在這個目錄層上。許多的檔案系統都創建在磁片片上同時這些檔案系統包含或者支援檔案和目錄。
介紹重要的系統目錄︰
SOLARIS OE是有一些重要的系統目錄和包含必要的適合作業系統執行的功能性檔案組合而成的一個層面。下面列出了SOLARIS,OE中一些十分重要的系統目錄和次目錄。
/ 根目錄覆蓋了所有的檔案系統的命名空間。
/bin 這個符號連接在/usr/bin這個目錄上。這個目錄存儲了標準系統命令的二進製檔案。
/dev 邏輯設備名存放的主目錄。這個目錄的內容是將一些設備檔案的符號連接到/devices這個目錄上。
/devices 這個目錄是物理設備名的根目錄。
/etc 這個目錄是支援系統管理數據庫和主機的特殊配置檔案。
/export 共享檔案的預設目錄象是用戶的家目錄,應用軟體,或者是其他共享檔案系統。
/home 用戶家目錄的預設目錄或者是用戶目錄的掛結點。
/kernel 是匯入過程所要求的一個獨立平台用於裝載kernel模式的一個目錄。
/lib 這個目錄下的內容是共享所有的檔案和服務管理處理的庫的連接。
/mnt 便利,臨時的一個檔案掛結系統。
/opt 為附加應用包而設立的一個預設目錄或者掛結點。
/platform 依附於/kernel的目錄。
/sbin 一個包括實質處理模式的單用戶目錄,列如手工的系統故障恢復和匯入過程的使用。
/tmp 一個臨時檔案目錄。這個目錄在系統從新啟動的時候會自動清空。
/usr 這個目錄包含所有系統用戶使用的程式,腳本和庫。這個目錄的名字是UNIX系統資源的首字母縮寫。
/var 這個目錄下是一些可變檔案,包括臨時,日誌,或者狀態檔案。
/dev/fd 檔案腳本器
/devices 物理設備名的初始目錄
/etc/mnttab 描述你當前系統的mount情況。
/etc/svc/volatile 這個目錄下是一些log檔案以及系統執行的檔案的相關狀態。
/proc 系統當前執行的進程的資訊。
/system/contract CTFS(契約檔案系統)是一個創建,控制,和觀察契約的一個界面。契約提升了進程了系統資源之間交互的性能。SMF使用契約來跟蹤進程的情況。
/ststem/object 用來描述當前系統load的module。
/dev/dsk 塊磁片設備。
/dev/fbs 楨緩寸器設備檔案。
/dev/md 後磁片的邏輯卷管理。
/dev/pts 虛擬終端設備。
/dev/rdsk 裸磁片設備。
/dev/rmt 裸卡帶設備
/dev/sound 聲音設備和聲音設備控制檔案。
/dev/term 串行設備。
表2 /etc
/etc/acct 記述系統的一些配置資訊。
/etc/cron..d cron使用的配置資訊。
/etc/default 可變程式的一些預設資訊。
/etc/inet 網路服務的配置檔案。
/etc/init.d 停止和開始服務的腳本,以及用於改變執行級別的一些檔案的存儲。
/etc/lib 當/usr檔案系統不可用時需要的一些動力連接庫。
/etc/lp 列印子系統的配置資訊。
/etc/mail 郵件子系統的配置資訊。
/etc/nfs NFS登陸服務的配置資訊。
/etc/opt 選擇包的配置消息。
/etc/rc#.d 當進入和離開特殊執行級別的腳本。
/etc/security 控制RBAC和一些私有的安全設定。
/etc/skel 新用戶登陸的預設的初始化shell檔案。
/etc/svc SMF的數據庫和log檔案的所在。
/etc/zones zone的初始化和參考檔案。
/usr/bin 標準的系統命令。
/usr/ccs C的編輯程式和庫。
/usr/demo 演示程式和數據。
/usr/dt CDE(Common Desktop Environment)軟體的目錄和掛接位置。
/usr/include 頭檔案(C程式和其他一些程式)
/usr/java 包含JAVA程式和庫的目錄。
/usr/kernel 一個可以加載的核心模式的獨立平台同時,在系統啟動過程中並沒有具體的要求。
/usr/lib 數據庫所倚賴的體系架構,可變程式庫和用戶並不直接到入的二進製資訊。
/usr/opt 可選擇包的一些配置資訊。
/usr/sbin 系統管理命令。
/usr/spool /var/spool的符號連接檔案。
/var/adm log檔案所在。
/var/crash crash dump的所在。
/var/spool
/var/svc
/var/tmp
檔案組成的介紹︰
SOLARIS OE的所有檔案所使用的檔案名和記錄被稱為資訊接點。許多數據也使用數據塊。總體來說,每個檔案名有一個相應的資訊接點,同時資訊接點提供數據塊的接入。
檔案名
檔案名是許多通常可進入和可操作的檔案目標。一個檔案必須有檔案名以及相對應的資訊接點。
資訊接點
資訊接點是SOLARIS OE使用關於檔案資訊記錄的目標。總的來說,資訊接點包含了2部分,第一,資訊接點含蓋了關於檔案的資訊,包括,檔案的所有者,檔案的權限,和它的大小。第二,資訊接點包含了檔案所對應的數據塊的指標。
資訊接點是一些數字,同時檔案系統包含了屬於它自己的資訊接點清單。當一個新的檔案系統創建時,完成的這個新的資訊接點清單也創建在這個檔案系統中。
數據塊
數據塊是一些用於存儲數據的磁片空間單元。規則的檔案,目錄和符號連接使用數據塊。設備檔案並不佔有數據塊。
認識檔案模式︰
Sloaris OE支援一種可以在所有以UNIX為基礎作業系統上找到的標準的檔案設定模式。大體上來說,檔案提供的功能有︰數據存儲,活動設備,或者允許交互處理間的通信。在Sloaris OE中存在著多種檔案模式,歸納主要有下列4種︰
正規或者道統的檔案。
目錄
字符連接
設備檔案。
正規檔案,目錄和字符連接用於存儲各種類型的數據。設備檔案並不存儲數據。而設備檔案用於提供設備的使用權限。
使用ls命令可以用於辨別檔案類型之間的區別。用ls l命令看到的第一欄字符資訊是用來指示檔案類型的。
一般性檔案
是系統中存在的普通的大多數的檔案,能夠儲存用戶的各種類型的數據。可以透過vi進行編輯。
目錄
目錄是存儲了檔案名以及和inode的關聯資訊。
連接檔案
連接檔案是相當與其他一個檔案的指標。可以用ln來建立。
第三章 管理本地磁盤設備
目標︰
描述基本的磁盤結構
描述磁盤的命名規則
列出設備
重新配置設備
執行硬盤分區
管理磁盤的label
描述SMC
使用SMC分區
首先,先來說一下物理磁盤的組成︰
磁盤的存儲區域是由一些碟片組成的。
這些碟片是旋轉的
磁片讀寫定位機械臂移動磁片頭來進行定位
讀寫把數據讀寫到碟片表面的磁介質上。
一個碟片又被分為︰扇區(一個扇區為512byte,也就是一個磁片塊),磁道,柱面
磁片slice就是將一個磁片在邏輯上分出來的分區。一般來說一個磁片可以分成8個區0~7。
一般slice2代表整個磁片。
一般的分配方式為︰
0 /
1 swap
2 整個磁盤
3
4
5 /opt
6 /usr
7 /export/home
但是,在安裝的時候,可以根據自己的需要來安裝很分配。
磁片的命名規則一般為︰c#t#d#s#的模式。但是如果加如了卷管理的模式,磁片的命名規則會根據卷管理軟體的要求進行更改的。比如:vertias volume manager下為/dev/vx/dsk/dgname/volume。
C︰一般 controller number
T︰代表target number
D: 一般代表disk number
S: 一般代表slice number
在solaris下所有的磁片一般被分為3種命名模式︰
邏輯設備名
物理設備名
實名
邏輯設備名是來源於物理設備名的一個連接,連接於/devices目錄。所有的邏輯設備名都在目錄/dev下。邏輯設備名的命名模式就是採用c#t#d#s#。所有在/dev下的設備又分為/dev/dsk和/dev/rdsk兩中塊設備和字符設備。
物理設備名
物理設備名是系統中唯一用來標識本地物理設備的。設備名在/devices下。物理設備名是由一系列的接點名組成的。用/來進行路徑的區分。光纖盤與其他的不太一樣是有WWN(world wide name)號來表示。
實名是有kernel為每個設備分發的一個縮寫名。
Sdn︰代表SCSI硬碟。
Dadn︰代表ide硬碟
Ssdn︰代表光纖盤
檢視設備設備名可以在/etc/path_to_inst檔案中,有詳細的設備清單清單。(檢視網卡設備的時候比較輕鬆)
也可以使用prtconf |grep v not來檢視設備清單的清單。
在一個就是format命令。
重新識別設備的時候,可以透過3種模式一種是︰
Touch /reconfigure
Init 5
然後,加上設備然後再重新啟動。(基本上已經不用這樣的模式了)
另一種是用drvconfig
再一種是devfsadm(8以後開始出現的命令)
format實用程式是一個系統管理員工具,用於在Solaris操作環境中對硬碟的準備工作。
用戶可以透過使用format實用程式來進行磁片的分類管理,主要的目的是對磁片進行分區。
為磁片分區,系統管理員需要︰
。正確的識別磁片
。規劃磁片
。使用format實用程式分區
。為磁片加上新分區的標籤(label)
只有root用戶可以使用format實用程式。如果普通用戶營運了format實用程式,系統將顯示沒有權限或者沒有找到磁片。
磁片卷標和分區表
在Solaris操作環境中,每一個磁片都在存儲區域旁邊指定一個區域,來設定關於磁片的控制單元,表面分佈和分區的訊息。
這個訊息稱為磁片的卷標。其他部分則是用於描述內容的卷表(volume table of contents,VTOC)。這個磁片卷標或者VTOC儲存在磁片的第一個扇區。
為一個磁片建立卷標是為了要在磁片上寫入分區的訊息。如果系統管理員在定義分區後忘記了為磁片加卷標,分區訊息就會丟失。
磁片卷標的一個重要部分就是定義磁片分區的分區表,分區在柱頭上的分界線和所有分區的長度。
Flag︰wm=磁片分區是可寫並且可mount的
wu=磁片分區是可寫並且不可mount的
rm=磁片分區是可讀並且可mount的
ru=磁片分區是可讀並且不可mount的
Cylinders分區的起始柱頭數和終止柱頭數
Size分區的長度︰Mbytes(mb),Gbytes(gb),Blocks(b),Cylinders(c)
Blocks每個分區的柱頭的總數和扇區的總數
定義磁片Slices
Slices是定義在一個柱頭組和柱頭的長度上的。柱頭組的起始位置是柱頭0
定義磁片partitions
下面描述了定義磁片的partitions先決條件。
不良的條件
當建立或者改變底盤的slices時,有2種可能發生的不良條件︰浪費的磁片空間和重疊的磁片Slices。
浪費的磁片空間︰當一個或者多個柱頭沒有在Slices中定位所產生的空間
重疊的磁片Slices︰當一個或者多個柱頭同時被多個Slices定位。
定位磁片分區表
當root用戶使用format實用程式選擇磁片的分區時,一個磁片分區表的拷貝就被讀入內存並且顯示當前的磁片卷標。
Format實用程式通常是倚賴於/etc/format.dat檔案來讀或者調用format實用程式。可以使用/etc/format.dat檔案來快速定義可用磁片表和預先的分區表。
用戶可以使用下列命令來將從/etc/format.da檔案中預先設定的分區表讀入當前卷標。
。select︰從/etc/format.dat檔案中選擇一個預先設定的分區表
。print︰顯示選擇的分區表
。label︰將選擇的分區表寫入磁片的卷標
。verify︰定位磁片卷標和顯示新訊息
。disk︰選擇磁片
。name︰為改變了的分區表建立一個名字
。save︰儲存名字到./format.dat文件中
進行磁盤分區
按照下面的步驟為磁盤分區
1.Root用戶在提示符前輸入format並且回車
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>
/pci@1f,4000/scsi@3/sd@0,0
1. c0t1d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
/pci@1f,4000/scsi@3/sd@1,0
Specify disk (enter its number): 1
Format實用程序搜索所有已經綁定的磁盤,每個被找到的磁盤,format都顯示他的邏輯設備名,硬件名,物理參數和物理設備名。
2.選擇在磁片邏輯設備名左邊的編號選擇第二個磁片。
selecting c0t1d0
[disk formatted]
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
volname - set 8-character volume name
!<cmd> - execute <cmd>, then return
quit
用於分割Slices的特定的菜單包括
。partition︰顯示分區選單
。label︰將當前定義的分區寫入磁片卷標
。verify︰讀並且顯示磁片卷標
。quit︰退出format實用程序
3.在format提示符輸入partition
format> partition
PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
!<cmd> - execute <cmd>, then return
quit
partition菜單已經顯示了。這個選單使用戶可以執行下列功能
。0-7︰指定8個分區的柱頭組和長度
。select︰從/etc/format.dat中選擇之前定義的分區表
。modify︰改變之前定義的分區表
。name︰命名當前的分區表
。print︰顯示當前的分區表
。label︰將當前分區表寫入磁片卷標
4.在partition提示符輸入print顯示在內存中的磁片卷標的拷貝。
partition> print
Current partition table (original):;分區名
Total disk cylinders available: 4924 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 unassigned wm 0 0 (0/0/0) 0
1 unassigned wm 0 0 (0/0/0) 0
2 backup wm 0 - 4923 8.43GB (4924/0/0) 17682084
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 home wm 0 - 4923 8.43GB (4924/0/0) 17682084
分區的名字顯示在第一行的括號中
下面顯示每列的含義
。Part︰磁片的Slice編號
。Tag︰之前定義的可選的標記符
。Flag︰之前定義的可選的標誌位
。Cylinders︰Slice的起始柱頭和結束柱頭
。Size︰Slice的容量
。Blocks︰每個Slice的柱頭的總數和扇區的總數
5.輸入0選擇Slice 0
partition> 0
Part Tag Flag Cylinders Size Blocks
0 unassigned wm 0 0 (0/0/0) 0
Enter partition id tag[unassigned]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]:
Enter partition size[0b, 0c, 0.00mb, 0.00gb]: 400
partition>
6.當提示ID tag時,輸入問號可以列出所有的可選項
7.按回車鍵則使用默認的tag
8.當提示permission flags時,輸入問號可以列出所有的可選項
9.按回車則使用默認的flag
10.輸入回車可以設置起始的柱頭
11.為Slice 0輸入新的容量
12.輸入print,顯示改變後的當前Slice 0
13.輸入1選擇Slice 1
14.按回車選擇默認的tag和flags
15.輸入Slice 1的新起始柱頭
16.輸入Slice 1的新容量
17.輸入print顯示改變後的Slice
18.輸入7選擇Slice 7
19.按回車選擇默認的tag和默認的flag
20.輸入Slice 7的新起始柱頭
21.輸入Slice 7的新容量,可以輸入$,表示自動分配到最後一個柱頭
22.輸入print顯示分區表
23.檢測沒有錯誤後,使用label命令為磁盤建立卷標
保存分區表到/etc/format.dat文件
1.在partition菜單輸入name,並且輸入一個唯一的名字
2.輸入quit命令退出分區菜單
3.輸入save保存新的分區表信息。輸入/etc/format.dat的完整路徑名
定位和使用定製的分區表
1.進入partition選單
2.使用select命令選擇定製的分區表
3.將選擇的分區儲存到磁片卷標中
4.退出partition選單
5.讀新的磁片卷標
6.退出format實用程式
使用modify命令重新分發磁片
用戶有時需要改變Slice的容量,例如磁片擴容,或者減少。最簡單的辦法就是在partition選單中使用modify命令。
當一個磁片現有的Slice被重新分區並重新設定了卷標,那麼磁片上所有現有的數據都將丟失。現有的重要數據必須備份。
Free hog分區是用於一個儲存其他Slice容量改變的磁片空間
使用modify命令
使用下列步驟改變磁片Slice的容量
1.輸入format並且返回
2.選擇一個適當的磁片
3.輸入partition
4.輸入modify並且返回
5.輸入返回以認可預設的選擇
6.選擇預設的選項並且返回或者輸入yes
7.按返回認可Slice 6是Free Hog分區。如果Slice 6沒有分發空間,那麼用戶必須指定其他的Slice
使用Free Hog Slice
當root調用format實用程式改變一個或者多個磁片的Slices,一個“臨時性“的Slice必須被指定來為擴張和收縮調節運做
當其他Slics是擴展的,恢復,獨佔或者一個Slice變小是犧牲的空間時,這個臨時Slice是用於調整空間的。所以,這個臨時的Slice有時被成為free hog
free hog分區只在安裝或者營運format時存在。普通情況下是沒有free hog分區存在的
8.輸入Slice 0的容量,並且回車
9.按回車默認其他分區的容量
10.按回車確認使用這個分區表
11.給當前的分區命名
12.將改變了的分區表寫入磁盤卷標
13.輸入quit退出
查看磁盤的VTOC
用戶可以使用2個方法來查看,定位磁盤的卷標或者VTOC
第一個方法是在format實用程序中是verify
第二個方法是調用prtvtoc命令
使用verify命令讀磁盤的VTOC
1.在format提示符下輸入verify並且回車
format> verify
Primary label contents:
Volume name = < >
ascii name = <SUN18G cyl 7506 alt 2 hd 19 sec 248>
pcyl = 7508
ncyl = 7506
acyl = 2
nhead = 19
nsect = 248
Part Tag Flag Cylinders Size Blocks
0 root wm 446 - 1376 2.09GB (931/0/0) 4386872
1 swap wu 0 - 445 1.00GB (446/0/0) 2101552
2 backup wm 0 - 7505 16.86GB (7506/0/0) 35368272
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 home wm 1377 - 7505 13.77GB (6129/0/0) 28879848
2.輸入quit退出
使用prtvtoc命令讀磁盤的VTOC
# prtvtoc /dev/rdsk/c0t0d0s2
。Dimensions(尺度)︰描述磁片的物理尺度
。Flags︰描述分區表中的flags
。partition︰描述分區表
。flags︰00=wm/01=wu/10=rm/11=ru
。First Sector︰定義Slice的起始扇區
。Sector Count︰定義Slice的總共扇區
。Last Sector︰定義Slice的結尾扇區
。Mount Directory︰顯示當前的分區是否被掛接在某一目錄中
fmthard命令
使用prtvtoc命令,用戶可以儲存磁片的VTOC到一個檔案。這允許用戶在下列情況下使用fmthard命令來從新為磁片建立卷標。
。在磁片上的VTOC被破壞掉了
。因為偶然的原因導致磁片上的分區表變化了
為了將prtvtoc命令的輸出儲存到其他磁片的一個檔案中,用戶可以在fmthard命令中使用datafile變量。
Fmthard –s datafile /dev/rdsk/c#t#d#s2
如果發生了上面描述的其中一種情況,並且先前保存了一個文件,用戶可以︰
1.運行format,選擇磁盤並且為默認的分區表設置磁盤卷標
2.使用fmthard命令將datafile中的信息寫回磁盤
# fmthard –s /vtoc/c1t3d0 /dev/rdsk/c1t3d0s2
SMC是一個圖形界面的管理方式,可以很容易直觀的來使用,具體的使用過程在這裡就不在詳細說明了。說明一下SMC的啟動和停止的步驟。
/etc/init.d/init.wbem status 查看運行狀態
/etc/init.d/init.wbem stop 停止服務
/etc/init.d/init.wbem start 啟動服務
第四章 管理文件系統
目標要求︰
描述solaris 文件系統
創建一個新的UFS文件系統
使用fsck來檢驗文件系統
解決文件系統不連續
監視文件系統的使用
首先來描述一下solaris文件系統,solaris支持3種類型的文件系統︰
基於磁盤的文件系統
分布式文件系統
Pseudo文件系統
基於磁盤的文件系統又可以分為︰
UFS︰在10的時候UFS可以達到TB。
Hsfs︰支援CDROM的高密數據
Pcfs︰支援DOS的FAT32檔案系統
Udfs︰支援DVD和CDROM的通用檔案系統格式。
分佈式檔案系統
NFS︰我們通常所說的網路檔案系統共享模式。
Pseudo檔案系統
Pseudo檔案系統是一種基於內存的檔案系統模式。它包括︰
Tmpfs : 臨時檔案系統是基於內存而存在的。當機器重新啟動的時候它會創建新的數據,而將以前存儲的數據清除。
Swapfs︰ 是用於swap管理的。
Fdfs︰ 檔案描述器檔案系統又/dev/fd下的檔案描述器為打開的檔案提供一個明確的名字。
Procfs︰進程檔案系統在/proc下為每一個營運的進程提供一個描述。
Mntfs︰為本地已經mount的檔案系統提供一個只讀的訊息。
Objfs︰kernel object 檔案系統。這個檔案系統是描述當前kernel已經加載的module的相關詳細訊息。存儲在/system/object。
Devfs︰設備檔案系統。使用/devices下的訊息。
Ctfs︰契約檔案系統。來源於/system/contract目錄。使用SMF跟蹤進程。 以便對進程的錯誤等等進行及時的處理。
Solaris操作環境ufs檔案系統
對於一個在Solaris操作環境中的用戶,一個檔案系統就是一個檔案和目錄的集合用於為系統和用戶儲存和組織數據
對於作業系統,一個檔案系統就是透過分區和允許儲存和管理的數據的一個控制架構和佔用空間定義的數據塊的集合。
Solaris操作環境將數據儲存在一個邏輯檔案體系中。這個檔案體系引用了透過檔案系統編號形成的Solaris目錄樹。
每個ufs檔案系統在Solaris操作環境可以使用之前必須建立在磁片Slice上。在磁片Slice上建立檔案系統可以使Solaris操作環境儲存UNIX目錄和檔案。
基本磁片架構
磁片卷標(VTOC)
磁片卷標包括在磁片上的分區表,並且定位在第一個磁片扇區。一個磁片分區可以包括一個通常為Solaris操作環境認為是有組織的目錄或者檔案的檔案系統。
啟動塊
bootstrap程式(bootblk)在下15個磁片扇區中查找。只有root檔案系統才有活動的啟動塊,雖然每個檔案系統都定位這個空間。
超級塊
檔案系統是透過超級塊進行描述的。超級塊包含在啟動塊後面的16個扇區中。超級塊是一個包含下列訊息的檔案系統訊息表︰
。數據塊編號
。柱頭組編號
。數據快和碎片的長度
。硬體的描述(從卷標中匯出)
。mount點的名字
。檔案系統狀態標誌︰clean,stable,active,logging,unknown
備份超級塊
因為超級塊包含著臨界數據,所以他被複製到每一個柱頭組用來防止災難發生。當檔案系統被建立之後,這個工作就已經完成了。
柱頭組
透過在柱頭組中分割分區(每個組的最小預設長度是16個柱頭),可以改善磁片的訪問。檔案系統經常透過在一個柱頭組中訪問檔案數據來優化磁片。如果需要,檔案系統透過幾個柱頭組來儲存檔案。
柱頭組塊
柱頭組塊是一個描述柱頭組的表,包括︰
。inode編號
檔案類型和訪問模式
用戶的UID和GID
檔案的大小
連接數
檔案最後一次的訪問和修改接點的時間
分發給檔案使用的數據塊的總體數量
兩種指標︰直接指標和間接指標
直接指標︰
共有12個對數據塊直接訪問的直接指標,這12個直接指標可以為一直到96K位元組的容量的檔案直接引用數據塊。
間接指標︰
有3中類型的間接指標︰
。單間接指標︰一個單間接指標查找一個檔案系統塊包含到數據塊的指標。這個檔案系統塊包含2048個8K位元組數據塊的附加位址(即2048個指標),可以指向一個附加的16M位元組的數據。
。雙間接指標︰一個雙間接指標查找一個檔案系統塊包含單間接指標。每個間接指標查找一個檔案系統塊中包含的數據塊指標。雙間接指標可以指向的32G位元組的數據。
。三倍間接指標︰一個三倍間接指標可以查找超過70T位元組的數據。可是,在一個ufs檔案系統中的最大的檔案容量是64T。
在檔案系統上靜止的空間稱為數據塊,也叫做存儲塊
數據塊是已經分發的,在預設的情況下,在8K位元組邏輯塊長度中,並且更進一步的分割成1K位元組的片段。
對於一個普通檔案,數據塊包括檔案的內容。
對於目錄,數據塊包括在那個目錄中的那些檔案的檔案名和他們的inode編號。
建立一個ufs檔案系統
1.Root權限,在一個重新分區後的磁片的第一個Slice上建立檔案系統
# newfs /dev/rdsk/c1t3d0s7
2.Newfs命令會在檢測正確的磁片Slice之前提問確認訊息。
繼續則輸入y,中斷則輸入n
newfs命令會顯示關於已經被建立的檔案系統的訊息
第一行顯示的是磁片的基本表面數據的描述
第二行顯示在這個Slice上已經建立的ufs檔案系統
第三行和剩餘的行列出備份的超級塊的位置。
3.在其他需要包含檔案系統的Slice上重複第一步和第二步
Newfs儲存了1-10%的磁片空間。可以透過newfs m進行預先的調整minfree。(記得8的時候直接newfs的時候,minfree好像是1%)
可以透過fstyp來看minfree的情況。
Fstyp v /dev/dsk/c0t1d0s6 |head
Newfs m 2 /dev/dsk/c0t1d0s6
對於已經存在的檔案系統可以用
Tunefs m 1 /dev/rdsk/c0t0d0s0來進行調整。
使用fsck來解決檔案系統不連續的問題。
可以採用交互模式進行fsck
Fsck /dev/rdsk/c0t0d0s7
相關的一些關於超級塊的修復等等在這裡就不在詳細描述了。(論壇中這樣的帖子很多)
對於檔案使用情況的檢測,可以使用df du quot來檢視。
Df 我們常用的參數有k ,h ,-o i F fstye 幾個參數。
Du 我們常用的幾個參數是k s a
Quot我們常用參數是a f。
另外,以上的操作都可以透過SMC來完成。[url][/url]
留言列表