Solaris10中級讀書筆記之二:管理本地磁盤設備

一、基本的磁盤結構的介紹

磁盤設備有物理和邏輯成分.物理成分包括磁盤淺盤和讀寫磁頭.邏輯成分包括磁盤片,柱面,磁軌和扇區.

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,t2t3,符合唯一硬件地址,它分配給每一個磁盤,磁帶,CD-ROM.一些外部磁盤驅動器有一個地址開關定位於後面板.一些內部磁盤有地址插腳,它的跳號作爲磁盤的目標號.

Disk number:磁盤號也作爲合理的單元數LUN(logical unit number).這個數字在目標位置上反應了磁盤的數字.

Slice number:磁片號的範圍從07.

嵌入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, tapeaudio設備類型,執行命令:

# 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,7blocks欄中的柱面數加起來.其結果應該等於分片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. 輸入quitq,按回車退出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

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