- 论坛徽章:
- 0
|
在 format 提示符下键入 partition,然后在分区菜单中键入 print。这将显示下表:
Current partition table (original):
Total disk cylinders available: 24620 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 90 128.37MB (91/0/0) 262899
1 swap wu 91 - 181 128.37MB (91/0/0) 262899
2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180
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 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382
7 unassigned wm 0 0 (0/0/0) 0
partition>
其中的一些信息与使用 prtvtoc 命令显示的信息相同。但是,格式略有不同,我们看到其中显示了未使用的分区。您可能已注意到,我是在通知 format 我所使用的磁盘。这样做是为了避免导致所试验的系统上的某个其他磁盘意外地出现问题。另一种查看磁盘标签的方法是,使用 dd 命令转储标签:
r_gps@holstein: dd if=/dev/dsk/c2t1d0s2 of=wart.bin bs=512 count=1
1+0 records in
1+0 records out
这会生成一个二进制文件,可以使用 od 命令来显示该文件内容。
r_gps@holstein: od -x wart.bin
0000000 5355 4e33 3647 2063 796c 2032 3436 3230
0000020 2061 6c74 2032 2068 6420 3237 2073 6563
0000040 2031 3037 0000 0000 0000 0000 0000 0000
0000060 0000 0000 0000 0000 0000 0000 0000 0000
*
0000200 0000 0001 0000 0000 0000 0000 0008 0002
0000220 0000 0003 0001 0005 0001 0000 0000 0000
0000240 0000 0000 0000 0004 0000 0000 0000 0000
0000260 0000 0000 0000 0000 0000 0000 600d deee
0000300 0000 0000 0000 0000 0000 0000 0000 0000
*
0000640 0000 0000 2729 602e 0000 0000 0000 0001
0000660 602c 0002 001b 006b 0000 0000 0000 0000
0000700 0004 02f3 0000 005b 0004 02f3 0000 0000
0000720 043d 508c 0000 0000 0000 0000 0000 0000
0000740 0000 0000 0000 0000 0000 0000 0000 00b6
0000760 0435 4aa6 0000 0000 0000 0000 dabe 4297
0001000
八进制转储中包含很多信息,有一篇非常棒的 Sun 文档对其进行了介绍,因此我不想再进行赘述。请在 SunSolve 中搜索文档 ID 74087。需要注意的一点是:od 始终跳过重复的行(带有 * 的行);VTOC_SANE 在偏移 0xbc 位置始终是 0x600ddeee;DKL_MAGIC 在紧靠校验和前面的偏移 0x1fc 位置始终是 0xdabe。现在,我们已经标记了磁盘,接下来可通过 format 命令对其执行哪些操作呢?请先看一看下面列出的菜单。我将先介绍非破坏性格式化菜单选项,但 volname 选项除外。下面以粗体文本显示了这些选项。
r_gps@holstein: format /dev/rdsk/c2t1d0s2
selecting /dev/rdsk/c2t1d0s2
[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
format>
我总是喜欢为每个磁盘指定卷名称,因为这可使系统变得更加人性化。如果多个系统查看相同的磁盘驱动器(在高可用性的群集中,可能会出现这种情况),这也是非常有帮助的。我见过一对 RAID 引擎提供了 120 多个磁盘,VERITAS 群集中的 15个系统都能看到它们。通过为每个磁盘指定卷名称,可以帮助识别已使用的磁盘。没有卷名称的磁盘是未使用的磁盘。在使用 volname 菜单选项时,有一个注意事项,如以下示例中所示:
format> volname
Enter 8-character volume name (remember quotes)[\"\"]:\"pigsnot\"
Ready to label disk, continue? y
format>
volname 选项会将信息写出到磁盘标签中。我曾经在挂载了文件系统并包含有效数据的磁盘上执行过此操作。第一次执行此操作时,纯属偶然。好在天没有塌下来,地球也照转不误。因此,我在磁盘驱动器上进行了一些测试,分别在挂载了文件系统和未挂载文件系统的磁盘上更改了卷名称。虽然更改了标签,但并没有丢失任何数据。当然,标准免责声明同样适用:“您的情况可能会有所不同 -- 继续操作所产生的后果由您自己承担-- 对于因输入错误等产生的结果概不负责。”
disk 选项允许在 format 实用程序中更改磁盘;但由于我已经选择了要使用的磁盘,因此它仅显示该磁盘。
format> disk
AVAILABLE DISK SELECTIONS:
0. /dev/rdsk/c2t1d0s2 <SUN36G cyl 24620 alt 2 hd 27 sec 107> pigsnot
/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0
Specify disk (enter its number)[0]:
current 选项显示在启动 format 命令后选择的当前磁盘。本文一直使用第 2 个磁盘,因此 current 选项将显示以下信息:
Current Disk = c2t1d0: pigsnot
<SUN36G cyl 24620 alt 2 hd 27 sec 107>
/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0
current 选项在最后一行中显示该磁盘的物理位置。您需要将 /devices 放在物理位置前面,并使用一个字母来表示分区号。
r_gps@holstein: ls /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0*
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:a
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:a,raw
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:b
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:b,raw
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:c
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:c,raw
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:d
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:d,raw
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:e
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:e,raw
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:f
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:f,raw
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:g
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:g,raw
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:h
/devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:h,raw
带有 \"raw\" 字样的物理设备名称指的是字符设备,其他名称指的是块设备。字母 \'a\' 指的是分区 0;字母 \'b\' 指的是分区 1,依此类推。
defect 选项可打开 Defect Menu(缺陷菜单),该菜单用于查看磁盘出厂时的缺陷数目。请使用 primary 选项来查看此信息。我的台式计算机具有三个磁盘,它们的主要缺陷数从 72 到 2922 不等。不过,我们更感兴趣的是 grown 选项。磁盘上的 \"grown\" 缺陷会随着时间的推移而增加,我们所关心的是其增加速率。显然,如果缺陷以较高的速率增加,则磁盘很快就会出现故障。
print 选项显示缺陷及其在磁盘上的位置的列表。您还可以将磁盘缺陷列表转储(保存)到文件中。我曾经在一个怀疑有缺陷的磁盘上执行了此操作,只花了很少一点时间。
verify 选项显示的很多信息与前面 prtvtoc 命令显示的信息相同,并且使用 format 命令显示分区时也会显示这些信息。
format> verify
Primary label contents:
Volume name = < pigsnot>
ASCII name = <SUN36G cyl 24620 alt 2 hd 27 sec 107>
pcyl = 24622
ncyl = 24620
acyl = 2
nhead = 27
nsect = 107
Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 90 128.37MB (91/0/0) 262899
1 swap wu 91 - 181 128.37MB (91/0/0) 262899
2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180
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 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382
7 unassigned wm 0 0 (0/0/0) 0
save 选项将信息写出到一个 format.dat 文件(或指定的任意名称)中。format 命令可以使用此 dat 文件中的信息来配置驱动器。(有关该文件的详细信息,请参见 man -s4 format.dat。)如果使用 cat 在一个窗口中显示新创建的 format.dat 文件,然后在另一个窗口中执行 verify 命令,则会显示很多相同的信息,但格式有所不同或可读性更好(对于某些信息)。使用 save 选项创建的 format.dat 文件中还包含其他一些信息,即磁盘的 rpm。
#
# New disk/partition type saved on Fri Aug 6 06:34:05 2004
#
disk_type = \"SUN36G\" \\
: ctlr = SCSI : ncyl = 24620 : acyl = 2 : pcyl = 24622 \\
: nhead = 27 : nsect = 107 : rpm = 10025
...
最后,用于收集磁盘相关信息的选项列表中还包括 inquiry 选项。它显示一些非常基本的信息,如下所示。
format> inq
Vendor: FUJITSU
Product: MAN3367M SUN36G
Revision: 1502
format>
需要注意的一点是修订级别。对于磁盘驱动器,确实发布了一些固件更新。通过使用该选项,您可以将磁盘的修订级别与磁盘供应商提供的修订级别进行比较。我曾经让供应商更新其大型 RAID 阵列中的磁盘上的驱动器固件,但他们是在不停机的情况下进行更新的。很久以前,我曾经将 SCSI磁盘上的固件更新过一两次。现在,我不再自找麻烦了;主要是因为目前环境中的磁盘数量太大,并且所需的停机时间也太长。(还是老话说得好,“东西还没坏,就别急着修”,有时看来确实不无道理。)我一直没有想出如何在不停机的情况下进行升级。现在仍然没有。 |
|