系统管理指南:基本管理

使用 bootadm 命令管理引导归档文件

使用 /sbin/bootadm 命令可以执行以下任务:

该命令的语法如下:


/sbin/bootadm [subcommand] [-option] [-R altroot]

有关 bootadm 命令的更多信息,请参见 bootadm(1M) 手册页。

Procedure如何使用 bootadm 命令手动更新引导归档文件

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 要更新引导归档文件,请键入:


    # bootadm update-archive
    
    bootadm

    管理系统中的引导归档文件。

    update-archive

    根据需要更新当前的引导归档文件。同时适用于基于 SPARC 的系统和基于 x86 的系统。

    • 要更新备用根上的引导归档文件,请键入:


      # bootadm update-archive -R /a
      
      -R altroot

      指定要应用于 update-archive 子命令的备用 root 路径。


      注 –

      不得使用 -R 选项引用任何非全局区域的根 (/) 文件系统。否则,可能会损坏全局区域的文件系统,危及全局区域的安全性,或者损坏非全局区域的文件系统。请参见 zones(5) 手册页。


  3. 重新引导系统。


    # reboot
    

Procedure如何在 Solaris 卷管理器 RAID-1(已镜像)根分区上手动更新引导归档文件

以下过程介绍了如何在故障安全引导过程中挂载已镜像的元设备。在此过程中,所使用的根 (/) 文件系统为 /dev/dsk/c0t0d0s0

  1. 引导故障安全归档文件。

    在故障安全模式下引导系统产生以下输出:


    Starting shell.
    #
  2. 在故障安全引导过程中,当系统提示您选择要挂载的设备时,请键入 q 来指明没有要挂载的设备。


    Please select a device to be mounted (q for none)[?,??,q]: q
    
  3. 暂时将根 (/) 文件系统的子镜像作为 /a 目录上的只读文件挂载。


    # mount -o ro /dev/dsk/c0t0d0s0 /a
    
  4. md.conf 文件复制到 /kernel/drv 目录。


    # cp /a/kernel/drv/md.conf /kernel/drv/
    
  5. 卸载 /a 目录。


    # unmount /a
    
  6. 使用 devfsadm 命令装入 md 驱动程序。


    # update_drv -f md
    

    此命令的运行导致配置得以读取,并创建必要的设备。


    注 –

    在进行下一步骤之前,请等待几秒钟以确保有充足时间装入 md 驱动程序。


  7. 使用 metasync 命令确保同步根 (/) 文件系统。例如:


    # metasync d0
    
  8. /a 目录上挂载根镜像元设备。


    # mount /dev/md/dsk/d0 /a
    
  9. 更新上一步所挂载设备的引导归档文件。


    # bootadm update-archive -v -R /a
    

    如果更新引导归档文件失败或出现错误消息,请执行以下操作:

    1. 更新 /a 目录上 md.conf 文件的时间戳,这将强制更新引导归档文件。


      # touch /a/kernel/drv/md.conf
      
    2. 运行 bootadm 命令更新引导归档文件。


      # bootadm update-archive -v -R /a
      

      完成引导归档文件的更新需要几分钟的时间。如果引导归档文件已成功更新,将显示一条类似以下内容的消息:


      changed /a/etc/system
         cannot find: /a/etc/cluster/nodeid: No such file or directory
         cannot find: /a/etc/devices/mdi_ib_cache: No such file or directory
         Creating ram disk on /a
         updating /a/platform/i86pc/boot_archive
  10. 卸载 /a


    # unmount /a
    
  11. 重新引导系统。

Procedure如何列出引导归档文件的内容

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 要列出引导归档文件中包括的文件和目录,请键入:


    # bootadm list-archive
    
    list-archive

    列出引导归档文件中包括的文件和目录。同时适用于基于 SPARC 的系统和基于 x86 的系统。

Procedurex86: 如何找到活动的 GRUB 菜单并列出当前菜单项

使用此过程可确定活动 GRUB 菜单的位置并列出当前的 GRUB 菜单项。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 要列出活动 GRUB 菜单的位置和当前的 GRUB 菜单项,请键入:


    # bootadm list-menu
    
    list-menu

    列出活动 GRUB 菜单的位置,以及当前的 GRUB 菜单项。下面的列表中包括有关 autoboot-timeout、缺省项编号以及每个项的标题的信息。适用于基于 x86 的系统。


示例 13–1 列出活动 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

Procedurex86: 如何设置活动 GRUB 菜单的缺省引导项

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 要设置活动 GRUB 菜单中的缺省引导项,请键入:


    # bootadm set-menu menu-entry
    
    set-menu

    维护 GRUB 菜单。活动 GRUB 菜单的位置为 boot/grub/menu.lst适用于基于 x86 的系统。

    menu-entry

    指定要设置为缺省菜单项的 GRUB 菜单项。

  3. 要检验缺省菜单项是否已更改,请键入:


    # bootadm list-menu
    

    此时应该显示新的缺省菜单项。


示例 13–2 切换 GRUB 缺省菜单项

以下示例说明如何将缺省 GRUB 菜单切换到上一个示例中显示的菜单项之一。所选菜单项为菜单项 2 "Linux"。


# bootadm set-menu default=2

另请参见

有关每个 GRUB 实现中 menu.lst 文件的说明,请参见 x86: 受支持的 GRUB 版本