Solaris 格式化命令失败,并显示“警告:设置驱动器几何结构时出错”。警告:写入 VTOC 时出错。标记失败。
Summary: 无法在 PowerPath 控制下格式化新分配的设备。当伪设备名称作为 format 命令的参数提供时,找不到设备 ...当按其本机名称选择设备时,format 命令将失败,并显示 Warning: error setting drive geometry。警告:写入 VTOC 时出错。标记失败。
Symptoms
或将设备添加到配置中之后发生死机,使引导归档不一致。
环境:Solaris 10 或 Solaris 11
EMC 软件:PowerPath for Solaris(任何发行版)
#format emcpower0a
No disks found!
# format
...
指定磁盘(输入其编号):165
selecting c1t500009792318B960d42
[disk formatted]
format> p
partition> label
Ready to label disk, continue? y
警告:设置驱动器几何结构时出错。
警告:写入 VTOC 时出错。
标记失败。
分区>
Cause
中的条目 /dev/dsk 和 /dev/rdsk 中的所有条目都正确无误......但无处可指:
294998 2 lrwxrwxrwx 1 root root 34 Jun 26 12:55 emcpower0 -> ./../devices/pseudo/emcp@0:wd,blk
294997 2 lrwxrwxrwx 1 root root 33 Jun 26 12:55 emcpower0a -> ./../devices/pseudo/emcp@0:a,blk
291378 2 lrwxrwxrwx 1 root root 33 Jun 26 12:55 emcpower0b -> ./../devices/pseudo/emcp@0:b,blk
289256 2 lrwxrwxrwx 1 root root 33 Jun 26 12:55 emcpower0c -> ./../devices/pseudo/emcp@0:c,blk
295005 2 lrwxrwxrwx 1 root root 33 Jun 26 12:55 emcpower0d -> ./../devices/pseudo/emcp@0:d,blk
289257 2 lrwxrwxrwx 1 root root 33 Jun 26 12:55 emcpower0e -> ./../devices/pseudo/emcp@0:e,blk
289258 2 lrwxrwxrwx 1 root root 33 Jun 26 12:55 emcpower0f -> ./../devices/pseudo/emcp@0:f,blk
289259 2 lrwxrwxrwx 1 root root 33 Jun 26 12:55 emcpower0g -> ./../devices/pseudo/emcp@0:g,blk
/devices/pseudo 中没有emcp@0条目。
Resolution
需要重新创建 /devices/pseudo 中的条目。首先,检查问题是否不是由 HPOvPerfAgt 软件包引起的。否则,请使用以下 4 种方法之一。如果第 1 种方法失败,则第二种方法应成功。在最坏的情况下,最后一个应该会成功。
1) 尝试使用“devfsadm -i emcp”命令
在 /devices/pseudo 中重新创建 emcp 条目 # devfsadm -i emcp
# ls /devices/伪/emcp@0 (检查条目现在是否存在 — 注意emcp@0适用于 emcpower0;对于 emcpowerXX,查找 emcp@XX)
# bootadm update-archive (以整合启动信息中的配置更改)
2) 上一个命令可能无法成功在 /devices 中创建新条目。以下命令基于这样一个事实:成功运行“emcpadm renamepseudo”命令时,将重建 /devices 中的所有条目。这是此命令的副作用,对于在此处修复问题非常有用。
拿起没有任何问题(以格式显示并且其条目位于 /devices 下)的未使用的伪设备(当前未装载,是文件系统的一部分)。假设这个良好的伪设备是 emcpower7。我们假设配置中没有 emcpower1007,因此 emcpower1007 是一个可能的新名称。Run :
# emcpadm renamepseudo -s 7 -t 1007
# emcpadm renamepseudo -s 1007 -t 7
# powermt save
# bootadm update-archive
使用“良好”的伪设备很重要。而不是 /devices 中没有条目的伪设备,否则命令将失败(请参见下面的第 4 段)并且不会修复 /devices 条目。
使用上述命令,在第一个命令之后,问题应该已经修复。第二次重命名只是为了恢复原来的伪名。最后 2 个命令用于整合更改。
3) 尝试取消管理/管理有问题的设备(这可能会失败)
# powermt unmanage dev=emcpower0a
ERROR:取消管理失败
4) 尝试重命名有问题的伪设备(这可能会失败)
# emcpadm renamepseudo -s 0 -t 1000
<ERROR: can not rename device. emcpower0 does not>
exist 5) completely reconfigure the problematic device# powermt remove dev=0
# powermt save
>> unmask the device from the Storage Group
# devfsadm -C (to remove the entries in /dev/dsk and /dev/rdsk for the native path)
# rm /dev/dsk/emcpower0*
# rm /dev/rdsk/emcpower0*
>> 将设备掩蔽回存储组
# devfsadm (重新创建本机路径的条目)
# powermt config (重新配置 Powerpath)
# powermt display dev=all (检查伪设备是否已重新配置)
# powermt save
# ls /devices/pseudo/emcp@0 (检查条目现在是否存在 — 请注意,emcp@0适用于 emcpower0;对于 emcpowerXX,请查找 emcp@XX)
# bootadm update-archive(整合引导信息中的配置更改)