系统管理指南:基本管理

Procedurex86: 如何添加使用 findroot 命令的 GRUB 菜单项

以下过程说明如何通过使用 findroot 命令的用户定义的项来手动更新 menu.lst 文件。通常,这些项在安装或升级之后添加。有关添加使用 findroot 命令的用户定义项的准则,请参见x86: findroot 命令的实现

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

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

  2. 在要引导的根 (/) 文件系统或根池中创建引导签名文件。

    • 对于 ZFS 池 my-pool,请在 /my-pool/boot/grub/bootsign 目录中创建引导签名文件。


      #  touch   /my-pool/boot/grub/bootsign/user-sign
      
    • 对于 UFS 文件系统,请在要引导的根文件系统的 /boot/grub/bootsign 目录中创建引导签名文件。


      #  touch   /boot/grub/bootsign/user-sign
      

    注 –

    请确保您为引导签名选择的文件名是唯一的。不要使用系统生成的签名或在 Oracle Solaris 的多个实例中重复的用户签名。否则,可能会阻止系统引导,或者会导致错误的 Oracle Solaris 实例引导。


  3. 添加一个包含 findroot 命令的菜单项。

    1. 找到活动的 menu.lst 文件:


      # bootadm list-menu
      
    2. 使用文本编辑器编辑活动的 menu.lst 文件,添加以下项:


      title    User Solaris boot entry
      findroot  (user-sign, 3, c)
      kernel$   /platform/i86pc/multiboot
      module  /platform/i86pc/boot_archive

      在上一示例中,3 表示第 4 个 fdisk 分区(分区号从 0 开始)。c 表示 Solaris fdisk 分区内的片(片号从 a 开始)。

  4. 重新引导系统。

    新项会出现在 GRUB 菜单中,并且可以选择该项以引导指定的 Oracle Solaris OS 实例。