引导和关闭 Oracle® Solaris 11.2 系统

退出打印视图

更新时间: 2014 年 7 月
 
 

使用 EEPROM 参数

使用 eeprom 命令可以显示和修改 EEPROM 中的参数值。不需要任何特殊特权即可显示 EEPROM 参数。但是,要修改这些参数,您必须承担 root 角色。

    请注意下面关于如何在 x86 平台上设置和存储 EEPROM 属性的其他信息。

  • 在 x86 平台上,通过以下各项模拟 EEPROM 属性的设置:

    • /boot/solaris/bootenv.rc 文件中存储 Oracle Solaris 特定属性。

    • 操作 GRUB 菜单来模拟设置某些 EEPROM 属性的效果。

    • 针对特定于 UEFI 环境的变量实现 NVRAM 存储。

  • 设置 boot-argsboot-file 属性将导致创建特殊 GRUB 菜单项并对其进行处理,因为这是模拟 x86 平台上的影响的唯一方法。特殊 GRUB 菜单项的标题为 Solaris bootenv rc。该特殊项在其创建时标记为缺省项。

  • 通过在内核命令行上将属性名称设置为其他值,可以覆盖使用 eeprom 命令设置的属性,例如,在引导时编辑 GRUB 菜单。一个示例为,通过使用 eeprom 命令,然后在引导时将 B console=text 添加到内核命令行来将控制台属性设置为 graphics。在这种情况下,控制台类型将设置为 text,即使 bootenv.rc 文件指定了值 graphics

有关更多详细信息,请参见 eeprom(1M) 手册页。

UEFI 系统上的 EEPROM 参数

对于启用 UEFI 的系统,参数存储在两个位置。Oracle Solaris 特定的变量存储在 bootenv.rc 文件中。UEFI 特定的变量在 NVRAM 存储中进行设置。与带有 OBP 的 SPARC 不同,Oracle Solaris 变量不由 UEFI 固件使用。要使 UEFI 特定的变量可用,请将 –u 选项与 eeprom 命令配合使用。

大多数 UEFI 变量都采用二进制格式,可以转换为可读取格式。不能进行转换时,将输出十六进制格式。

查看 EEPROM 参数

EEPROM 参数因平台而异。例如,boot-device 是 SPARC 平台上的参数,而非 x86 平台上的参数。要查看您的系统类型可用的 EEPROM 参数,请使用不带参数的 eeprom 命令。

示例 4-3  查看所有 EEPROM 参数

下面的示例显示了基于 x86 的系统上 eeprom 命令的输出:

$ eeprom
keyboard-layout=Unknown
ata-dma-enabled=1
atapi-cd-dma-enabled=1
ttyb-rts-dtr-off=false
ttyb-ignore-cd=true
ttya-rts-dtr-off=false
ttya-ignore-cd=true
ttyb-mode=9600,8,n,1,-
ttya-mode=9600,8,n,1,-
lba-access-ok=1
console=ttya
示例 4-4  查看特定 EEPROM 参数

要显示特定 EEPROM 参数的值,请按如下所示将参数名称添加到 eeprom 命令:

$ /usr/sbin/eeprom console
console=ttya
示例 4-5  查看所有 UEFI EEPROM 参数

以下示例显示了如何在 UEFI 模式下显示系统上的所有 UEFI 参数。您必须承担 root 角色才能使用此命令。

# eeprom -u
MonotonicCounter=0x1f2
OsaBootOptNum=0xffff
ConOut=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
	/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
ConIn=/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
	/PciRoot(0x0)/Pci(0x1d,0x0)/USB(0x1,0x0)/USB(0x8,0x0)
BootOrder=Boot0000 Boot0001 Boot0002 Boot0003 Boot0004 Boot0005 Boot0006 
Lang=eng
PlatformLang=en-US
Timeout=0x1
Boot0001=description:string=[UEFI]USB:USBIN:USB USB Hard Drive , flags:int=1, device_path: \
	string=/PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0x0)/USB(0x2,0x0)/HD(1,MBR,0x004D5353,0x800,0x3b5800), \
	optional_data:string=AMBO
