System Administration Guide: Basic Administration
Previous Next

Using Fast Reboot on the x86 Platform (Task Map)

Task

Description

For Instructions

Initiate a fast reboot of the system.

Use the reboot command with -f option to initiate a fast reboot of the system.

x86: How to Initiate a Fast Reboot of the System

Use Fast Reboot to reboot to a specific UFS boot disk or a ZFS root pool.

The fast reboot capability can be used to reboot to a specific UFS boot disk or a specific ZFS root pool.

x86: Initiating a Fast Reboot to a Specific UFS Boot Disk or a ZFS Root Pool

Use Fast Reboot to initiate a reboot of a directly mounted root (/) disk or root dataset.

After mounting a root (/) disk or root dataset, you can initiate a fast reboot of the system.

x86: How to Initiate a Fast Reboot of a Directly Mounted Root Disk or Root Dataset

Initiate a fast reboot to an alternate BE.

Use the rebootcommand with the -f and -e options to fast reboot to an alternate BE.


Note - Because the -e option of the reboot command has dependencies on Solaris Live Upgrade, this option is not currently supported in the OpenSolaris 2008.11 release.


x86: Initiating a Fast Reboot to an Alternate Boot Environment

Initiate a fast reboot by directly specifying an alternate dataset.

If you are running the OpenSolaris 2008.11 release, you cannot use the reboot -f -e command to reboot to an alternate BE. Instead, use the reboot command with the just the -f option, directly specifying which dataset to boot.

x86: Initiating a Fast Reboot to an Alternate Boot Environment in the OpenSolaris 2008.11 OS

Facilitate a fast reboot of the system by using the uadmin command.

The uadmin command has been modified to support the Fast Reboot feature. You can facilitate a fast reboot by using this method.

x86: Facilitating a Fast Reboot by Using the uadmin Command

Change the behavior of the reboot command to make Fast Reboot the default.

Adding the /etc/fastreboot file to a system enables the Fast Reboot feature by default.

x86: Making Fast Reboot the Default Behavior of the reboot Command

Troubleshoot issues and conditions that might prevent the Fast Reboot feature from working.

Under certain conditions, the fast reboot capability does not work. In some of these situations, a workaround is available.

x86: Troubleshooting Conditions That Might Prevent Fast Reboot From Working

x86: Fast Reboot Implementation

The following are key components of the Fast Reboot implementation:

  • Two new options for the reboot command

    -f

    Initiates the fast reboot process, when used with the reboot command.

    -e

    Reboots the system to an alternate BE, when used in conjunction with the rebootcommand and the -f option.


    Note - The -e option cannot be used to fast reboot to an alternate BE in the OpenSolaris 2008.11 release. For instructions on rebooting to an alternate BE in this release, see x86: Initiating a Fast Reboot to an Alternate Boot Environment in the OpenSolaris 2008.11 OS.


  • New quiesce Function

    The drivers' implementation of this function enables the driver to quiesce a device, so that at completion of the function, the driver no longer generates interrupts or access memory.

    See the quiesce(9E) and dev_ops(9S) man pages.

  • New uadmin Function

    Fast Reboot also includes support for a new uadmin function, AD_FASTREBOOT. This function resets the system, enabling the reboot command to bypass both the BIOS and boot loader phases.

    For more information, see the uadmin(2)man page.

The following procedures and examples describe how to use the fast reboot capability on an x86 based system. For overview information, see the section, x86: Introducing Fast Reboot.

x86: How to Initiate a Fast Reboot of the System

This procedure describes how to use the reboot command with -f option to initiate a fast reboot of an x86 based system.

  1. Become superuser or assume an equivalent role.
  2. Initiate a fast reboot of the system:
    • To reboot to a new kernel, you would type:
      # reboot -f -- '/platform/i86pc/new‐kernel‐name/amd64/unix -k'
    • To initiate a fast reboot using boot arguments from the previous boot, you would type:
      # reboot -f

    Note - The boot archive is derived from the kernel argument. In the event of a failure in the fast reboot path, such as insufficient memory, the normal reset path is used.


