本章介绍在基于 SPARC 和基于 x86 的系统上引导 Oracle Solaris 发行版的过程。
以下列出本章所介绍的信息:
有关引导过程的概述信息,请参见第 9 章。
从 Solaris 10 1/06 发行版开始,基于 x86 的系统上已实现了开源 GRand Unified Bootloader (GRUB)。GRUB 负责将引导归档文件装入系统的内存中,该文件包含内核模块和配置文件。
要在未实现基于 GRUB 引导的 Solaris 发行版中引导基于 x86 的系统,有关信息请参见第 16 章。
任务 |
说明 |
参考 |
---|---|---|
将基于 SPARC 的系统引导至运行级别 3。 |
在关闭系统或执行系统硬件维护任务后使用此引导方法。 | |
将基于 SPARC 的系统引导至运行级别 S。 |
在执行系统维护任务(例如,备份文件系统)后,使用此引导方法来引导系统。在此级别,只挂载本地文件系统,且用户无法登录系统。 | |
以交互方式引导基于 SPARC 的系统。 |
为测试目的而对系统文件或内核进行临时更改后使用此引导方法。 | |
引导除缺省内核以外的 Solaris 内核。 |
使用此过程可引导除缺省内核以外的 Solaris 内核。 或者,您还可以获取备用引导文件的副本,将缺省内核更改为新内核,然后将 boot-file 参数设置为引导新的缺省引导设备。 | |
显示基于 SPARC 的系统上的可用 ZFS 可引导数据集的列表。 |
使用 boot -L 命令可显示系统上的 ZFS 池中可用的 BE 列表。 注 – 只有包含 ZFS 池的引导设备支持此选项。 | |
从 ZFS 根文件系统引导基于 SPARC 的系统。 |
使用 boot -Z 选项可引导指定的 ZFS 数据集。 注 – 只有包含 ZFS 池的引导设备支持此选项。 | |
在基于 SPARC 的系统上引导故障安全归档文件。 |
使用此过程在故障安全模式下引导基于 SPARC 的系统。然后,运行 bootadm 命令更新引导归档文件。 | |
从网络引导基于 SPARC 的系统。 |
使用此引导方法可从网络引导系统。请注意,此方法还可用于引导无盘客户机。 |
如果系统已关闭,则将其打开即可启动多用户引导序列。以下过程说明如何从 ok PROM 提示符处引导至不同的运行级别。除非另行说明,否则这些过程假设系统已正常关闭。
使用 who -r 命令验证系统是否已进入指定的运行级别。有关运行级别的说明,请参见第 18 章。
使用此过程将当前处于运行级别 0 的系统引导至运行级别 3。
ok boot |
自动引导过程会显示一系列的启动消息,并使系统进入运行级别 3。有关更多信息,请参见 boot(1M) 手册页。
确认系统已引导至运行级别 3。
引导过程成功完成后,将显示登录提示。
hostname console login: |
以下示例显示了将系统引导至运行级别 3 时出现的消息。
ok boot Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz) OpenBoot 3.15, 128 MB memory installed, Serial #number. Ethernet address number, Host ID: number. Rebooting with command: boot Boot device: /pci@1f,0/pci@1,1/ide@3/disk@0,0:a File and args: kernel/sparcv9/unix SunOS Release 5.10 Version s10_60 64-bit Copyright 1983-2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. configuring IPv4 interfaces: hme0. add net default: gateway 172.20.27.248 Hostname: starlite The system is coming up. Please wait. NIS domain name is example.com starting rpc services: rpcbind keyserv ypbind done. Setting netmask of hme0 to 255.255.255.0 Setting default IPv4 interface for multicast: add net 224.0/4: gateway starlite syslog service starting.The system is ready. Starting Sun(TM) Web Console Version 2.1-dev.. volume management starting. The system is ready. starlite console login: |
在前面的示例中,sparcv9 仅为一个示例。此字符串与 isainfo -k 命令的输出匹配。
使用此过程可将当前位于运行级别 0 的系统引导至运行级别 S。此运行级别用于执行系统维护任务,例如,备份文件系统。
ok boot -s |
显示以下消息时键入超级用户口令:
SINGLE USER MODE Root password for system maintenance (control-d to bypass): xxxxxx |
确认系统处于运行级别 S。
# who -r |
执行将运行级别更改为 S 所需的维护任务。
完成系统维护任务之后,请按 Ctrl-D 组合键,使系统进入多用户状态。
以下示例显示了将系统引导至运行级别 S 时出现的消息。
ok boot -s . . . Sun Microsystems Inc. SunOS 5.10 Version Generic_120012-14 32-bit Copyright 1983-2003 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. configuring IPv4 interfaces: hme0. Hostname: starlite SINGLE USER MODE Root password for system maintenance (control-d to bypass): xxxxxx single-user privilege assigned to /dev/console. Entering System Maintenance Mode Oct 14 15:01:28 su: 'su root' succeeded for root on /dev/console Sun Microsystems Inc. SunOS 5.10 # who -r . run-level S Sep 19 08:49 S 0 ? (Perform some maintenance task) # ^D |
需要指定替代内核或 /etc/system 文件时,请使用此引导选项。
要在使用 boot -a 命令以交互方式引导基于 SPARC 的系统时指定备用的 /etc/system 文件,必须在引导系统之前执行以下步骤。
1. 创建 /etc/system 和 boot/solaris/filelist.ramdisk 文件的备份副本。
# cp /etc/system /etc/system.bak # cp /boot/solaris/filelist.ramdisk /boot/solaris/filelist.ramdisk.orig |
2. 将 etc/system.bak 文件名添加到 /boot/solaris/filelist.ramdisk 文件中。
# echo "etc/system.bak" >> /boot/solaris/filelist.ramdisk |
3. 更新引导归档文件。
# bootadm update-archive -v |
ok boot -a |
应答以下系统提示:
系统提示时,请输入要用于引导的内核名称。
按 Enter 键使用缺省的内核文件名。否则,请提供替代内核的名称,然后按 Enter 键。
出现提示时,请提供 modules 目录的替代路径。
按 Enter 键使用缺省的模块目录。否则,请提供模块目录的替代路径,然后按 Enter 键。
系统提示时,请提供替代系统文件的名称。
如果 /etc/system 文件已损坏,请键入 /dev/null。
出现提示时,输入 root 文件系统类型。
按 Enter 键,选择 UFS 进行本地磁盘引导(缺省值),或者输入 NFS 采用网络引导。
系统提示时,请输入 root 设备的物理名称。
提供替代的设备名称或按回车键以使用缺省值。
如果系统未提示回答这些问题,请验证是否正确键入了 boot -a 命令。
在以下示例中,接受了缺省选择(显示在方括号 [] 中)。有关使用 boot -a 命令引导备用文件系统的说明和示例,请参见SPARC: 如何交互式地引导系统。
ok boot -a . . . Rebooting with command: boot -a Boot device: /pci@1f,0/pci@1,1/ide@3/disk@0,0:a File and args: -a Enter filename [kernel/sparcv9/unix]: Press Return Enter default directory for modules [/platform/SUNW,Ultra-5_10/kernel /platform/sun4u/kernel /kernel /usr/kernel]: Press Return Name of system file [etc/system]: Press Return SunOS Release 5.10 Version S10_60 64-bit Copyright (c) 1983-2004 by Sun Microsystems, Inc. All rights reserved Use is subject to license terms. root filesystem type [ufs]: Press Return Enter physical name of root device [/pci@1f,0/pci@1,1/ide@3/disk@0,0:a]: Press Return configuring IPv4 interfaces: hme0. Hostname: starlite The system is coming up. Please wait. checking ufs filesystems . . . The system is ready. starlite console login: |
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
获取现有 Oracle Solaris 内核的副本并将其重命名。
将您在步骤 2 中复制和重命名的内核添加到 /etc/boot/solaris/filelist.ramdisk 文件中。
# echo "kernel.name" >> /boot/solaris/filelist.ramdisk |
检验是否已将备用内核添加到 /etc/boot/solaris/filelist.ramdisk 文件中。
# cat > /etc/boot/solaris/filelist.ramdisk |
使用 bootadm 命令更新引导归档文件。
# bootadm update-archive |
更改为运行级别 0。
# init 0 |
此时将显示 ok PROM 提示符。
引导备用内核。
ok boot alternate-kernel |
例如:
ok boot kernel.myname/sparcv9/unix |
在引导系统后,检验是否已引导备用内核。
# prtconf -vp | grep whoami |
# cp -r /platform/sun4v/kernel /platform/sun4vu/kernel.caiobella # echo "kernel.caiobela" >> /boot/solaris/filelist.ramdisk # cat > /etc/boot/solaris/filelist.ramdisk /platform/sun4v/kernel.caiobella ^D (control D) ok setenv boot-file kernel.caiobells/sparcv9/unix ok printenv boot-file boot-file = kernel.caiobella/sparcv9/unix ok boot SC Alert: Host System has Reset SC Alert: Host system has shut down. Sun Fire T200, No KeyboardCopyright 2006 Sun Microsystems, Inc. All rights reserved. OpenBoot 4.25.0.build_01***PROTOTYPE BUILD***, 32760 MB memory available, Serial #69060038. Ethernet address 0:x:4f:x:c5:c6, Host ID: 8xxc5c6. Rebooting with command: boot Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a File and args: kernel.caiobella/sparcv9/unix SunOS Release 5.10 Copyright 1983-2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. DEBUG enabled misc/forthdebug (176650 bytes) loaded Hostname: seasonz NIS domain name is lab.domain.sun.com Reading ZFS config: done. seasonz console login: Password: Last login: Mon Nov 12 18:02:00 on console Sun Microsystems Inc. SunOS 5.10 . . . You have new mail. # # # prtconf -vp | grep whoami whoami: '/platform/sun4v/kernel.caiobella/sparcv9/unix' |
为了支持在 SPARC 平台上从 Oracle Solaris ZFS 引导,已添加了两个新的引导选项:
显示 ZFS 池中可用的可引导数据集列表。
boot -L 命令从 OBP 而不是从命令行执行。
引导指定 ZFS 可引导数据集的根文件系统。
如果要从 ZFS 根文件系统引导系统,请首先从 OBP 使用带有 -L 选项的 boot 命令列显系统中可用 BE 的列表。然后,使用 -Z 选项引导指定的 BE。
有关更多信息,请参见 boot(1M) 手册页。
在基于 SPARC 的系统上,menu.lst 文件包含以下两个 GRUB 命令:
title - 提供引导环境 (boot environment, BE) 的标题
bootfs-指定可引导数据集的全名
要显示 ZFS 池中可引导数据集的列表,请从以下方法中进行选择:
使用 lustatus 命令。此命令列出给定 ZFS 池中的所有 BE。
请注意,也可以在基于 x86 的系统上使用 lustatus 命令。
使用 boot -L 命令。此命令显示给定 ZFS 池中可用 BE 的列表,并提供有关引导系统的说明。
以下过程介绍如何使用 boot -L 命令列出系统中可用的 BE。要在运行此命令后引导指定的 BE,请按照屏幕上列显的说明操作。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
使系统进入 ok PROM 提示符下。
# init 0 |
列出 ZFS 池中可用的 BE:
ok boot device-specifier -L |
要引导所显示的项之一,请键入该项对应的编号。
执行屏幕上列显的指令,引导指定的 BE。
有关说明,请参见SPARC: 如何从指定的 ZFS 根文件系统引导。
# init 0 # svc.startd: The system is coming down. Please wait. svc.startd: 94 system services are now being stopped. svc.startd: The system is down. syncing file systems... done Program terminated ok boot -L . . . Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0 File and args: -L zfs-file-system Loading: /platformsun4u/bootlst 1.s10s_nbu6wos 2 zfs2BE Select environment to boot: [ 1 - 2 ]: 2 to boot the selected entry, invoke: boot [<root-device] -Z rpool/ROOT/zfs2BE |
有关更多信息,请参见 《Oracle Solaris ZFS 管理指南》中的第 5 章 “安装和引导 Oracle Solaris ZFS 根文件系统”。
从 Oracle Solaris ZFS 引导不同于从 UFS 引导。从 ZFS 引导时,设备说明符标识一个存储池,而不是标识单个根文件系统。存储池可能包含多个可引导的数据集或根文件系统。因此,在从 ZFS 引导时,您还必须标识由引导设备标识为缺省池的池中的根文件系统。缺省情况下,缺省引导设备由池的 bootfs 属性标识。以下过程说明如何通过指定 ZFS 可引导数据集来引导系统。有关可用的所有引导选项的完整说明,请参见 boot(1M) 手册页。
如果以前正确设置了 bootfs 属性(例如,如果您使用 luactivate 命令激活了某个 BE),则系统会自动引导 ZFS 根。
有关更多信息,请参见 zpool(1M) 手册页。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
使系统进入 ok PROM 提示符下。
# init 0 |
(可选的)要显示可用 BE 的列表,请使用带有 -L 选项的 boot 命令。
有关说明,请参见SPARC: 如何列出 ZFS 根池中可用的可引导数据集。
要引导指定的项,请键入该项的编号,然后按回车键:
Select environment to boot: [1 - 2]: |
要引导系统,请按照屏幕上列显的说明操作:
To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/dataset
ok boot -Z rpool/ROOT/dataset |
例如:
# boot -Z rpool/ROOT/zfs2BE |
在引导系统之后,键入以下命令来检验活动的 BE:
# prtconf -vp | grep whoami |
以下示例说明如何使用 boot -Z 命令在基于 SPARC 的系统上引导 ZFS 数据集。
# init 0 # svc.startd: The system is coming down. Please wait. svc.startd: 79 system services are now being stopped. svc.startd: The system is down. syncing file systems... done Program terminated ok boot -Z rpool/ROOT/zfs2BEe Resetting LOM event: =44d+21h38m12s host reset g ... rProcessor Speed = 648 MHz Baud rate is 9600 8 Data bits, 1 stop bits, no parity (configured from lom) Firmware CORE Sun Microsystems, Inc. @(#) core 1.0.12 2002/01/08 13:00 software Power ON Verifying nVRAM...Done Bootmode is 0 [New I2C DIMM address] . . . Environment monitoring: disabled Executng last command: boot -Z rpool/ROOT/zfs2BE Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0 File and args: -Z rpool/ROOT/zfs2Be zfs-file-system Loading: /platform/SUNW,UltraAX-i2/boot_archive Loading: /platform/sun4u/boot_archive ramdisk-root hsfs-file-system Loading: /platform/SUNW,UltraAX-i2/kernel/sparcv9/unix Loading: /platform/sun4u/kernel/sparcv9/unix . . . Hostname: mallory NIS domainname is boulder.Central.Sun.COM Reading ZFS config: done. Mounting ZFS filesytems: (6/6) mallory console login: |
有关指定 ZFS 可引导数据集的故障安全归档文件的引导信息,请参见如何在故障安全模式下引导基于 SPARC 的系统。
如果从作为引导归档文件的根文件系统映像引导系统,然后在实际根设备上重新挂载此文件系统,有时可能会导致引导归档文件和根文件系统不匹配或不一致。在这些情况下,将会危及系统的正确操作和完整性。在挂载根 (/) 文件系统之后,且在放弃内存中文件系统之前,系统会针对这两个文件系统执行一致性验证。如果检测到不一致,正常引导序列将会暂停,并且系统会恢复至故障安全模式。
此外,如果在更新内核文件后立刻出现系统故障、电源故障或内核紧急情况,则引导归档文件和根文件系统可能无法同步。虽然系统仍然可能使用不一致的引导归档文件引导,但建议您引导故障安全归档文件以更新引导归档文件。您还可以使用 bootadm 命令手动更新引导归档文件。有关更多信息,请参见使用 bootadm 命令管理引导归档文件。
引导故障安全归档文件可用于恢复目的,或更新引导归档文件。
在 SPARC 平台上,故障安全归档文件为:
/platform/`uname -m`/failsafe
可以使用以下语法引导故障安全归档文件:
ok boot -F failsafe |
从 Oracle Solaris ZFS 引导的系统也支持故障安全引导。在从以 ZFS 为根的 BE 引导时,每个 BE 都有其自己的故障安全归档文件。故障安全归档文件位于根文件系统所在的位置,这与以 UFS 为根的 BE 的情况相同。缺省故障安全归档文件是位于缺省可引导文件系统中的归档文件。缺省可引导文件系统(数据集)由池的 bootfs 属性的值指示。
有关引导基于 x86 的故障安全归档文件的信息,请参见在故障安全模式下引导基于 x86 的系统。。
有关清除引导归档文件自动更新故障的信息,请参见x86: 如何使用 auto-reboot-safe 属性清除引导归档文件自动更新故障。
使用此过程在故障安全模式下引导基于 SPARC 的系统以更新引导归档文件。如果在更新引导归档文件后系统不引导,您可能需要在单用户模式下引导系统。有关更多信息,请参见SPARC: 如何将系统引导至运行级别 S(单用户级别)。
此过程还说明了在故障安全模式下如何引导指定的 ZFS 数据集。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
使系统进入 ok 提示符:
# init 0 |
引导故障安全归档文件。
要引导缺省故障安全归档文件,请键入:
ok boot -F failsafe |
要引导特定 ZFS 数据集的故障安全归档文件,请键入:
ok boot -F failsafe -Z dataset |
例如:
ok boot -F failsafe -Z rpool/ROOT/zfsBE2 |
要确定要引导的数据集的名称,请首先使用 boot -L 命令显示系统中可用 BE 的列表。有关更多信息,请参见SPARC: 如何列出 ZFS 根池中可用的可引导数据集。
如果检测到不一致的引导归档文件,将会显示一条消息。
要更新引导归档文件,请键入 y,然后按回车键。
An out of sync boot archive was detected on rpool. The boot archive is a cache of files used during boot and should be kept in sync to ensure proper system operation. Do you wish to automatically update this boot archive? [y,n,?] y |
如果成功更新归档文件,将会显示一条消息:
The boot archive on rpool was updated successfully. |
该示例介绍如何在故障安全模式下引导基于 SPARC 的系统。如果未指定任何设备,则引导缺省引导设备的故障安全归档文件。
ok boot -F failsafe Resetting ... screen not found. Can't open input device. Keyboard not present. Using ttya for input and output. Sun Enterprise 220R (2 X UltraSPARC-II 450MHz), No Keyboard OpenBoot 3.23, 1024 MB memory installed, Serial #13116682. Ethernet address 8:0:20:c8:25:a, Host ID: 80c8250a. Rebooting with command: boot -F failsafe Boot device: /pci@1f,4000/scsi@3/disk@1,0:a File and args: -F failsafe SunOS Release 5.10t Copyright 1983-2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Configuring /dev Searching for installed OS instances... An out of sync boot archive was detected on /dev/dsk/c0t1d0s0. The boot archive is a cache of files used during boot and should be kept in syncto ensure proper system operation. Do you wish to automatically update this boot archive? [y,n,?] y Updating boot archive on /dev/dsk/c0t1d0s0. The boot archive on /dev/dsk/c0t1d0s0 was updated successfully. Solaris 5.10 was found on /dev/dsk/c0t1d0s0. Do you wish to have it mounted read-write on /a? [y,n,?] n Starting shell. # |
此示例介绍如何在故障安全模式下引导 ZFS 数据集。请注意,首先使用 boot -L 命令显示可用引导环境的列表。此命令必须在 ok 提示符下运行。
ok boot -L Rebooting with command: boot -L Boot device: /pci@1f,4000/scsi@3/disk@1,0 File and args: -L 1 zfsBE2 Select environment to boot: [ 1 - 1 ]: 1 To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/zfsBE2 Program terminated {0} ok Resetting ... screen not found. Can't open input device. Keyboard not present. Using ttya for input and output. Sun Enterprise 220R (2 X UltraSPARC-II 450MHz), No Keyboard OpenBoot 3.23, 1024 MB memory installed, Serial #13116682. Ethernet address 8:0:20:c8:25:a, Host ID: 80c8250a. {0} ok boot -F failsafe -Z rpool/ROOT/zfsBE2 Boot device: /pci@1f,4000/scsi@3/disk@1,0 File and args: -F failsafe -Z rpool/ROOT/zfsBE2 SunOS Release 5.10 Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Configuring /dev Searching for installed OS instances... ROOT/zfsBE2 was found on rpool. Do you wish to have it mounted read-write on /a? [y,n,?] y mounting rpool on /a Starting shell. # # # # zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 16.8G 6.26G 10.5G 37% ONLINE /a # # zpool status pool: rpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c0t1d0s0 ONLINE 0 0 0 errors: No known data errors # # df -h Filesystem size used avail capacity Mounted on /ramdisk-root:a 163M 153M 0K 100% / /devices 0K 0K 0K 0% /devices /dev 0K 0K 0K 0% /dev ctfs 0K 0K 0K 0% /system/contract proc 0K 0K 0K 0% /proc mnttab 0K 0K 0K 0% /etc/mnttab swap 601M 344K 601M 1% /etc/svc/volatile objfs 0K 0K 0K 0% /system/object sharefs 0K 0K 0K 0% /etc/dfs/sharetab swap 602M 1.4M 601M 1% /tmp /tmp/root/etc 602M 1.4M 601M 1% /.tmp_proto/root/etc fd 0K 0K 0K 0% /dev/fd rpool/ROOT/zfsBE2 16G 5.7G 9.8G 37% /a rpool/export 16G 20K 9.8G 1% /a/export rpool/export/home 16G 18K 9.8G 1% /a/export/home rpool 16G 63K 9.8G 1% /a/rpool |
在以下情况下,您可能需要从网络引导系统:
首次安装系统时
如果系统不从本地磁盘引导
如果系统是无盘客户机
可以使用两种网络配置引导策略:
反向地址解析协议 (Reverse Address Resolution Protocol, RARP) 和 ONC+ RPC Bootparams 协议
动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP)
对于网络设备,通过局域网 (local area network, LAN) 引导的过程与通过广域网 (wide area network, WAN) 引导的过程稍有不同。在这两种网络引导方案中,PROM 将从引导服务器或安装服务器下载引导程序(在此情况下为 inetboot)。
在通过 LAN 引导时,固件将使用 RARP 和 BOOTP 或 DHCP 来搜索引导服务器或安装服务器。然后,将使用 TFTP 下载引导程序(在此情况下为 inetboot)。
在通过 WAN 引导时,固件将使用 DHCP 或 NVRAM 属性搜索系统从网络引导所需的安装服务器、路由器和代理。用于下载引导程序的协议是 HTTP。此外,还可能使用预定义的私钥检查引导程序的签名。
如果引导服务器可用,任何系统都可以从网络进行引导。如果系统不能从本地磁盘进行引导,则可能需要从网络引导独立系统。有关更改或重置缺省引导设备的信息,请参见SPARC: 如何使用引导 PROM 更改缺省引导设备。
sun–4u 系统提供两种网络配置引导策略:
反向地址解析协议 (Reverse Address Resolution Protocol, RARP) 和 ONC+ RPC Bootparams 协议
动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP)
缺省网络引导策略被设置为 RARP。可以使用上述协议之一,具体情况取决于网络上提供的是 RARP 引导服务器还是 DHCP 引导服务器。
Sun Ultra 系统必须至少具有 PROM 版本 3.25.nn 才能使用 DHCP 网络引导策略。有关确定 PROM 版本的信息,请参见SPARC: 如何查找系统的 PROM 修订号。
如果这两个协议都可用,则可以临时指定要在 boot 命令中使用的协议。或者,可以通过设置 NVRAM 别名,在 PROM 级别通过重新引导系统来保存网络引导策略。以下示例使用 nvalias 命令设置网络设备别名,从而以缺省方式在 Sun Ultra 10 系统上引导 DHCP。
ok nvalias net /pci@1f,4000/network@1,1:dhcp |
因此,当键入 boot net 时,系统将使用 DHCP 进行引导。
不要使用 nvalias 命令来修改 NVRAMRC 文件,除非您非常熟悉此命令和 nvunalias 命令的语法。有关这些命令的使用信息,请参见OpenBoot 3.x Command Reference Manual。
要成功引导两种协议中的任一种,在您的网络中必须安装 RARP 或 DHCP 引导服务器。
使用此过程将当前处于运行级别 0 的系统引导至运行级别 3。
重新引导系统。
# reboot |
如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。
在出现此提示时,您还可以使用“重置”按钮。如果系统已关闭,请使用电源开关打开系统。
引导序列开始时,将显示 GRUB 菜单。
显示 GRUB 菜单时,按 Enter 键引导缺省 OS 实例。
如果在 10 秒内未选择项,系统会自动引导至运行级别 3。
引导过程成功完成后,将显示登录提示。
登录到系统。
hostname console login: |
确认系统已引导至运行级别 3。
# who -r system% who -r . run-level 3 Mar 2 09:44 3 0 S |
# reboot Jul 24 11:29:52 bearskin reboot: rebooted by root syncing file systems... done rebooting... Adaptec AIC-7899 SCSI BIOS v2.57S4 (c) 2000 Adaptec, Inc. All Rights Reserved. Press <Ctrl><A> for SCSISelect(TM) Utility! Ch B, SCSI ID: 0 SEAGATE ST336607LSUN36G 160 GNU GRUB version 0.95 (637K lower / 2096064K upper memory) ============================================================== Solaris 10 10/08 s10x_u6wos_03 X86 Solaris failsafe ============================================================== Use the and keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. SunOS Release 5.10 Version Generic_137138-04 32-bit Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Hostname: pups NIS domain name is ....sfbay.sun.com Reading ZFS config: done. Mounting ZFS filesystems: (5/5) pups console login: # who -r . run-level 3 Jul 24 11:31 3 0 S |
使用此过程可将位于运行级别 0 的系统引导至运行级别 S。单用户级别用于执行系统维护。
此过程可用于所有 GRUB 实现。但是,GRUB 主菜单中的引导项随您所运行的 Oracle Solaris 发行版而异。
有关您在引导时可指定的所有内核选项的说明,请参见 x86: 通过在引导时编辑 GRUB 菜单修改引导行为。
重新引导系统。
# reboot |
如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。
在出现此提示时,您还可以使用“重置”按钮。如果系统已关闭,请使用电源开关打开系统。
引导序列开始时,将显示 GRUB 菜单。
显示 GRUB 主菜单时,键入 e 以编辑 GRUB 菜单。
根据要运行的版本,使用方向键选择 kernel 或 kernel$ 行。
如果不能使用方向键,请使用插入记号键 (^) 向上滚动,并使用字母 v 键向下滚动。
再次键入 e 以编辑引导项。
在这里,您可以向 kernel 或 kernel$ 行添加选项和参数。
要在单用户模式下引导系统,请在引导条目行的结尾键入 -s,然后按回车键返回至上一屏幕。
要指定其他引导行为,请将 -s 选项替换为适当的引导选项。
可以使用此方式指定以下备用引导行为:
执行重新配置引导
在 32 位模式下引导具备 64 位计算能力的系统
使用内核调试器引导系统
重定向控制台
有关更多信息,请参见 boot(1M) 手册页。
要在单用户模式下引导系统,请键入 b。
出现提示时,键入超级用户口令。
确认系统处于运行级别 S。
# who -r . run-level S Jun 13 11:07 S 0 0 |
执行将运行级别更改为 S 所需的系统维护任务。
完成系统维护任务后,重新引导系统。
# reboot Jul 2 14:30:01 pups reboot: initiated by root on /dev/console syncing files... Press <Ctrl><A> forPSCSISelect(TM) Utility! GNU GRUB version 0.95 (637K lower / 2096064K upper memory) =================================================== Solaris 10 10/08 s10x_u6wos_03 X86 Solaris failsafe ===================================================== Use the and keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. ===================================================== GNU GRUB version 0.95 (637K lower / 2096064K upper memory) ===================================================== findroot (pool_rpool,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive ================================================ Use the and keys to select which entry is highlighted. Press 'b' to boot, 'e' to edit the selected command in the boot sequence, 'c' for a command-line, 'o' to open a new line after ('O' for before) the selected line, 'd' to remove the selected line, or escape to go back to the main menu. [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits. ] grub edit> kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -s GNU GRUB version 0.95 (637K lower / 2096064K upper memory) ======================================================= findroot (pool_rpool,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -s module /platform/i86pc/boot_archive ====================================== Use the and keys to select which entry is highlighted. Press 'b' to boot, 'e' to edit the selected command in the boot sequence, 'c' for a command-line, 'o' to open a new line after ('O' for before) the selected line, 'd' to remove the selected line, or escape to go back to the main menu. . . . SunOS Release 5.10 Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Booting to milestone "milestone/single-user:default". Hostname: pups Requesting System Maintenance Mode SINGLE USER MODE Root password for system maintenance (control-d to bypass): single-user privilege assigned to /dev/console. Entering System Maintenance Mode Jul 2 14:41:48 su: 'su root' succeeded for root on /dev/console Sun Microsystems Inc. # who -r who -r . run-level S Jul 2 14:39 S 0 0 # |
在需要指定备用内核或备用 /etc/system 文件时,请使用此过程引导系统。
在使用 boot a 命令交互式引导基于 x86 的系统时,如要指定备用的 -/etc/system 文件,请执行以下步骤:
1. 创建 /etc/system 和 boot/solaris/filelist.ramdisk 文件的备份副本。
# cp /etc/system /etc/system.bak # cp /boot/solaris/filelist.ramdisk /boot/solaris/filelist.ramdisk.orig |
2. 将 etc/system.bak 文件名添加到 /boot/solaris/filelist.ramdisk 文件。
# echo "etc/system.bak" >> /boot/solaris/filelist.ramdisk |
3. 更新引导归档文件。
# bootadm update-archive -v |
重新引导系统。
# reboot |
如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。
在出现此提示时,您还可以使用“重置”按钮。如果系统已关闭,请使用电源开关打开系统。
引导序列开始时,将显示 GRUB 主菜单。
要访问 GRUB 编辑菜单,请键入 e。
使用方向键选择 kernel 或 kernel$ 行。
键入 e 以编辑引导项行。
键入 -a 交互式引导系统,然后按回车键返回至上一菜单。
要交互式地引导系统,请键入 b。
键入模块的缺省目录,或按 Enter 键接受缺省目录。
Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]: |
键入备用的系统文件名 alternate-file。
Name of system file [etc/system]: /etc/system.bak |
在不提供备用文件的情况下按 Enter 键可接受缺省名称。
修复损坏的 /etc/system 文件。
将系统重新引导至运行级别 3。
# reboot syncing file systems... done rebooting... GNU GRUB version 0.95 (637K lower / 2096064K upper memory) =================================================== Solaris 10 10/08 s10x_u6wos_03 X86 Solaris failsafe ===================================================== Use the and keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. ===================================================== GNU GRUB version 0.95 (637K lower / 2096064K upper memory) ===================================================== findroot (pool_rpool,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive ====================================================== Use the and keys to select which entry is highlighted. Press 'b' to boot, 'e' to edit the selected command in the boot sequence, 'c' for a command-line, 'o' to open a new line after ('O' for before) the selected line, 'd' to remove the selected line, or escape to go back to the main menu. [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits. ] grub edit> kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -a GNU GRUB version 0.95 (637K lower / 2096064K upper memory) =================================================== findroot (pool_rpool,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -a module /platform/i86pc/boot_archive ==================================================== . . . Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]: Name of system file [/etc/system]: /etc/system.bak SunOS Release 5.10 Version Generic_137138-04 32-bit Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Hostname: pups NIS domain name is ....sfbay.sun.com Reading ZFS config: done. Mounting ZFS filesystems: (5/5) pups console login: |
为了支持在 x86 平台上引导 Oracle Solaris ZFS 根文件系统,已引入了一个新的 GRUB 关键字 $ZFS-BOOTFS。如果根设备包含 ZFS 池,则会为此关键字分配一个值,然后使用 -B 选项将该值传递给内核。此选项标识要引导的数据集。如果您使用支持 ZFS 引导装载器的 Oracle Solaris 发行版来安装或升级您的系统,则在缺省情况下,GRUB menu.lst 文件和 GRUB 引导菜单将包含此信息。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
要显示系统中可用 BE 的列表,请键入以下命令:
~# bootadm list-menu |
# lustatus |
请注意,也可以在基于 SPARC 的系统上使用 lustatus 命令。
如果在运行 lustatus 命令时显示以下错误,则表明执行了全新安装,而没有使用 Solaris Live Upgrade。必须先在系统中创建新的 BE,然后才能在 lustatus 输出中确认任何 BE。
# lustatus ERROR: No boot environments are configured on this system ERROR: cannot determine list of all boot environment names |
有关使用 Solaris Live Upgrade 将 UFS 根文件系统迁移到 ZFS 根文件系统的更多信息,请参见 《Oracle Solaris ZFS 管理指南》中的“将 UFS 根文件系统迁移到 ZFS 根文件系统 (Oracle Solaris Live Upgrade)”。
在以下示例中,lustatus 命令的输出显示了三个 ZFS 可引导数据集的状态。缺省的引导环境是 be1,因而无法将其删除。
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- s10s_nbu6wos yes no no yes - zfs2BE yes yes yes no - zfsbe3 no no no yes - # |
如果该 BE 已创建且可引导,则 Is Complete 列中会显示 "yes"。如果某个 BE 已创建但尚未激活,则此列中会显示 "no"。要激活某个 BE,请使用 luactivate 命令。之后,可以运行 lustatus 命令以检验是否已成功激活该 BE。
有关更多信息,请参见 lustatus(1M) 和 luactivate(1M) 手册页。
以下过程介绍如何在支持 ZFS 引导装载器的 x86 系统上从 ZFS 根文件系统引导。
请注意,如果您安装支持 ZFS 引导装载器的 Oracle Solaris 发行版或将您的系统升级至该发行版,则在缺省情况下,GRUB 菜单项包含 -B $ZFS-BOOTFS 引导参数,因此,系统无需任何其他引导参数即可从 ZFS 引导。
重新引导系统。
# reboot |
如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。
在出现此提示时,您还可以使用“重置”按钮。如果系统已关闭,请使用电源开关打开系统。
引导序列开始时,将显示 GRUB 主菜单。如果缺省引导项是 ZFS 文件系统,则菜单将类似如下:
GNU GRUB version 0.95 (637K lower / 3144640K upper memory) +----------------------------------------------------------------+ | be1 | be1 failsafe | be3 | be3 failsafe | be2 | be2 failfafe +---------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. |
显示 GRUB 菜单后,请按 Enter 键引导缺省的操作系统实例。
如果在 10 秒内未选择项,系统会自动引导至运行级别 3。
要引导其他 BE,请使用方向键突出显示指定的引导项。
键入 b 引导此项,或键入 e 编辑此项。
有关引导时 GRUB 菜单项的更多信息,请参见 x86: 如何通过在引导时编辑 GRUB 菜单修改引导行为。
以下示例显示了在系统中激活引导环境 be10 所要执行的步骤。请注意,要首先运行 lustatus,以确定系统中哪些 BE 是活动的,以及哪些 BE 需要激活。
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status ----------------------------------------------------------------- be1 yes yes yes no be10 yes no no yes # luactivate be10 System has findroot enabled GRUB Generating boot-sign, partition and slice information for PBE <be1> WARNING: The following file s have change on both the current boot environment <be1> zone <global> and the boot environment to be activitate <be10> /etc/zfs/zpool.cache INFORMATION: The files listed above are in conflict between the current boot environment <be1> zone <global> and the boot environment to be activated <be10>. These files will not be automatically synchronized from the current boot environment <be1> when boot environment <be10> is activated. Setting failsafe console to <ttyb> Generating boot-sign for ABE <be10> Generating partition and slice information for ABE <be10> Copied boot menu from top level dataset. Generating direct boot menu entries for PBE. Generating direct boot menu entries for ABE. Disabling splashimage Current GRUB menu default setting is not valid title Solaris bootenv rc No more bootadm entries. Deletion of bootadm entries is complete. GRUB menu default setting is unchanged Done eliding bootadm entries. ************************************************************** The target boot environment has been activated. It will be used when you reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You MUST USE either the init or the shutdown command when you reboot. If you do not use either init or shutdown, the system will not boot using the target BE. *************************************************************** ,,, # reboot May 30 09:52:32 pups reboot: initiated by root on /dev/console syncing file systems... done rebooting... CE SDRAM BIOS P/N GR-xlint.007-4.330 * BIOS Lan-Console 2.0 Copyright (C) 1999-2001 Intel Corporation . . . GNU GRUB version 0.95 (637K lower / 3144640K upper memory) +-------------------------------------------------------------------+ | be1 | be1 failsafe | be10 | be10 failsafe +------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. SunOS Release 5.10 32-bit Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Hostname: pups NIS domain name is sunsoft.eng.sun.com Reading ZFS config: done. Mounting ZFS filesystems: (8/8) pups console login: # lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status ----------------------------------------------------------------- be1 yes yes yes no be10 yes yes yes no # |
如要在故障安全模式下引导基于 x86 的系统,则在系统引导过程中显示 GRUB 菜单时选择故障安全引导项。在故障安全引导过程中,当出现系统提示时,请键入 y 以更新主引导归档文件。
从 ZFS 引导的系统也支持故障安全引导。在从以 UFS 为根的 BE 引导时,每个 BE 都有其自己的故障安全归档文件。故障安全归档文件位于根文件系统所在的位置,这与以 ZFS 为根的 BE 的情况相同。在基于 x86 的系统上,每个故障安全归档文件都在池范围的 GRUB 菜单中具有一个项。缺省故障安全归档文件是位于缺省可引导文件系统中的归档文件。缺省可引导文件系统(数据集)由池的 bootfs 属性的值指示。
有关引导归档文件恢复的更多信息,请参见第 13 章。
某些 Oracle Solaris 发行版中的 GRUB 故障安全交互会提示您更新引导归档文件,而不管是否检测到任何不一致的引导归档文件。在此发行版中,系统仅在检测到不一致的引导归档文件时才提示您更新引导归档文件。
使用 x86: 如何为恢复目的而停止系统 过程中介绍的方法之一停止系统。
如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。
在出现此提示时,您还可以使用“重置”按钮。或者,可以使用电源开关重新引导系统。
引导序列开始时,将显示 GRUB 菜单。
GNU GRUB version 0.95 (637K lower / 3144640K upper memory) +-------------------------------------------------------------------+ | be1 | be1 failsafe | be3 | be3 failsafe | be2 | be2 failfafe +------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. |
显示的 GRUB 菜单可能随您所运行的 Oracle Solaris 发行版而异。
使用方向键导航 GRUB 菜单,以选择一个故障安全项。
按回车键以引导故障安全归档文件。
系统将搜索已安装的 OS 实例。如果检测到不一致的引导归档文件,则会显示一条类似如下的消息:
Searching for installed OS instances... An out of sync boot archive was detected on /dev/dsk/c0t0d0s0. The boot archive is a cache of files used during boot and should be kept in sync to ensure proper system operation. Do you wish to automatically update this boot archive? [y,n,?] |
键入 y 以更新引导归档文件。
如果检测到多个不一致的引导归档文件,则系统将提示您键入 y 以更新每个不一致的引导归档文件。
对于成功更新的每个归档文件,都将显示以下消息:
Updating boot archive on /dev/dsk/c0t0d0s0. The boot archive on /dev/dsk/c0t0d0s0 was updated successfully. |
更新引导归档文件后,系统将再次搜索所有已安装的 OS 实例,然后提示您选择要在 /a 上挂载的设备。请注意,当系统首次引导时,如果没有检测到不一致的引导归档文件,也会显示此同一消息。
Searching for installed OS instances... Multiple OS instances were found. To check and mount one of them read-write under /a, select it from the following list. To not mount any, select 'q'. 1 pool10:13292304648356142148 ROOT/be10 2 rpool:14465159259155950256 ROOT/be01 Please select a device to be mounted (q for none) [?,??,q]: |
以下过程说明在系统未提示您更新不一致或损坏的引导归档文件时,或者在系统挂起或发生循环序列时,如何重新生成引导归档文件。
使用 x86: 如何为恢复目的而停止系统 过程中介绍的方法之一停止系统。
重新引导系统。
# reboot |
如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。
在出现此提示时,您还可以使用“重置”按钮。
引导序列开始时,将显示 GRUB 菜单。
+---------------------------------------------------------------------+ | Solaris 10.1... X86 | | Solaris failsafe | | | | | +-------------------------------------------------------------------------+ Use the and keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. |
GRUB 菜单的内容随您所运行的 Solaris 发行版而异。
使用方向键导航 GRUB 菜单,以选择一个故障安全项。
按回车键以引导故障安全归档文件。
如果引导归档文件已过时,则会显示类似如下的消息:
Searching for installed OS instances... An out of sync boot archive was detected on /dev/dsk/c0t0d0s0. The boot archive is a cache of files used during boot and should be kept in sync to ensure proper system operation. Do you wish to automatically update this boot archive? [y,n,?] |
键入 y,然后按 Enter 键以更新不一致的引导归档文件。
系统将显示以下消息:
Updating boot archive on /dev/dsk/c0t0d0s0. The boot archive on /dev/dsk/c0t0d0s0 was updated successfully. |
如果未找到不一致的引导归档文件,则会显示类似如下的消息:
Searching for installed OS instances... Solaris 10.1... X86 was found on /dev/dsk/c0t0d0s0. Do you wish to have it mounted read-write on /a? [y,n,?] |
成功更新任何不一致的引导归档文件后,也会显示此消息。
通过键入对应的设备编号在 /a 上挂载包含损坏的引导归档文件的设备,然后按 Enter 键。
如果已在上一步中更新了任何不一致的引导归档文件,则表明已在 /a 上挂载了该设备。
要强制更新损坏的引导归档文件,请键入:
# bootadm update-archive -f -R /a |
卸载设备。
# umount /a |
重新引导系统。
# reboot |
以下示例说明如何引导故障安全归档文件以强制更新损坏的引导归档文件。
GNU GRUB version 0.95 (635K lower / 523200K upper memory) +-------------------------------------------------------------------------+ | Solaris 10 1/06 s10x_u1wos_19a X86 | | >Solaris failsafe< | | | | | +-------------------------------------------------------------------------+ Use the and keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. SunOS Release 5.10 Copyright 1983-2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Booting to milestone "milestone/single-user:default". Configuring devices. Searching for installed OS instances... Multiple OS instances were found. To check and mount one of them read-write under /a, select it from the following list. To not mount any, select 'q'. 1 /dev/dsk/c0t0d0s0 Solaris 10 1/06 s10x_u1wos_19a X86 2 /dev/dsk/c0t1d0s0 Solaris 10 5/08 X86 Please select a device to be mounted (q for none) [?,??,q]: 1 mounting /dev/dsk/c0t0d0s0 on /a Starting shell. # rm /a/platform/i86pc/boot_archive # bootadm update-archive -f -R /a Creating boot_archive for /a updating /a/platform/i86pc/amd64/boot_archive updating /a/platform/i86pc/boot_archive # umount /a # reboot syncing file systems... done rebooting... . . . |
本节介绍有关从网络执行基于 GRUB 的引导的要求和警告。
如果引导服务器可用,任何系统都可以从网络进行引导。如果系统不能从本地磁盘进行引导,您可能需要从网络引导独立系统以便进行恢复。可以从支持 PXE 网络引导协议的网络来直接引导基于 x86 的系统。
PXE 网络引导只适用于实现了 Intel 引导前执行环境规范的设备。
用于基于 GRUB 的 PXE 网络引导的缺省网络引导策略是 DHCP。对于非 PXE 设备,可以使用 DHCP 引导策略或 RARP 引导策略。使用的策略取决于网络上可用的引导服务器的类型。如果没有可用的 PXE 或 DHCP 服务器,则可以从软盘、CD-ROM 或本地磁盘装入 GRUB。
要执行基于 GRUB 的网络引导,需要有为 PXE 客户机配置的 DHCP 服务器。还需要提供 tftp 服务的引导服务器。DHCP 服务器提供客户机配置其网络接口所需的信息。
DHCP 服务器必须能够使用以下信息响应 DHCP 类(PXEClient 和 GRUBClient):
文件服务器的 IP 地址
引导文件 (pxegrub) 的名称
以下是执行 Oracle Solaris OS 的 PXE 网络引导的顺序:
BIOS 被配置为从网络接口进行引导。
BIOS 发送 DHCP 请求。
DHCP 服务器在回复中提供服务器地址和引导文件的名称。
BIOS 使用 tftp 下载 pxegrub 并执行 pxegrub。
系统使用 tftp 下载 GRUB 菜单文件。
此文件显示可用的引导菜单项。
选择菜单项后,系统即开始装入 Oracle Solaris OS。
有关更多信息,请参见 《系统管理指南:IP 服务》中的“如何设置网络配置服务器”。
运行 add_install_client 命令可以创建 /tftpboot_01ethernet-address 文件。此文件链接至 pxegrub 和 /tftpboot/menu.lst.01ethernet-address 文件。/tftpboot/menu.lst.01ethernet-address 文件是 GRUB 菜单文件。如果此文件不存在,则 pxegrub 将恢复使用 DHCP 选项 150(如果指定了此选项)或 /tftpboot/boot/grub/menu.lst 文件。通常,将单系统设置为提供两项功能。此时,add_install_client 命令会使用正确的 pxegrub 菜单文件和 Oracle Solaris 文件设置 /tftpboot 文件。DHCP 服务是使用 add_install_client 命令单独进行处理的。对每台客户机只需完成一次设置。有关更多信息,请参见x86: 关于 DHCP 宏和x86: 如何从网络执行基于 GRUB 的引导。
当您使用 add_install_client -d 脚本在安装服务器上添加客户机时,脚本将把 DHCP 配置信息报告到标准输出。创建用于将网络安装信息传递到客户机所需的选项和宏时,可以使用此信息。
要通过网络使用 DHCP 服务器安装 DHCP 客户机,必须创建 DHCP 选项。安装 Oracle Solaris OS 时需要用到此信息。
当客户机发送 DHCP 请求时,服务器必须具有以下客户机信息:
客户机的 ID(通常是以太网地址)
客户机请求的类
客户机所在的子网
DHCP 服务器会作出响应。此响应基于以下宏,且与客户机请求匹配:
类宏基于 DHCP 请求中包含的类字符串。在基于 x86 的系统上,BIOS 已使用类 PXEClient:Arch:00000:UNDI:002001 创建了 DHCP 请求。如果在 DHCP 服务器配置中已按此名称定义了宏,则宏内容将被发送到基于 x86 的客户机。
网络宏由客户端所在子网的 IP 地址命名。如果已在 DHPC 服务器上定义了宏 129.146.87.0,则宏内容将被发送到该子网上的所有客户机。宏内容的发送与请求类无关。如果同时在类宏和网络宏中定义了选项,则网络宏优先使用。
客户机宏以客户机的类型(01 表示以太网)和客户机的 MAC 地址(使用大写字母)命名。对于具有以太网地址 0:0:39:fc:f2:ef 的客户机,对应的宏名称为 01000039FCEF。请注意,客户机宏中没有冒号。
例如,对于子网 192.168.100.0 上具有以太网地址 0:0:39:fc:f2:ef 的客户机(创建类 PXEClient 的 DHCP 请求),DHCP 服务器具有以下匹配的宏:
PXEClient BootSrvA: 192.168.100.0 BootFile: pxegrub 129.146.87.0 Router: 129.146.87.1 NISdmain: sunsoft.eng.sun.com 01000039FCEF BootFile: 01000039FCEF The actual DHCP response will be BootSrvA: 192.168.100.0 BootFile: 01000039FCEF Router: 129.146.87.1 NISdmain: sunsoft.eng.sun.com |
请注意,客户机宏中的 BootFile 将覆盖类宏中的 BootFile。
有关更多详细信息,请参见 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》中的“使用 DHCP 服务预配置系统配置信息(任务)”。
要执行基于 GRUB 的网络引导,需要有为 PXE 客户机配置的 DHCP 服务器。还需要提供 tftp 服务的引导服务器。DHCP 服务器必须能够对 DHCP 类(PXEClient 和 GRUBClient)做出响应,才能获取文件服务器和引导文件 (pxegrub) 的 IP 地址。缺省情况下,此菜单文件为 /tftpboot/menu.lst.01ethernet-address。如果此文件不存在,则 pxegrub 将恢复到 DHCP 选项 150(如果指定了此选项),或 /tftpboot/boot/grub/menu.lst 文件。
如果您是从 Solaris 软件介质来引导系统,系统会自动进行引导。
使用 GRUB 在基于 x86 的系统上执行网络引导之前,请执行以下操作:
在安装服务器上运行相应的命令,以使系统能够从网络进行引导。
将客户机系统作为安装客户机进行添加。
有关更多信息,请参见 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》中的第 4 章 “从网络进行安装(概述)”。
在 DHCP 服务器上,使用以下两个选项为 DHCP 服务创建客户机宏:
BootSrvA: svr-addr
BootFile: client-macro
请注意,您必须对 DHCP 服务器具有超级用户权限才能运行 dhtadm 命令。
其中,svr-addr 是服务器的 IP 地址,client-macro 以客户机的以太网类型 (01) 以及 MAC 地址来命名(使用大写字母)。此编号也是在安装服务器上的 /tftpboot 目录中使用的文件的名称。
client-macro 的表示法不应包含任何冒号。
您可以使用 DHCP GUI 或命令行界面来创建客户机宏。
要从命令行创建客户机宏,请键入:
# dhtadm -[MA] -m client macro -d ":BootFile=client-macro:BootSrvA=svr-addr:" |
重新引导系统。
指示 BIOS 从网络进行引导。
显示 GRUB 菜单时,请选择要安装的网络安装映像。