Devices time out at boot time but appear later

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

Environment

SUSE Linux Enterprise Server 15 SP2
SUSE Linux Enterprise Server 15 SP1
SUSE Linux Enterprise Server 15
SUSE Linux Enterprise Server 12 SP5
SUSE Linux Enterprise Server 12 SP4
SUSE Linux Enterprise Server 12 SP3
SUSE Linux Enterprise Server 12 SP2
SUSE Linux Enterprise Server 12 SP1
SUSE Linux Enterprise Server 12

Situation

The server drops to emergency mode at boot time and prompts to run journalctl -xb.

journalctl -xb shows the following types of errors:

Dependency failed for /export/data
Dependency failed for Local File Systems
Timed out waiting for device dev-mapper-export\x2ddata.device.


After logging into emergency mode, the device for /export/data mounts just fine and systemctl default continues and reaches the default target.
So the device is eventually found, but does not get found in time during the boot process.

Resolution

Add a device timeout tuning option (x-systemd.device-timeout) to /etc/fstab to give the device more time to appear.
For each of the devices in /etc/fstab more timeout is needed, add the device timeout option in the options field.
This option is parsed by the systemd-fstab-generator unit.

For example, change:

UUID=2ed453ee-c197-4e76-860b-d8ecf5540576  /export/data  ext3  acl,user_xattr  1 2

to:

UUID=2ed453ee-c197-4e76-860b-d8ecf5540576  /export/data  ext3  acl,user_xattr,x-systemd.device-timeout=300s  1 2

The systemd-fstab-generator(8) unit creates a mount unit for each entry in the /etc/fstab.
It will increase the time systemd waits for the device with this option.
In this case a 300 second / 5 minute timeout was added.

Cause

The disk devices take longer than usual to appear to the operating system, exceeding the default timeout value.

Additional Information

For debugging or testing purposes, the kernel parameter "systemd.default_timeout_start_sec=" can be set.
Once the timeout is determined, it can be specified in /etc/fstab with the x-systemd.device-timeout= option for the individual device.

Please note:
The parameter "systemd.default_timeout_start_sec=" overwrites the default start job timeout DefaultTimeoutStartSec= at boot.

It affects all units, ie not only the mount units generated from /etc/fstab.


Method to add the Kernel option (for debugging only):

Edit the /etc/default/grub and change:
GRUB_CMDLINE_LINUX=""
to this:
GRUB_CMDLINE_LINUX="systemd.default_timeout_start_sec=300s"
Run grub2-mkconfig -o /boot/grub2/grub.cfg and reboot.

This option will set a 5 minute timeout on all units, including mount units.

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:7018491
  • Creation Date: 13-Jan-2017
  • Modified Date:30-Sep-2021
    • 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.

Join Our Community

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.


SUSE Customer Support Quick Reference Guide SUSE Technical Support Handbook Update Advisories
Support FAQ

Open an Incident

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

Go to Customer Center