Example 12-14 x86: Using Fast Reboot to Reboot a 64-Bit Kernel
# reboot -f -- '/platform/i86pc/kernel/amd64/unix'
Oct 21 15:06:35 tonyspizza reboot: initiated by ... on /dev/console
Oct 21 15:06:36 /usr/lib/snmp/snmpdx: received signal 15
Fast reboot.
syncing file systems... done
SunOS Release 5.11 Version onnv-gate:2008-10-20 64-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Hostname: tonyspizza
NIS domain name is lab.sfbay.sun.com
/dev/rdsk/c1d0s7 is clean
Reading ZFS config: done.
Example 12-15 x86: Using Fast Reboot Without Additional Boot Arguments

This example fast reboots a system using the boot arguments that were used for the previous boot.

# reboot -f
Oct 21 15:02:38 tonyspizza reboot: initiated by ... on /dev/console
Oct 21 15:02:38 tonyspizza rpcbind: rpcbind terminating on signal.
Oct 21 15:02:38 tonyspizza syslogd: going down on signal 15
Fast reboot.
syncing file systems... done
Loading kmdb...
SunOS Release 5.11 Version onnv-gate:2008-10-20 64-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Hostname: tonyspizza
NIS domain name is mpklab.sfbay.sun.com
/dev/rdsk/c1d0s7 is clean
Reading ZFS config: done.

x86: Initiating a Fast Reboot to a Specific UFS Boot Disk or a ZFS Root Pool

You can specify an alternate UFS boot disk in any of the following ways:

# reboot -f -- '/dev/dsk/c0t0s3'
# reboot -f -- '/dev/dsk/c0t0s3 -k'
# reboot -f -- '/dev/dsk/c0t0s3
# /platform/i86pc/mykernel/amd64/unix -k'

You can specify a ZFS root dataset in any of the following ways:

# reboot -f -- 'rpool/zfsbe1'
# reboot -f -- 'rpool/zfsbe2 -k'
# reboot -f -- 'rpool/zfsbe3 /platform/i86pc/mykernel/amd64/unix -k'

Note - When rebooting to a different root (/) disk or root dataset by using a mount point or a boot environment, be aware that no transient menu entry is added to the menu.lst file.


x86: How to Initiate a Fast Reboot of a Directly Mounted Root Disk or Root Dataset

You can use Fast Reboot to directly mount a root (/) disk or root dataset, then reboot to it:

  1. Become superuser or assume an equivalent role.
  2. Mount the root (/) disk.

    For example:

    # mount /dev/dsk/c1d0s0 /mnt
    • To mount a root dataset, type:
      # zfs mount rpool/dataset
  3. Reboot the mounted disk or mounted dataset.

    For example:

    # reboot -f -- '/mnt/platform/i86pc/kernel/amd64/unix'

x86: Initiating a Fast Reboot to an Alternate Boot Environment

You can optionally use the reboot command with the -f and -e options to specify an alternate BE.

# reboot -f -e alternate-be-name

Note - The -e option has dependencies on Solaris Live upgrade packages, in particular the lumount and luumount commands. Because Solaris Live Upgrade is not supported in the OpenSolaris release, you cannot use this option to specify an alternate BE. Instead, use the -f option by itself to directly specifying the alternate dataset. See x86: Initiating a Fast Reboot to an Alternate Boot Environment in the OpenSolaris 2008.11 OS.


Example 12-16 x86: Using Fast Reboot to Reboot to an Alternate Boot Environment

This example shows how to fast reboot to an alternate BE by using the reboot command with the -f and the-e options. Note that in this example, the bootadm list‐menu command is used to display a list of the bootable environments that are available on a system. A fast reboot of the s3 BE is then initiated.

