Solaris のシステム管理 (基本編)

bootadm コマンドを使用してブートアーカイブを管理する

/sbin/bootadm コマンドを使用すると、次の作業を行えます。

このコマンドの構文は次のとおりです。


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

bootadm コマンドの詳細は、bootadm(1M) のマニュアルページを参照してください。

Procedurebootadm コマンドを使ってブートアーカイブを手動で更新する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. ブートアーカイブを更新するには、次のように入力します。


    # bootadm update-archive
    
    bootadm

    システム上のブートアーカイブを管理します。

    update-archive

    必要に応じて、現在のブートアーカイブを更新します。SPARC と x86 の両方のシステムに適用されます。

    • 代替ルートのブートアーカイブを更新するには、次のように入力します。


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

      update-archive サブコマンドに適用する代替ルートパスを指定します。


      注 –

      -R オプションを使用して非大域ゾーンのルート (/) ファイルシステムを参照してはいけません。そのようにすると、大域ゾーンのファイルシステムが損傷したり、大域ゾーンのセキュリティーが低下したり、非大域ゾーンのファイルシステムが損傷したりする場合があります。zones(5) のマニュアルページを参照してください。


  3. システムを再起動します。


    # reboot
    

ProcedureSolaris ボリュームマネージャー 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. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. ブートアーカイブに含まれるファイルとディレクトリを一覧表示するには、次のように入力します。


    # bootadm list-archive
    
    list-archive

    ブートアーカイブに含まれるファイルとディレクトリを一覧表示します。SPARC と x86 の両方のシステムに適用されます。

Procedurex86: アクティブな GRUB メニューを検出し、現在のメニューエントリを一覧表示する方法

次の手順に従って、アクティブな GRUB メニューの場所を調べ、現在の GRUB メニューエントリを一覧表示します。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「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. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「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 メニューを、前の例に表示されているメニューエントリのいずれかに切り替える方法を示しています。選択したメニューエントリは、Linux (メニューエントリ 2) です。


# bootadm set-menu default=2

参照

各 GRUB 実装における menu.lst ファイルについては、「x86: サポートされる GRUB のバージョン」を参照してください。