一、基本的磁盤結構的介紹
磁盤設備有物理和邏輯成分.物理成分包括磁盤淺盤和讀寫磁頭.邏輯成分包括磁盤片,柱面,磁軌和扇區.
1.物理磁盤結構
磁盤的物理結構由一系列平面的,在軸上有一堆有磁力的盤片組成的.當讀寫頭定位機械臂移動,盤片則在旋轉.讀寫數據寫入到磁盤上.
下面描述了磁盤的物理組成:
l 磁盤存儲區域是由一個或多個磁片組成.
l 這些磁片是旋轉的.
l 磁盤讀寫定位機械臂移動磁盤頭來進行定位.
l 讀寫頭讀寫數據到磁盤表面的磁介質上.
2. 在磁盤磁片上的數據組織
一個磁盤磁片分爲扇區,磁道,柱面.
扇區:磁片上的最小單元地址.一個扇區有512byte的數據,也就是一個磁盤塊.
磁道:一系列扇區定位在首尾相連的圓形軌道上.
柱面:一堆磁道.
許多扇區的每個磁道在磁片上隨着磁道的變化而變化.最外面的磁道最大,可以支撐比裏面磁道更多的扇區.
因爲磁盤讀寫定位機械臂繼續移動磁盤頭來定位,最有效的搜索會發生,當扇區被讀或被寫到指定的柱面上.
3. 磁盤片
磁盤片就是將一個磁盤在邏輯上被分爲出來的分區.磁盤片被柱面分組,他們一般被功能上組織數據.
例如,一個磁盤片可以存儲重要的系統文件和程序,當另一個磁片在同一磁盤上可以存儲用戶創建的文件.
在Solaris OS下,一個磁盤可以分成8個區,他們是從Slice0~Slice 7
一般來說,Slice2代表了整個磁盤, Slice2維護了關於整個磁盤的重要的數據,比如目前磁盤的大小,可用柱面存儲文件和目錄的總的數字.
下面顯示磁盤片和他們所有的不同文件系統
Slice |
Name |
Function |
0 |
/ |
根目錄的系統文件 |
1 |
swap |
交換區域 |
2 |
|
整個磁盤 |
5 |
/opt |
可選的軟件 |
6 |
/usr |
系統可執行的程序 |
7 |
/export/home |
用戶文件和目錄 |
(1)磁片命名規則
磁片的全名由8個字符組成.字符包括控制號,目標號,磁盤號和磁片號.
Controller number: 識別主機總線適配器HBA(host bus adapter),它控制系統和磁盤單元之間的通信.HBA關心接收和發送到設備上的命令和數據.控制號按順序排列,如c0,c1,c2…
Target number: 目標號,如t0,t1,t2和t3,符合唯一硬件地址,它分配給每一個磁盤,磁帶,或CD-ROM.一些外部磁盤驅動器有一個地址開關定位於後面板.一些內部磁盤有地址插腳,它的跳號作爲磁盤的目標號.
Disk number:磁盤號也作爲合理的單元數LUN(logical unit number).這個數字在目標位置上反應了磁盤的數字.
Slice number:磁片號的範圍從0到7.
嵌入SCSI配置和集成電路設備IDE配置(integrated device electronics)表現磁盤片的命名規則,它是通過兩個不同的結構組成.磁盤號通常設爲d0爲嵌入SCSI磁盤.
磁盤的命名規則一般爲:c#t#d#s#的方式.
二、Solaris OS設備命名規則的介紹
在Solaris OS中,所有的設備分成三種不同類型的命名:邏輯設備名、物理設備名、實名.
1. 邏輯設備名
邏輯設備名是來源於物理設備名的一個連接,它連接於/device目錄.當你在命令行用命令進入時,邏輯設備名主要是涉及到一些設備.所有的邏輯設備名都在/dev目錄下.邏輯設備名包含控制號,目標號,磁盤號和磁片號.
每個磁盤設備既可以用/dev/dsk,又可以用/dev/rdsk目錄進入塊設備和字符磁盤設備.顯示/dev/dsk目錄,執行命令:
# ls /dev/dsk
c0t0d0s0 c0t0d0s4 c0t2d0s0 c0t2d0s4 c1t1d0s0 c1t1d0s4
c0t0d0s1 c0t0d0s5 c0t2d0s1 c0t2d0s5 c1t1d0s1 c1t1d0s5
c0t0d0s2 c0t0d0s6 c0t2d0s2 c0t2d0s6 c1t1d0s2 c1t1d0s6
c0t0d0s3 c0t0d0s7 c0t2d0s3 c0t2d0s7 c1t1d0s3 c1t1d0s7
2. 物理設備名
物理設備名是系統中唯一用來標識硬盤設備的物理位置.設備名在/devices目錄下.
物理設備名由硬盤信息,一系統的接點名組成,指向設備的路徑.顯示物理設備名的執行命令:
# ls -l /dev/dsk/c0t0d0s0
lrwxrwxrwx 1 root root 46 Sep 24 10:59 /dev/dsk/c0t0d0s0 ->
../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a
FC-AL磁盤與其他的有點不同,因爲他們顯示的是WWN(World Wide Name).下面的以SUN企業的3500服務器爲例.
# ls -l /dev/rdsk/c0t0d0s0
lrwxrwxrwx 1 root root 78 Jun 16 2000 /dev/rdsk/c0t0d0s0 ->
../../devices/sbus@2,0/SUNW,socal@d,10000/sf@0,0/ssd@w21000020375b9ab6,0:a,raw
3. 實例名
實例名是由內核爲每個設備分配的縮寫名.
實例名是物理設備名的簡短的名字.下面顯示兩個例子:
sdn: sd是磁盤名,n是數字.如sd0表示第一個SCSI磁盤設備.
dadn: dad(direct access device)是磁盤名,n是數字.如dad0表示第一個IDE磁盤設備.
三、列出系統的設備
在Solaris OS中,有一些方法列出系統的設備,包括:
l 使用/etc/path_to_inst文件
l 使用prtconf命令
l 使用format命令
1. /etc/path_to_inst文件
對每個設備來說, 系統在/etc/path_to_inst文件中記錄它的物理名和實例名. 這些名字被內核用來標識每個可能的設備.這個文件只在啓動時可讀.
/etc/path_to_inst文件是由內核來維護的,一般沒有必要,也不建議系統管理員去改變這個文件.
下面授例子顯示/etc/path_to_inst文件的條目.括號內的文本指定條目中的設備引用的設備,這在實際的文件中是不會顯示的.
#cat /etc/path_to_inst
"/pci@1f,0" 0 "pcipsy" (PCI bus controller, “psycho” chip)
"/pci@1f,0/pci@1,1" 0 "simba" (PCI bus B)
"/pci@1f,0/pci@1,1/ebus@1" 0 "ebus" (extended bus)
"/pci@1f,0/pci@1,1/ebus@1/power@14,724000" 0 "power" (power management bus)
"/pci@1f,0/pci@1,1/ebus@1/fdthree@14,3023f0" 0 "fd" (floppy disk)
"/pci@1f,0/pci@1,1/ebus@1/SUNW,CS4231@14,200000" 0 "audiocs" (crystal semiconductor)
"/pci@1f,0/pci@1,1/network@1,1" 0 "hme" (Fast Ethernet)
上例中顯示的設備實例號,是被記錄到這個文件是的設備實例名的前半截.
Note:不同的系統有不同的物理設備路徑.上例中是一個PCI總線架構的機器的設備.
下面是一個不同的架構機器的/etc/path_to_inst文件. 這是一臺在SUN系統總線SBus(System bus).
#cat /etc/path_to_inst
“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@3,0” 3 “sd”
“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@2,0” 2 “sd”
“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@1,0” 1 “sd”
“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@0,0” 0 “sd”
“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@6,0” 6 “sd”
“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@5,0” 5 “sd”
“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@4,0” 4 “sd”
2. prtconf命令
使用prtconf命令顯示系統的配置信息,包括安裝的內存的總數,系統外設的配置,這些形成一個設備樹.
prtconf命令開出所有可能設備的實例名,不論設備有沒有連接到系統中.要列出只連接到系統中的設備的列表.執行命令:
# prtconf | grep -v not
System Configuration: Sun Microsystems sun4u
Memory size: 256 Megabytes
System Peripherals (Software Nodes):
SUNW,Ultra-5_10
scsi_vhci, instance #0
options, instance #0
pci, instance #0
pci, instance #0
ebus, instance #0
power, instance #0
su, instance #0
su, instance #1
fdthree, instance #0
network, instance #0
SUNW,m64B, instance #0
ide, instance #0
sd, instance #3
dad, instance #1
pci, instance #1
scsi, instance #0
pseudo, instance #0
#
Note: grep -v命令用於從輸出中忽略包含單詞“not”的行,例如driver not attached。
3. format命令
使用format命令列出所有當前可用的硬盤的物理設備名與邏輯設備名.執行如下命令查看當前可用的硬盤的物理設備與邏輯設備名:
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0 <ST38410A cyl 16706 alt 2 hd 16 sec 63>
/pci@1f,0/pci@1,1/ide@3/dad@0,0
1. c1t3d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
/pci@1f,0/pci@1/scsi@1/sd@3,0
Specify disk (enter its number):^D
#
Note:按Ctrl+D不做任何選擇退出format命令.
四、重新配置設備
如果調用重新配置啓動或運行devfsadm命令,有兩種方式系統會去識別新增加的外圍設備.
1. 執行重新配置啓動
例如,你可以使用啓動程序添加新的設備到新產生/etc/path_to_inst文件與到/dev和/devices目錄中.
下面的步驟重新配置系統去識別新的磁盤.
1) 創建/reconfigure文件.這個文件讓系統在加電或啓動時檢測新安裝的設備的存在.
# touch /reconfigure
#
2) 使用init 5命令關閉系統.這個命令安全地關閉系統電源,慮及到增加的設備或移除的設備.(如果設備已經連接到你的系統,你可以使用init 0命令關閉到ok提示符下.)
# init 5
3) 安裝外圍設置.確定在系統上要添加的設備地址沒有和其他設備的地址相沖突.
4) 打開電源開啓所有的外部設備.
5)使用prtconf命令或者format命令檢查是否被添加到系統中.
在磁盤經過系統難後,開始處理定義的磁盤片.
Note: 如果/reconfigure文件在系統關閉前沒有被創建,你可以使用PROM級命令來執行一個手工的重新配置啓動:boot –r.
2. 使用devfsadm命令
許多系統7*24小時的運行重要的客戶應用軟件.在這些系統中,它不可能執行重新配置啓動.在這種情況下,你可以使用devfsadm命令.
devfsadm命令執行設備重新配置程序,並且在重新配置事件中更新/etc/path_to_inst文件和/dev及/devices目錄.
/devfsadm命令嘗試裝載系統中所有的驅動程序,且將之與可能的設備實例匹配.然後它在/device目錄中創建設備文件,在/dev目錄中創建邏輯連接.另外devfsadm命令也維護/etc/path_to_inst文件.
# devfsadm
爲了限制devfsadm命令到只搜索特定類的設備文件,使用-c 選項.
devfsadm –c device_class
device_calss的值包括disk, tape, port, audio, and pseudo. 例如,要限制devfsadm命令到disk設備類型,執行命令:
# devfsadm –c disk
要指定多個設備類型,可以多次使用-c選項.如,指定disk, tape和audio設備類型,執行命令:
# devfsadm –c disk –c tape –c audio
要限制devfsadm命令只配置與某個已知的設備驅動程序相關的設備,使用-i選項.
devfsadm –i driver_name
下面的例子使用-i選項.
l 爲配置只由dad驅動支持的硬盤.執行命令:
#devfsadm –i dad
l 爲配置只由sd驅動支持,執行命令:
#devfsadm –i sd
l 爲配置只由st驅動的支持,執行命令:
#devfsadm –i st
l 如果打印改變的設備樹,執行命令:
#devfsadm –v
l 要執行不再被引用的符號鏈接清除,使用命令:
#devfsadm -C
五、硬盤分區
在Solaris OS中,format工具是一個重要的系統管理工具,它用於對使用硬盤前的準備操作.
雖然format工具也執行各種磁盤管理動作,但它主要的功能是分區
Note:在安裝Solaris OS之前,不需要對硬盤進行分區.
1. 介紹磁盤分區的基本原理
要把磁盤分成片:
1) 標識正確的磁盤.
2) 規劃磁盤分片佈局
3) 使用format工具把磁盤分區.
4) 把磁盤新的分片標上卷標.
只有超級用戶有權限使用format工具.如果是一般用戶運行format工具,會出現下面的錯誤信息:
$ /usr/sbin/format
Searching for disk...done
No permission (or no disk found)!
2. 認識磁盤空間及其內部條件
磁盤分片以柱面的偏移量與大小來定義.偏移量是距離柱面0的距離.
3. 浪費的磁盤空間
當一個勤務多個柱面沒有被分配給磁盤分片時,就會產生浪費的磁盤空間.
浪費的磁盤空間產生於分區過程中,當一個或多個柱面沒有被分配磁盤分片時.這可能是由於無意或是偶然造成的.如果有未分配的分片,浪費的空間可以後來指定給新的分片.
4. 認識磁盤分片交錯
當一個或多個磁盤分片被分配給一個以上的磁盤分片時,磁盤分片交錯就會出現.
這種情況出現在當一個磁盤分片的大小增長了,而下一個磁盤分片的起始柱面號沒有校正的情況下.只有format工具的modify命令會警告你有磁盤分片交錯.
partition> modify
Select partitioning base:
0. Current partition table (unnamed)
1. All Free Hog
Choose base (enter number) [0]? 0
Warning: Overlapping partition (1) in table.
Warning: Fix, or select a different partition table.
警告:不要改變當前正在使用的磁盤分片的大小.當已有分息的磁盤被重新分區與重新標記卷標以後,磁盤上的數據會丟失且不可訪問.在分區前,把磁盤上已有的數據拷貝到備份介質上,然後在磁盤被重新標記卷標並安裝了新的文件系統後,把數據恢復到磁盤上來.
Note:如果兩個分區出現了交錯,當數據保存到其中一個分區時,數據被在相同磁盤柱面上的位於磁道上的另一個分區所覆蓋.
5. 磁盤分區表的介紹
作爲root用戶,使用format工具選擇一個磁盤去分區時,磁盤的分區表的一份拷貝被從磁盤的卷標中讀到內存中,並作爲當前磁盤分區表顯示.
format工具還使用一個工作文件稱作/etc/format.dat, format工具運行時會讀取該文件.
/etc/format.dat文件的內容是可用的磁盤類型與一個預定義分區的集合,使用這些預定義分區表,就可以很快的對磁盤進行分區.
1) 磁盤卷標的介紹
磁盤卷標是一個保留區域,它存儲了關於磁盤的控制器,幾何學和分片的信息.用於描述磁盤卷標的另一個術語是內容卷表(VTOC). 磁盤的卷標或VTOC被存儲在磁盤的第一個扇區中.
標記一個磁盤就是寫分片信息到磁盤上,如果你不能在定義分片後標記磁盤,分片信息就會丟失.
磁盤卷標的一個重要部分是分區表,它識別磁盤的分片,分片以柱面爲邊界,及分片的總的大小.
Note:術語磁盤分片與磁盤分區是可互換的.
6. 使用format命令
format工具中的命令被分爲兩個層次.
當你在命令行輸入format,第一層的命令出現,這個命令集可以選擇磁盤,選擇分區,保存新的磁盤和定義的分區,及寫入標籤到磁盤上.最高層的命令是format>提示符所表示.
當在format>提示符下輸入partition時,第二層的命令出現.這個命令集可以家底各分片的特徵,打印已有的分區表,寫分區位圖與卷標到硬盤.其提示符是partition>.
磁盤分區術語與使用描述
術語 |
描述 |
Part |
分片即分區號,有效值得0-7. |
Tag |
分片使用的指示值. 0 = unassigned 1 = boot 2 = boot 3 = swap 4 = usr 5 = backup 6 = stand 8 = home 卷標管理組標識: 14 = public 15 = private |
Flag |
00 wm = 磁盤分片可寫,可掛載. 01 wu = 磁盤分片可寫,但不可掛載.這是用於交換區域的分片爲默認狀態. 10 rm = 磁盤分片只讀,可掛載. 11 ru = 磁盤分片只讀,但不可掛載. |
Cylinders |
硬盤分片的起始柱面號與終止柱面號 |
Size |
分片大小:MB, GB, b(blocks), c(柱面). |
Blocks |
分片中柱面的總數與扇區的總數. |
7. 磁盤分區
警告:不要改變當前正在使用的磁盤分片的大小.
下面的步驟演示如何分區磁盤分片:
1) 以root身份,在命令行輸入format,回車.
#format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0 <ST38410A cyl 16706 alt 2 hd 16 sec 63>
/pci@1f,0/pci@1,1/ide@3/dad@0,0
1. c1t3d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
/pci@1f,0/pci@1/scsi@1/sd@3,0
Specify disk (enter its number):
format工具搜索所有安裝並加電的硬盤.對於找到的每個硬盤,format工具都會顯示其邏輯設備名,SUN的產品代號,物理參數,與物理設備名.
2) 選擇第二塊硬盤,只要輸入位於硬盤的邏輯設備名的左邊的數字序號即可.對於前面的顯示,選擇1.然後format工具會出現主菜單.
Specify disk (enter its number): 1
selecting c1t3d0
[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
scsi - independent SCSI mode selects
cache - enable, disable or query SCSI disk cache
volname - set 8-character volume name
!<cmd> - execute <cmd>, then return
quit
format>
用來查看,改變,提交硬盤分區的選項包括:
partition 顯示分區菜單
label 將當前的分區定義寫至硬盤卷標中
verify 讀並顯示硬盤卷標
quit 退出format工具
3) 在format提示符下輸入partition. 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
分區菜單可以使你執行下面的功能:
0-7 指定8個分片的偏移量及大小
select 從/etc/format.dat文件中選擇預定義的分區表
modify 更改當前內存中的分區表
name 提供了指定在/etc/format.dat文件中的分區表的方法
print 顯示內存中當前分區表
label 寫當前的分區表到硬盤卷標中
!<cmd> 不退出format執行shell中的cmd命令,如要執行ls, 輸入!ls即可.
4) 在partition提示符下輸入print顯示當format啓動時讀入RAM中的磁盤卷標.
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 ru 0 - 4923 8.43GB (4924/0/0) 17682084
3 unassigned wu 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 wu 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
分區表的名字在輸出的表的第一行的括號中顯示.
Part 磁盤分片號
Tag 預定義的,可選標籤
Flag 預定義的,可選標記
Cylinders 分片的起始與終止柱面號
Size 分片大小,單位可以是塊(b),柱面(c),兆字節(MB), G字節(GB)
Blocks 各分區柱面總數與扇區總數
5) 輸入0,選擇分片0.
partition> 0
Part Tag Flag Cylinders Size Blocks
0 unassigned wm 0 0 (0/0/0) 0
6) 當提示ID標籤時, 輸入問號(?), 按回車列出可用的選擇.可以輸入新的標籤名改變標籤.
Enter partition id tag[unassigned]: ?
Expecting one of the following: (abbreviations ok):
unassigned boot root swap
usr backup stand var
home alternates reserved
Enter partition id tag[unassigned]:
7) 輸入標籤alternates, 按回車鍵.
Enter partition id tag[unassigned]: alternates
8) 當提示輸入權限標記時,輸入問號(?),按回車查看可用選項.輸入新的標籤名可更改標籤.
Enter partition permission flags[wm]: ?
Expecting one of the following: (abbreviations ok):
wm - read-write, mountable
wu - read-write, unmountable
rm - read-only, mountable
ru - read-only, unmountable
Enter partition permission flags[wm]:
9) 按回車接受默認標籤.即上面的wm.
Enter partition permission flags[wm]: <return>
10) 按回車接受起始柱面號爲0.
Enter new starting cyl[0]: <return>
11) 輸入分片0的大小爲400mb.
Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 980mb
12) 輸入print, 按回車,顯示分區表.
partition> print
Current partition table (unnamed):
Total disk cylinders available: 1965 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 alternates wm 0 - 558 980.16MB (559/0/0) 200736
1 unassigned wm 0 0 (0/0/0) 0
2 backup ru 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 wu 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
當前的分區表顯示了對分片0的更改.
現在調整分片1的起始柱面.
13) 輸入1,選擇分片1.
partition> 1
Part Tag Flag Cylinders Size Blocks
1 unassigned wm 0 0 (0/0/0) 0
14) 輸入標籤swap,按回車.
Enter partition id tag[unassigned]: swap
15) 在權限標籤選項中輸入wu, 按回車.
Enter partition permission flags[wm]: wu
16) 輸入分片1新的起始柱面號.
Enter new starting cyl[0]: 559
17) 輸入分片1新的分區大小.
Enter partition size[0b, 0c, 603e, 0.00mb, 0.00gb]: 512mb
18) 輸入print, 按回車.
partition> print
Current partition table (unnamed):
Total disk cylinders available: 1965 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 alternates wm 0 - 558 980.16MB (559/0/0) 2007369
1 swap wu 559 - 851 513.75MB (293/0/0) 1052163
2 backup ru 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 wu 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
當前分區表顯示了對分片1的更改.
分片1的起始柱面號是分片0的結束柱面號加1.
現在調整分片7的起始柱面號.
19) 輸入7,選擇分片7.
partition> 7
Part Tag Flag Cylinders Size Blocks
7 unassigned wm 0 0 (0/0/0) 0
20) 輸入標籤home,按回車
Enter partition id tag[unassigned]: home
21) 按回車接受默認的標籤wm.
Enter partition permission flags[wm]: <return>
22) 輸入分片7的新的起始柱面號.
Enter new starting cyl[0]: 694
23) 輸入分片7的分片號,這裏輸入美元$符.
Enter partition size[0b, 0c, 694e, 0.00mb, 0.00gb]: $
Note:輸入一個美元($)符的值是最後分區的大小是在這磁盤分片上自動分配餘下空間.
24) 輸入print顯示當前的分區表
partition> print
Current partition table (unnamed):
Total disk cylinders available: 1965 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 alternates wm 0 - 558 980.16MB (559/0/0) 2007369
1 swap wu 559 - 851 513.75MB (293/0/0) 1052163
2 backup ru 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 wu 0 0 (0/0/0) 0
7 home wm 852 - 4923 6.97GB (4072/0/0) 14622552
將分片0,1,和7的blocks欄中的柱面數加起來.其結果應該等於分片2中所含的柱面總數.
25) 在檢查分區表確認無誤後,輸入label將卷標寫入硬盤.
partition> label
Ready to label disk, continue? y
partition>
六、管理磁盤卷標
Solaris OS中每個硬盤都有卷標,用來存儲關於磁盤控制器,幾何特徵及分片的信息.
1. 查個把磁盤VTOC
可以使用兩個方法查看磁盤的卷標或VTOC:
l 使用format工具的verify命令
l 在命令行上輸入prtvtoc命令
1) 使用verify命令讀取磁盤的VTOC
verify命令可以在format工具內查看磁盤的VTOC.讀取磁盤的VTOC,執行下面的步驟:
1. 在format提示符下,輸入verify命令,按回車
format> verify
Primary label contents:
Volume name = < >
ascii name = <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
pcyl = 4926
ncyl = 4924
acyl = 2
nhead = 27
nsect = 133
Part Tag Flag Cylinders Size Blocks
0 alternates wm 0 - 558 980.16MB (559/0/0) 2007369
1 swap wu 559 - 851 513.75MB (293/0/0) 1052163
2 backup ru 0 - 4923 8.43GB (4924/0/0) 17682084
3 unassigned wu 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 wu 0 0 (0/0/0) 0
7 home wm 852 - 4923 6.97GB (4072/0/0) 14622552
2. 輸入quit或q,按回車退出format菜單
2) 使用prtvtoc命令讀取磁盤的VTOC
prtvtoc命令可在命令行查看磁盤的VTOC.從命令行中查看磁盤的VTOC,輸入以下命令:
# prtvtoc /dev/dsk/c1t3d0s0
* /dev/dsk/c1t3d0s0 partition map
*
* Dimensions:
* 512 bytes/sector
* 133 sectors/track
* 27 tracks/cylinder
* 3591 sectors/cylinder
* 4926 cylinders
* 4924 accessible cylinders
*
* Flags:
* 1: unmountable
* 10: read-only
*
* First Sector Last
* Partition Tag Flags Sector Count Sector Mount Directory
0 9 00 0 2007369 2007368
1 3 01 2007369 1052163 3059531
2 5 11 0 17682084 17682083
7 8 00 3059532 14622552 17682083
磁盤標籤信息包括以下領域:
Dimensions 描述磁盤的邏輯空間
Flags 描述列在分區表中的標誌信息
Partition 分區號.
Tag 標識分區如何使用.
Flags 00標籤是讀/寫,掛接; 01是讀/寫,不掛接; 10是隻讀.
First Sector 定義分片的起始扇區.
Sector Count 定義分片中的扇區計數
Last Sector 定義分片中的最後一個扇區.
Mount Directory 如果這域是空,分片當前未掛接,且在/etc/vfstab文件中沒有關於該分片的條目.
2. 重標記磁盤
使用prtvtoc命令將磁盤的VTOC存儲到文件中.以後就可以使用fmthard命令來重標記硬盤,如果出現下列情況:
l 磁盤上的VTOC已經被損壞.
l 無意中在磁盤上修改了分區信息,卻沒有在/etc/format.dat文件保存備份的卷標.
保存磁盤的VTOC到文件上,執行命令:
# prtvtoc /dev/dsk/c1t3d0s0 > /var/tmp/c1t3d0.vtoc
1) fmthard命令
重標記磁盤,可將prtvtoc命令的輸出重定向到另一個磁盤上的文件中,並使用該文件作爲fmthard命令的參數.
fmthard -s datafile /dev/rdsk/c#t#d#s2
警告: fmthard命令不能寫磁盤卷標到未標記的磁盤上.使用format工具標記磁盤.
如果需要重標記磁盤,而且有以前保存的磁盤的VTOC文件記錄,可以使用下面的選項:
l 運行fomrat,選擇磁盤,並使用默認的分區表標記它.
l 使用fmthard命令寫入想要的卷標信息,及以前存放在datafile中的VTOC備份.
# fmthard -s /var/tmp/c1t3d0.vtoc /dev/rdsk/c1t3d0s2
l 使用fmthard命令初始化磁盤的VTOC
# fmthard -s /dev/null /dev/rdsk/c1t3d0s2