Go to main content

手册页部分 8:系统管理命令

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

bootadm(8)

名称

bootadm - 管理引导配置

用法概要

/usr/sbin/bootadm update-archive [-v] [
-f | -n] [-R altroot]
/usr/sbin/bootadm list-archive [-vn] [-R altroot]
/usr/sbin/bootadm install-bootloader [-fv] [
-P pool] [-R 
path]
     [device1 ... deviceN]
/usr/sbin/bootadm boot-pool {
     [{add|remove} [-P rpool] <device list>] |
     list [-P rpool] |
     resync [-P rpool] [-vA] [<BE_list>] |
     set [-P rpool] <param>=<value> ... }
x86 only
/usr/sbin/bootadm install-bootloader [-BGMfrsv] [-P pool] [-R path]
 	    [device1 ... deviceN]
/usr/sbin/bootadm set-menu [-P 
pool] [-R altroot]
     {key=value [
key=value ...]}
/usr/sbin/bootadm set-menu-password [-P pool] [-R altroot]
          [-f <path to file>] | -s] | [-r] | [-l -t [-i entry_number] | -g]
/usr/sbin/bootadm list-menu [-P 
pool] [-R altroot]
     [[-i entry_number] | 
entry_title]
/usr/sbin/bootadm generate-menu [-P 
pool] [-f]
/usr/sbin/bootadm show-entry [-P pool] <entry_name> | -i <index>
/usr/sbin/bootadm add-entry [-P 
pool] [-i entry_number] 
entry_title
/usr/sbin/bootadm change-entry [-P 
pool] {[entry_title[,entry_title
...]
| -i entry_number[,entry_number
]...]} {key=value [
key=value ...]
| set-default }

/usr/sbin/bootadm remove-entry [-P 
pool] {[entry_title[,entry_title
...]
| -i entry_number[,entry_number
]...]}

描述

bootadm 命令用于管理引导归档文件以及 x86 引导环境中的 GRUB (GRand Unified Bootloader) 菜单。对于 x86,传统 GRUB 和 GRUB2 都受支持(但不是同时支持)。

update–archive 选项提供了一种用于用户更新引导归档文件的方法,作为恢复过程的一种预防措施或一部分。

set-menu 子命令可用于切换 GRUB 菜单中的 auto-boot 超时以及缺省的引导项。

set-menu-password 子命令设置口令来阻止查看 GRUB 菜单。要进行设置,请使用 –f <path to file>;如果使用了 –s,将会两次提示输入口令;–r 删除口令;–l 列出是否存在全局菜单口令锁,菜单项 userlist –l –t 在可解析的输出中列出菜单项 userlist;如果使用了 –l –t –i <entry number>,则在可解析的输出中为包含该项数的列表列出 userlist;如果使用了 –l –t –g,则在可解析的输出中列出是否存在全局菜单口令锁。

list-menu 子命令显示当前 GRUB 菜单项,或者选择性地显示由索引(如果使用了 –i)或标题字符串(如果省略了 –i)标识的特定条目的详细信息。

install-bootloader 子命令安装系统引导装载程序。它将取代支持在 x86 上安装 GRUB2 引导装载程序的功能。

存在活动的引导池时,将维护可引导数据集,每个数据集与一个引导环境对应并存储该引导环境的可引导 artifacts(工件)(例如 boot_archive(x64 和 SPARC 平台)和 UNIX 内核可执行文件(仅限 x64 平台))。boot-pool 子命令允许管理员管理引导池的各个方面,包括设备成员关系(使用 add/remove 子命令)、引导工件的手动同步(使用 resync 子命令)和设置引导池属性(使用 set 子命令)。

generate-menu 子命令提供了一种为 Solaris 条目创建新菜单配置文件的方法。如果引导装载程序配置文件已存在,则必须传递 –f 以强制该子命令覆盖这些文件。

show-entryadd-entrychange-entryremove-entry 子命令提供了相应的选项来显示、添加、更改或者从 GRUB 菜单中删除菜单项。change-entry 还提供了相应的选项来向菜单项添加安全保护。

请注意,基于 OpenBoot PROM (OBP) 的计算机(如 SPARC 系统),不使用 GRUB,也不存在可由 bootadm 管理的引导菜单。

bootadm 命令动态确定要管理的映像支持的选项。这样,平台上调用的 bootadm 命令可用于管理其他平台类型的无盘客户机。

子命令

对于支持指定 entry_title 的子命令,entry_title 是一个可以用双引号或单引号引起来的字符串。

entry_number 是一个非负整数,表示 GRUB 菜单中的菜单条目的索引。

bootadm 命令包含以下子命令:

update-archive [–v] [–f | –n] [–R altroot]

根据需要更新当前引导归档文件。适用于 SPARC 和 x86 平台。

