如何在 Solaris 系统中创建、更改或者查看引导设备别名

这是一个从引导系统查看 OpenBoot PROM (OBP) 别名的过程,而无需将系统关闭到“ok”提示符。
这些别名既是“内置”别名,也是可能手动创建的任何其他别名。
它们与使用“devalias”命令在 OBP 级别(在“ok”提示符下)看到的别名相同。

创建这些别名是为了在 OBP 级别简化对硬件设备的访问。
在“ok”提示下,它们可以用来代替完整的 OBP 硬件路径。
在舞会级别通过“devalias”命令查看时,它们以别名的形式列出,后跟设备的完整硬件路径。
也可以使用以下 Solaris 命令从操作系统查看这些 OBP 别名:

# /usr/sbin/prtconf -pv

冗长的输出将被分成“节点”,并且带有别名信息的部分以以下行结束(这是要定位的输出部分): name: 'aliases'

--snip-
Node 0xf0816050
xdisk: '/ssm@0,0/pci@19,700000/pci@2/SUNW,isptwo@5/sd@0,0'
xnet: '/ssm@0,0/pci@19,700000/pci@1/SUNW,qfe@3,1'
diskc: '/ssm@0,0/pci@1c,700000/pci@1/SUNW,isptwo@4/sd@0,0'
netc: '/ssm@0,0/pci@1c,700000/pci@1/SUNW,hme'
cdrom: '/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo@4/sd@6,0:f'
disk: '/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo@4/sd@0,0'
disk0: '/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo@4/sd@0,0'
disk1: '/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo@4/sd@1,0'
disk2: '/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo@4/sd@2,0'
disk3: '/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo@4/sd@3,0'
disk4: '/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo@4/sd@4,0'
disk5: '/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo@4/sd@5,0'
def-cn: '/sgcn'
diskifp: '/ssm@0,0/pci@19,700000/SUNW,ifp@1/ssd@0,0'
diskglm: '/ssm@0,0/pci@18,700000/scsi@2/disk@0,0'
scsi: '/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo'
net: '/ssm@0,0/pci@18,700000/pci@1/SUNW,hme'
name: 'aliases'
--snip-
www. On IT Road .com

示例 1:将引导设备更改为目标 2

我们可以使用以下命令(或者其他适当的磁盘描述符)查看当前配置了哪些设备并将该路径用于 devalias 路径名:

# prtconf -vp | grep sbus --> sbus based systems
# prtconf -vp | grep pci --> PCI based systems

prtconf 命令的输出将因机器架构而异。

# prtconf -vp | grep sbus
bootpath: '/sbus@1f,0/SUNW,fas@e,8800000/sd@0,0:a'
sbus-probe-list: '0123'
net: '/sbus/SUNW,hme@e,8c00000'
disk: '/sbus/SUNW,fas@e,8800000/sd@0,0'
cdrom: '/sbus/SUNW,fas@e,8800000/sd@6,0:f'
tape: '/sbus/SUNW,fas@e,8800000/st@4,0'
tape1: '/sbus/SUNW,fas@e,8800000/st@5,0'
tape0: '/sbus/SUNW,fas@e,8800000/st@4,0'
disk6: '/sbus/SUNW,fas@e,8800000/sd@6,0'
disk5: '/sbus/SUNW,fas@e,8800000/sd@5,0'
disk4: '/sbus/SUNW,fas@e,8800000/sd@4,0'
disk3: '/sbus/SUNW,fas@e,8800000/sd@3,0'
disk2: '/sbus/SUNW,fas@e,8800000/sd@2,0'
disk1: '/sbus/SUNW,fas@e,8800000/sd@1,0'
disk0: '/sbus/SUNW,fas@e,8800000/sd@0,0'
scsi: '/sbus/SUNW,fas@e,8800000'
floppy: '/sbus/SUNW,fdtwo'
ttyb: '/sbus/zs@f,1100000:b'
ttya: '/sbus/zs@f,1100000:a'
keyboard!: '/sbus/zs@f,1000000:forcemode'
keyboard: '/sbus/zs@f,1000000'
device_type: 'sbus'
name: 'sbus'

查找目标 2 的磁盘别名。
sd@2,0 表示目标 2 处的 SCSI 磁盘。
因此我们知道“disk2”是合适的别名。
以下命令将设置引导设备

# eeprom boot-device=disk2

更改或者创建引导设备别名

我们可以在服务器运行时使用 eeprom 命令更改或者创建引导设备别名。
我们不必停止服务器来更改引导设备。
我们可以更改引导设备,甚至可以在系统启动并运行时使用 eeprom 命令创建新别名。
只有 root 用户才能执行 eeprom 命令。

从多用户模式更改引导设备可以像以下命令一样简单:

# /usr/sbin/eeprom boot-device=disk2

在上面的例子中,disk2 已经被定义为别名。
我们还可以定义自己的别名以与 boot-device 变量一起使用。

以下说明解释了如何创建别名,然后将其分配为 boot-device 变量。
我们需要知道要使用的设备别名的路径名。
路径名的一个示例是:/sbus/SUNW,fas@e,8800000/sd@2,0。
路径名往往又长又复杂,这就是为什么我们喜欢为它们分配别名,如“disk2”。

示例 2:将引导设备更改为目标 14

让我们从上述“prtconf -vp | grep sbus”命令的结果中查看将引导设备更改为目标 14 的示例。
请注意,目标 14 没有预定义的别名。
以下是添加名为“boot-me”的设备别名的命令:

# eeprom use-nvramrc\?=true
# eeprom nvramrc='devalias boot-me /sbus@1f,0/SUNW,fas@e,8800000/sd@e,0'

注意:e 是十进制 14 的十六进制。

# eeprom boot-device=boot-me

运行“prtconf -vp | grep sbus”现在会显示新的“nvramrc”变量设置,而不是我们刚刚创建的单个设备别名。
系统重启后,以下命令将显示“boot-me”别名:

/usr/sbin/prtconf -vp|grep sbus
ok> boot boot-me

要让系统使用这个新创建的别名永久启动:

ok> setenv auto-boot? true
ok> reset

我们需要在“ok”提示符下执行“reset”命令,以便使用此新别名更新“devalias”命令,以便从“boot-device”别名(例如,boot-me)引导。

日期:2020-09-17 00:15:15 来源:oir作者:oir