Boot0002=description:string=[UEFI]PXE:NET0:Intel(R) Ethernet Controller 10 Gigabit X540-AT2, \
	flags:int=1, device_path:string=/PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)/MAC(002128e77478), \
	optional_data:string=AMBO
Boot0003=description:string=[UEFI]PXE:NET1:Intel(R) Ethernet Controller 10 Gigabit X540-AT2, \
	flags:int=1, device_path:string=/PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x1)/MAC(002128e77479), \
	optional_data:string=AMBO
Boot0004=description:string=[UEFI]PXE:NET2:Intel(R) Ethernet Controller 10 Gigabit X540-AT2, \
	flags:int=1, device_path:string=/PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)/MAC(002128e7747a), \
	optional_data:string=AMBO
Boot0005=description:string=[UEFI]PXE:NET3:Intel(R) Ethernet Controller 10 Gigabit X540-AT2, \
	flags:int=1, device_path:string=/PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x1)/MAC(002128e7747b), \
	optional_data:string=AMBO
Boot0006=description:string=[UEFI]SAS:PCIE3:ATA     HITACHI HDS7225SA81A, flags:int=1, \
	device_path:string=/PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0) \
	/MessagingPath(10,2c00b .... 12010100) \
	/HD(1,GPT,BCB01265-4665-F1CA-8BF5-9C4FB95962FA,0x100,0x80000), optional_data:string=AMBO
Boot0000=description:string=Oracle Solaris s12_13, flags:int=1, device_path: \
	string=HD(1,GPT,C7398875-60D2-A9E0-83EE-94DAA21B0383,0x100,0x80000), 
	file_path:string=/EFI/Oracle/grubx64.efi
USB_POINT=5139417f00000000
ConOutDev=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
	/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
ConInDev=/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
	/PciRoot(0x0)/Pci(0x1d,0x0)/USB(0x1,0x0)/USB(0x8,0x0)
BootOptionSupport=0x1
ErrOutDev=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
	/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
ErrOut=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
	/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
PlatformLangCodes=en-US
S3PerfAdd=hexdump:989fd6aa00000000
LangCodes=eng
BootCurrent=Boot0000
示例 4-6  查看特定 UEFI 参数
# eeprom -u Boot0000
Boot0000=description:string=Oracle Solaris s12_13, flags:int=1, device_path: \
	string=HD(1,GPT,C7398875-60D2-A9E0-83EE-94DAA21B0383,0x100,0x80000), \
	file_path:string=/EFI/Oracle/grubx64.efi

SPARC: 如何设置引导属性

以下过程介绍了如何在基于 SPARC 的系统上设置缺省引导设备。在 x86 平台上,通过适用于您的固件类型的设置实用程序(如 UEFI Boot Manager)设置引导设备。


注 - 在 x86 平台上,通过适用于您的固件类型的设置实用程序(如 UEFI Boot Manager)设置引导设备。
  1. 承担 root 角色。

    请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  2. 指定引导属性。
    # eeprom attribute=value
  3. 确认已设置属性。
    # eeprom attribute

    输出应该显示已更改属性的新 eeprom 值。

示例 4-7  设置 auto_boot 参数

要将 auto_boot 参数设置为 false,请使用 root 角色键入以下命令:

# eeprom auto-boot?=false
示例 4-8  设置内核引导参数

通过指定 boot-args 参数的值可以设置内核引导参数。例如,键入以下命令以指定系统引导内核调试器:

# eeprom boot-args=-k 
示例 4-9  设置控制台设备的参数

要将 Oracle Solaris 控制台设置切换为图形模式,请使用以下命令:

# eeprom console=graphics
示例 4-10  在启用 UEFI 的系统上设置参数

此示例显示如何在启用 UEFI 的系统上更改引导顺序:

# eeprom -u BootOrder="Boot0005 Boot0001 Boot0002 Boot0003 Boot0004 Boot0000"

如何删除 UEFI EEPROM 参数

  1. 承担 root 角色。

    请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  2. 删除 UEFI EEPROM 参数。

    在此示例中,将删除名为 attribute 的定制参数。

    # eeprom -u -d attribute
  3. 验证是否已删除该 attribute。
    # eeprom -u attribute
    eeprom: read: attribute doesn't exist