New default in SLES/SLED 10 SP1: mount "by Device ID"

  • 3580082
  • 01-Aug-2007
  • 30-Apr-2012

Environment


Novell SUSE Linux Enterprise Desktop 10 Service Pack 1
Novell SUSE Linux Enterprise Server 10 Service Pack 1
Novell ZENworks 10 Configuration Management

Situation

When installing a SLES10 SP1 system from scratch, the partitions are mounted "by Device ID".  An example of the resulting /etc/fstab entries looks like the following:
/dev/disk/by-id/ata-TOSHIBA_MK4019GAXB_23ID4883T-part6 /     ext3  acl,user_xattr  1 1
/dev/disk/by-id/ata-TOSHIBA_MK4019GAXB_23ID4883T-part1 swap swap defaults 0 0
The former default was mounting by "Device Name" (example: /dev/sda1, /dev/dasda1).

Mounting devices by "by Device ID" has the advantage that device names are persistent.  However there can be a problem when cloning disks, e.g. by using ZENworks Configuration Management 10 or disk-level copying tools, such as the native Linux dd command, z/VM's DDR, FLASHCOPY, etc.  Because the ID is unique, the boot process of the cloned system fails.  The error message would look similar to the following:
Waiting for device  /dev/disk/by-id/ata-TOSHIBA_MK4019GAXB_23ID4883T-part6 to appear:
..................................... not found
--exiting to /bin/sh

Resolution

There are two possible ways to solve the problem:

* Perform a new installation of your "Gold Master" system.
  1. Start the SP1 installation, select "New installation". 
  2. When you get to the "Installation Summary" screen, select "Partitioning", then "Base Partition setup on this proposal."  For mainframe systems, simply select “Partitioning.”
  3. In this dialogue, for every partition that is defined (or will be defined), the method of mounting has to be changed the following way:
    • Select the partition, select "edit", then "Fstab Options".
      • For non-mainframe systems, select "Device name", then twice "Ok".
      • For mainframe systems, select “Device Path”, then twice “Ok”.
    • Continue with the next partition.
  4. When done, choose "Finish" and continue with the installation.
* Change the existing installation:
    1. Boot into the system which you want to clone, I.e. your “Gold Master”.
    2. Call up YaST2 ->System ->Partitioner.  For every partition change the mount option to "Device name", as described above.
    3. For non-mainframe systems:
      • Call up YaST2 ->System ->Boot Loader.
      • For every boot menu entry change the root device.
      • Reboot the system to see if it boots properly.  If so, the system should be ready for cloning.
      • In you would rather make the above changes manually instead of using YaST, edit the files /etc/fstab and /boot/grub/menu.lst with a text editor of your choice (you have to be root).  Replace all entries like root=/dev/disk/by-id/[partition] with root=/dev/Xda[number].  If you are unclear about the existing partitions, call "fdisk -l".
    4. For mainframe systems, the Boot Loader module isn't shown, although it is functional.
      • Type "yast bootloader", or "yast2 bootloader" for the graphical version.
      • For every boot menu entry change the root device to match what was put into /etc/fstab by YaST Partitioner.
      • Reboot the system to see if it boots properly.  If so, the system should be ready for cloning.
      • If you would rather make the above changes manually instead of using YaST, edit the files /etc/fstab, and /etc/zipl.conf with a text editor of your choice.  You must be root to do this.  Replace all entries such as root=/dev/disk/by-id/[partition] with root=/dev/disk/by-path/[partition]. If you are unsure about the existing partitions, look at the directory entries in /dev/disk/by-path via the “ls -l” command.
        • If you do make these changes manually, once you have completed editing /etc/fstab and /etc/zipl.conf, you must also manually run mkinitrd, and zipl.  Failure to do so is likely to result in an unbootable system.

      Related documentation