list-archive [–vn] [–R altroot]

列出引导归档文件中包含的文件以及目录。适用于 SPARC 和 x86 平台。

set-menu [–vn] [–R altroot] {key=value [key=value]...}

维护 GRUB 菜单。可以指定以空格分隔的键-值对列表。

key=value

可能的值为:

default=entry_number

GRUB 菜单中的条目编号(例如,012),用于指定当计时器结束时要引导的操作系统。

timeout=seconds

由缺省的菜单项编号指定的操作系统进行引导之前等待的时间(以秒为单位)。如果值为 -1,则会禁用自动引导。

console=GRUB_console_type

设置用于 GRUB 的控制台的类型。

可能的值为:

'text'

选择一个高分辨率控制台。

'graphics'

选择还会导致图形化引导的一个高分辨率控制台。如果启用了 BIOS 控制台重定向,切勿使用 graphics 来设置控制台。

'serial'

用于 GRUB 引导装载程序的串行控制台。有关串行参数的具体设置,请参见下面的 serial_params

如果启用了 BIOS 控制台重定向,切勿使用 'serial' 来设置控制台

如果通过串行控制台引导来安装系统,则该串行控制台将成为 Oracle Solaris 的内核缺省控制台设备。不过,GRUB 的控制台不会更改为 serial(它将是 'text')。

[add|del]-user=<username>

将用户名添加到授权用户列表或将其从中删除。将两次提示输入口令。口令将以散列形式存储。用户名不必与 Solaris 用户名相同。

[auth-file]=<file path>

将 <file path> 中的用户名和口令添加到授权用户列表。<file path> 是包含 <username>=<password> 对的文件。

[add|del]-superuser=<username>

将用户名添加到超级用户列表或将其从中删除。用户名必须已存在于授权用户列表中。

serial_params='port[, speed[,databits[,parity[, stopbits[,flowcontrol]]]]]'

为串行控制台指定串行参数。

port 是用于指定串行端口号的数字。

speed 是用于指定连接的数据速率的数字(以比特/秒为单位)。

databits 是每个字符中的数据位数。

parity 指定用于检测传输错误的方法。可能的值为:

  • N 表示不进行奇偶校验

  • O 表示进行奇数奇偶校验

  • E 表示进行偶数奇偶校验

parity 的值不区分大小写。

stopbits 指定为字符传输发送的停止位。可能的值为 01

flowcontrol 指定流控制。可能的值为:

  • H 表示进行硬件流控制

  • S,表示软件流控制

  • N,表示没有流控制

如果未设置 serial_params,则缺省值为:

0,9600,8,N,1,N

......这将使以下设置成为缺省设置:第一个串行端口 (COM1)、使用 9600 比特/秒波特率、不进行奇偶校验、每个字符 8 个数据位、1 个停止位、不进行流控制。

quiet

指定是否应当禁止将信息性消息输出到控制台。缺省情况下,其值为 false

可能的值为 truefalse

splashimage

指定要用作引导期间的显示图像的文件的路径。

foreground

设置前景色。它是 RRGGBB 格式的一个十六进制字符串值,其中 RR 代表红色,GG 代表绿色,而 BB 代表蓝色。

background

设置背景色。有关可能值,请参见 foreground

set-menu-password [–R altroot] [–f <path to file> | –s] [–r]
[–l –t [–i entry_number[,entry_number]...]|–g]

设置和删除用来阻止查看 GRUB 菜单的口令。另外,还会列出是否设置了整个 GRUB 菜单口令,并且会列出每个菜单项的 userlist

list-menu [–P pool] [–R altroot]

列出当前的 GRUB 菜单项。包括自动引导超时、缺省的菜单项数量以及每个菜单项的标题。仅适用于 x86 平台。如果提供了某个条目标题或条目索引,则会列显该特定条目的详细信息。

generate-menu [–P pool]

创建一个新菜单配置,使其仅包含系统上当前安装的 Solaris 项。

bootadm show-entry [–P pool] <entry_name> | –i <index>

显示根据名称 <entry_name> 或索引从菜单中找到的菜单项。entry_nameindex 都还可以是菜单项/索引的逗号分隔列表。

add-entry [-P pool] [-i entry_number] entry_title

使用给定的条目标题在菜单中创建一个新条目。

如果指定了 entry_number,则新条目将插入在给定位置,或添加为最后的条目(如果给定的 entry_number 超出了当前的条目数)。

change-entry [–P pool]
{[entry_title[,entry_title...] | –i entry_number[,entry_number]...]}
{ key=value [ key=value ...] | set-default }

修改一个给定条目或以逗号分隔的一组条目的内容。可以通过条目标题或条目编号指定条目。如果有多个条目具有相同的标题,则会影响所有条目。

