SUSE Support

Here When You Need Us

During shutdown or reboot system will hang.

This document (7009779) is provided subject to the disclaimer at the end of this document.

Environment

SUSE Linux Enterprise Server 15
SUSE Linux Enterprise Server 12
SUSE Linux Enterprise Server 11
SUSE Linux Enterprise Desktop 12
SUSE Linux Enterprise Desktop 11
The problem can occur with or without a Support Pack installed.


Situation

During a shutdown or reboot the system will shutdown appropriately but at the point where it should power off or begin the reboot it will hang.  The power must be manually turned off or cycled to boot the system back up.

Resolution

The kernel has a "reboot" parameter that will generally fix the problem.  Each of the options can be tested on bootup of the system by adding the parameter to the "Boot Options" in the GRUB menu. 

Here is a list of all the options:

 

For SLES11

The reboot= options are all listed in the following file (if you have the kernel source installed): 

/usr/src/linux/arch/x86/kernel/reboot.c

warm =  Don’t set the cold reboot flag
cold = Set the cold reboot flag
bios = Reboot by jumping through the BIOS (only for X86_32)
smp = Reboot by executing reset on BSP or other CPU (only for X86_32)
triple = Force a triple fault (init)
kbd = Use the keyboard controller. cold reset (this is the default)
acpi = Use the RESET_REG in the FADT
efi = Use efi reset_system runtime service
pci = Use the so-called “PCI reset register”, CF9
force = Avoid anything that could hang.

 

For SLES12 / SLES15

The reboot= options are all listed in the following file (if you have the kernel source installed):

/usr/src/linux/Documentation/x86/x86_64/boot-options.txt:
or:
/usr/src/linux/Documentation/x86/x86_64/boot-options.rst:

   reboot=b[ios] | t[riple] | k[bd] | a[cpi] | e[fi] [, [w]arm | [c]old]
   bios   Use the CPU reboot vector for warm reset
   warm   Don't set the cold reboot flag
   cold   Set the cold reboot flag
   triple Force a triple fault (init)
   kbd    Use the keyboard controller. cold reset (default)
   acpi   Use the ACPI RESET_REG in the FADT. If ACPI is not configured or the
          ACPI reset does not work, the reboot path attempts the reset using
          the keyboard controller.
   efi    Use efi reset_system runtime service. If EFI is not configured or the
          EFI reset does not work, the reboot path attempts the reset using
          the keyboard controller.

   Using warm reset will be much faster especially on big memory
   systems because the BIOS will not go through the memory check.
   Disadvantage is that not all hardware will be completely reinitialized
   on reboot so there may be boot problems on some systems.

   reboot=force

   Don't stop other CPUs on reboot. This can make reboot more reliable
   in some cases.



 

Most of the time the problem can be fixed by using one of the following two parameters:

reboot=bios
reboot=acpi

Try these first then move on to the others if needed.

Each time you boot up with a new parameter you can verify that it was really used in the kernel load line by entering this command:

cat /proc/cmdline

This will return the options the kernel was loaded with and would look something like this:

root=/dev/disk/by-id/ata-WDC_WD3200BEKT-75KA9T0_WD-WXA1A80E1055-part5 resume=/dev/disk/by-id/ata-WDC_WD3200BEKT-75KA9T0_WD-WXA1A80E1055-part3 splash=silent vga=0x314 reboot=bios

Just look for the "reboot=" parameter and make sure it is appropriate.

Once the parameter is found that works for the system it can be added to the grub menu so it will be included on every boot.  Here are the steps:

Load YaST and take the selection for System--> Boot Loader.

Highlight the default selection (the one with the check mark in the first column) and click the Edit button.

In the entry titled "Optional Kernel Command Line Parameter"  add your new parameter to the end of the line.  Click OK to save the new setting.  Back on the Boot Loader Settings window click OK again and reboot the system to test it out.

Additional Information

In the following file (if you have the kernel source installed):

/usr/src/linux/arch/x86/kernel/reboot.c

In addition, you can see in this file that there are specific settings for this parameter applied for certain models of Dell, HP, and others to work around BIOS issues.  Of course, the exceptions are not complete so manually changing this parameter will be required for some systems.

Disclaimer

This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.

  • Document ID:7009779
  • Creation Date: 21-Nov-2011
  • Modified Date:10-May-2023
    • SUSE Linux Enterprise Desktop
    • SUSE Linux Enterprise Server

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com

SUSE Support Forums

Get your questions answered by experienced Sys Ops or interact with other SUSE community experts.

Support Resources

Learn how to get the most from the technical support you receive with your SUSE Subscription, Premium Support, Academic Program, or Partner Program.

Open an Incident

Open an incident with SUSE Technical Support, manage your subscriptions, download patches, or manage user access.