# bootadm list-menu
The location for the active GRUB menu is: /boot/grub/menu.lst
default 0
timeout 10
0 Solaris Express Community Edition snv_82 X86
1 Solaris xVM
2 Solaris failsafe
3 s0
4 s0 Solaris xVM
5 s0 failsafe
6 s4
7 s4 Solaris xVM
8 s4 failsafe
9 s3
10 s3 Solaris xVM
11 s3 failsafe

# reboot -f -e s3

reboot: Halting 1 zone.
Oct 21 15:16:51 tonyspizza reboot: initiated by ... on /dev/console
reboot: Completing system halt.
Oct 21 15:16:57 tonyspizza syslogd: going down on signal 15
Fast reboot.
syncing file systems... done
SunOS Release 5.11 Version snv_99 64-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Configuring devices.
Hostname: tonyspizza
NIS domain name is lab.sfbay.sun.com
Loading smf(5) service descriptions: 2/2
/dev/rdsk/c1d0s7 is clean
Reading ZFS config: done.

x86: Initiating a Fast Reboot to an Alternate Boot Environment in the OpenSolaris 2008.11 OS

The -e option of the reboot command is not supported in the OpenSolaris 2008.11 release. To fast reboot to an alternate BE in this release, use the reboot -f command, directly specifying which dataset to boot. The following examples show how to fast reboot to an alternate BE by using this method.

For example to fast reboot to the zfsbe1 boot environment, you would type:

# reboot -f -- 'rpool/zfsbe1'

To fast reboot to the zfsbe3 boot environment, in 64-bit mode, with the kernel debugger enabled, you would type:

# reboot -f -- 'rpool/zfsbe3 /platform/i86pc/kernel/amd64/unix -k'

x86: Facilitating a Fast Reboot by Using the uadmin Command

To facilitate the use of the new -f option of the reboot command, the AD_FASTREBOOT function has been added to the current function list for the uadmin command. This function is recognized by commands that utilize these function numbers.

For example, to reset the system using the current boot arguments by using the fast reboot path, you would type:

# uadmin 2 8

Caution - Using the uadmin command to fast reboot a system does not update the boot archive or the menu.lst file.


For more information about this function, see the uadmin(1M) man page.

x86: Making Fast Reboot the Default Behavior of the reboot Command

To make a fast reboot the default behavior on your system, create a fastreboot file in the /etc directory.

# touch /etc/fastreboot

The addition of the fastreboot file on the system changes the default behavior of the reboot command, thereby eliminating the need to use the -f option to initiate a fast reboot.

To revert to the original behavior of the reboot command, remove the file.

# rm /etc/fastreboot

Note that removing this file does not remove fast reboot capability from the system.

x86: Troubleshooting Conditions That Might Prevent Fast Reboot From Working

The following are possible conditions under which the Fast Reboot feature might not work:

  • Driver does not implement the quiesce function

    If you attempt a fast reboot of a system with an unsupported driver, a message similar to the following is displayed:

    Sep 18 13:19:12 too-cool genunix: WARNING: nvidia has no quiesce()
    reboot: not all drivers have implemented quiesce(9E)

    If the graphics drivers are the only drivers that do not support the quiesce function, you can attempt to force a fast reboot by running the following commands:

    # echo "force_fastreboot/W 1" | mdb -kw
    # echo "set force_fastreboot = 1" >> /etc/system

    If the driver for the Network Interface Card (NIC) does not implement the quiesce function, you can try to unplumb the interface first, then attempt a fast reboot of the system.

    # ifconfig your-nic-interface unplumb
    # reboot -f
  • Insufficient memory

    If there is not enough memory on the system, below 1G (0x40000000) for building the page tables, or not enough free memory to load the new kernel and the boot archive, the fast reboot attempt fails with the following messages, then falls back to a regular reboot.

    Fastboot: Couldn't allocate size below PA 1G to do fast reboot
    Fastboot: Couldn't allocate size below PA 64G to do fast reboot
  • Unsupported environment

    Fast reboot functionality is not currently supported in the following environments:

    • Solaris xVM dom0 domains

    • Solaris xVM PV domU domains

    • Non‐global zones

Previous Next