特殊属性 set-default 用于设置将成为在计时器结束时要引导的缺省条目的条目。当指定了此属性时,只能在子命令中指定一个条目。

可以指定以空格分隔的键值对列表:key =value

可能的值为:

title=entry_title

条目的新标题。

kernel=path_to_kernel

内核的路径。示例:

/platform/i86pc/kernel/amd64/unix
kargs=kernel_arguments

引导期间传递给内核的参数或参数列表。有关可能的选项,请参阅 kernel(8)。如果列表中有空格,则键值应该括在单引号或双引号中。

boot_archive=path_to_boot_archive

引导归档文件的路径。

bootfs=bootfs

bootfs 属性值。有关更多信息,请参阅 zpool(8)

[add|del]-auth=<username>

授予或撤销 username 对菜单项标题或菜单项索引进行引导的特权。

remove-entry [–P pool] [{entry_title [,entry_title 。。。] | –i entry_number[, entry_number。。。]}

删除一个给定条目或以逗号分隔的一组条目。如果有多个条目具有相同的指定标题,则会删除所有条目。

install-bootloader [–BGMfrsv] [–P pool] [–R path] [device1 ... deviceN]

安装系统引导装载程序。如果指定了一组设备,则将只在给定的设备上安装引导装载程序。否则,将在从系统配置中自动提取的一组设备上安装引导装载程序。

设备是根文件系统所在的磁盘上的一个分片或分区的原始字符设备的名称。

仅限具有传统 BIOS 固件的 x86

缺省情况下,引导装载程序和 MBR 安装在主引导磁盘上。这与指定 –M–f (–fM) 相同。

要禁用 MBR 的安装,必须指定 –B 选项。

要禁用引导装载程序的安装,必须指定 –G 选项。

仅限具有 UEFI 固件的 x86

缺省情况下,Secure Boot 处于禁用状态。

要安装 Secure Boot,请使用 –s 选项。

要卸载 Secure Boot,请使用 –r 选项。


注 -  卸载操作之后,重新引导时在 UEFI BIOS 设置中禁用 Secure Boot。
boot-pool {
[{add|remove} [–P rpool] <device list>] |
list [–P rpool] |
resync [–P rpool] [-vA] [<BE_list>] |
set [–P rpool] <param>=<value> ... }

boot-pool 子命令处理活动的引导池(如果安装系统时启用了引导池)。某些平台定义引导池中应包括的设备集。其他平台可能需要管理员在安装时选择一组设备来构成引导池。安装后,可以更改和检查引导池中的设备集,并可以更改引导池的行为。引导池中的每个设备出现故障并在随后被更换后,会自动将其重新添加到池中,所以只要指定了引导池中的设备集,在更换设备后重建池时不需要管理员交互。

每个子命令都接受 –P 参数,可以在其中专门选择某个根池。

如果未提供 –P 参数,则从根文件系统的数据集所位于的池派生根池。

add [–P rpool] <device list>

向引导池添加设备。设备会立即添加。非常重要的是,在重新同步新添加的设备之前,任何系统重新启动都要延迟,从而确保这些设备可以独立引导(因为引导池是镜像,所以在重新同步进程完成后会将引导装载程序安装到镜像中的每个设备上。)

remove [–P rpool] <device list>

立即从引导池中删除设备。

list [–P rpool]

输出有关引导池的配置和设置的详细信息。

resync [–P rpool] [-vA] {<BE_list>}

重新同步引导池(如果需要,使用先前定义的设备集重建该池)并在指定引导环境(如果有)的引导池上创建可引导数据集。命令选项如下:

–A

使用最近引导/创建的引导环境重新填充整个引导池。

–v

重新同步过程中的详细输出

set [–P rpool] <param>=<value> ...

将指定的引导池参数设置为指定值。

支持以下参数:

eviction_algorithm

eviction_algorithm 可以具有 nonelru 作为值。缺省情况下,值设置为 lru

eviction_algorithm 设置为 none 且引导环境的可引导文件需要复制到引导池时,如果引导池上没有足够空间,复制操作将失败。请注意,将不允许引导池超过其最大容量的 85% 以确保最大系统性能。

eviction_algorithm 设置为 lru 时,将去除与最近最少使用的引导环境相对应的可引导数据集,直到存在足够空间来成功执行复制操作。请注意 noevict 引导环境策略(可以按引导环境进行设置,可更改此行为并阻止去除这些引导环境相对应的可引导数据集(如果有相当多的引导环境标记为 noevict,则可引导数据集创建可能会失败,因为系统将无法通过去除数据集来找到足够空闲空间。))

选项

bootadm 命令包含以下选项:

–f

update-archive 用于强制对引导归档文件进行更新,即使该归档文件是最新的也是如此。

install-bootloader 安装中,为了不将系统上的引导装载程序的版本降级,将强制安装引导装载程序并绕过所有的版本检查。这是缺省行为。

–B [仅限具有传统 BIOS 固件的 x86 系统]

在具有传统 BIOS 固件的 x86 系统上执行 install-bootloader 操作时,请勿将引导装载程序安装到主引导记录 (Master Boot Record, MBR) 中。缺省设置是将引导装载程序安装到主引导记录 (Master Boot Record, MBR) 中,使其成为系统引导装载程序。

–G

对于 install-bootloader 安装,请勿安装引导装载程序。此外,您必须对系统上的引导装载程序执行版本检查。

–i

要对其应用指定操作的条目编号或以逗号分隔的一组条目编号。

–M [仅限具有传统 BIOS 固件的 x86 系统]

在具有传统 BIOS 固件的 x86 系统上执行 install-bootloader 操作时,此为缺省行为。缺省情况下,将引导装载程序安装到主引导记录 (Master Boot Record, MBR) 中,使其成为系统引导装载程序。该选项已过时,可能会在未来发行版中删除。

–n

update-archive 操作中,只检查归档文件内容但不更新归档文件内容。

–P pool

与要使用的指定池相关联的引导配置。未使用此选项时,会将从中引导系统的当前池用于引导配置。

–R altroot

操作将应用于该路径或替代的根路径。


注 - 不得使用 –R 选项引用任何非全局区域的根文件系统。否则,可能会损坏全局区域的文件系统,危及全局区域的安全性,或者损坏非全局区域的文件系统。请参见 zones(7)
–v verbose mode

update-archive 操作中,过时的文件显示在 stderr 中。在 install-bootloader 操作中,启用详细模式以输出有关该过程的更多信息。

示例

示例 1 更新当前的引导归档文件

以下命令更新当前的引导归档文件:

# bootadm update-archive
示例 2 更新备用根中的引导归档文件

以下命令更新备用根下的引导归档文件:

# bootadm update-archive -R /a
示例 3 切换缺省的引导项

以下命令指向上一示例中显示的菜单。用户选择 Linux(菜单项 2)。

# bootadm set-menu default=2

# bootadm change-entry -i 2 set-default
示例 4 列出 GRUB 菜单项

以下命令列出 GRUB 菜单项:

# bootadm list-menu
The location for the active GRUB menu is: /stubboot/boot/grub/menu.lst
default 0
timeout 10
0 Solaris10
1 Solaris10 failsafe
2 Linux
示例 5 显示菜单项

以下命令显示标题为 "Solaris10" 的菜单项的信息。

# bootadm show-entry "Solaris10"

以下命令显示 GRUB 菜单中位置 0 和 2 处菜单项的信息。

# bootadm show-entry -i 0,2
示例 6 添加和更改菜单项

以下命令在 GRUB 菜单中的位置 8 添加一个标题为 "New Solaris Entry" 的菜单项。

# bootadm  add-entry -i 8  "New Solaris Entry"

以下命令使用内核参数 –s 更改刚添加的条目以便引导至级别 s

# bootadm  change-entry "New Solaris Entry" kargs="-s"
示例 7 在另一根池上安装引导装载程序

以下命令在池 secondrpool 上安装引导装载程序。

# bootadm install-bootloader -P secondrpool
示例 8 设置前景色和背景色

以下命令将前景色设置为红色,将背景色设置为蓝色。

# bootadm set-menu splashimage=/boot/grub/splash.xpm.gz \

foreground=ff0000 background=0000ff
示例 9 显示有关活动的引导池的信息
# bootadm boot-pool list
Boot pool name: bpool
Parameters: eviction_algorithm=lru
Current: /dev/dsk/c1t0d0, /dev/dsk/c1t1d0
Pending: /dev/dsk/c1t0d0, /dev/dsk/c1t1d0
Platform-specified devices excluded: /dev/dsk/c1t2d0
Platform-specified (auto-added, unless excluded): /dev/dsk/c1t0d0,

在此示例中,平台具有指定的三个引导池设备,但是系统仅使用其中两个设备。当前引导池设备的列表与暂挂引导池设备的列表相同,所以没有引导池成员关系更改等待处理。请注意,如果没有活动的引导池,会返回以下输出:

bootadm: Boot pool operations are not applicable to root pool rpool.

退出状态

将返回以下退出值:

0

命令执行成功。

1

命令因运行出错而退出。

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)

附注

bootadm 缺省情况下在 /var/tmp 中存储临时文件,而不考虑 TMPDIR 的设置。

另请参见

attributes(7)grub(7)boot(8)kernel(8)zpool(8)

https://www.gnu.org/software/grub/