mkinitrd doesn't include the correct bindings_file

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

Environment

SUSE Linux Enterprise Server 10 Service Pack 2

Situation

The Device Mapper Multipath (DM-MP) module provides the multipathing capability for Linux. Device Mapper Multipath detects every path for a multipathed device as a separate SCSI device. Multiple paths can also be configured in /etc/multipath.conf , the configuration file for the multipath daemon.

A multipath device can be identified by either its WWID  (World Wide Identifier) or an alias. The default name used in multipathing is the ID of the logical unit as found in the /dev/disk/by-id directory. Because device node names in the form of /dev/sdn and /dev/dm-n can change on reboot, referring to multipath devices by their ID is preferred.

If the user_friendly_names option is enabled in /etc/multipath.conf, you can specify your own device names to use via the alias directive in the /etc/multipath.conf file. Alias names override the ID and /dev/disk/by-id/_ID_. You can optionally use the /dev/mapper/mpathN device name because this name is aliased to the devices ID. These mapping are stored in the file /var/lib/multipath/bindings.


But if /var is on a separate partition from root, device mapper will not be able to find the bindings file. So the bindings_file option was added to /etc/multipath.conf. When the option user_friendly_names  is set, the option bindings_file allows to set the full pathname of the bindings file. As a result the file can be placed on another partition than root.

However, mkinitrd still copies an old /var/lib/multipath/bindings to the initrd, but the file is unused due to the bindings_file setting.

When root is aliased in the bindings file, /var is on a separate partition, and bindings_file is specified in the /etc/multipath.conf the root device specified in the command line (root=/dev/mapper/mpathN-partN will report:
Waiting for device /dev/mapper/mpathN-partN to appear:
.
not found -- exiting to /bin/sh
On a side note: SUSE recommends that you do not use aliases for the root device, because the ability to seamlessly switch off multipathing via the kernel command line is lost because the device name differs.

Resolution

The problem is the hard coded /var/lib/multipath/bindings file in mkinitrd. A patch has been written and verified to fix the problem. The patch ensures that the user defined bindings_file is copied into the initrd and not the hard coded /var/lib/multipath/bindings file.

The mkinitrd maintenance update: mkinitrd-1.2-106.86.3 released August 2009, includes the patch. Please update the package to resolve the issue.

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:7003710
  • Creation Date: 30-Jun-2009
  • Modified Date:24-Feb-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