Bug 150569

Summary: Yast bootloader update adds resume=/dev/md0 when raid autorun is done after resume
Product: [openSUSE] openSUSE 10.3 Reporter: Michael Beirne <beirne>
Component: YaST2Assignee: E-mail List <kernel-maintainers>
Status: RESOLVED FIXED QA Contact: Klaus Kämpf <kkaempf>
Severity: Enhancement    
Priority: P4 - Low CC: geinig, hare
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: SuSE Linux 10.0   
Whiteboard:
Found By: System Test Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Michael Beirne 2006-02-13 19:23:42 UTC
When setting up a mirrored root/swap system for reliability, Yast adds the resume option to the GRUB menu.lst line even though the raid autorun process is done later and the device is not available at that time.

To reproduce:

Set up RAID devices for the root and swap area and then try to get Yast to install the GRUB boot loader on one of the raid disks.

Suspend/Resume cannot be used from the swap metadisk. It might be able to be used from one of the underlying mirror devices though.
Comment 1 Olaf Dabrunz 2006-06-02 16:22:27 UTC
This is not supported (yet). Need to insert this into the feature process. 
Comment 2 Olaf Dabrunz 2007-05-10 17:37:12 UTC
Status: need to support resume from soft-RAID.  It does not make sense to use the underlying disk devices instead:  Let's assume the disks are set up as RAID1. Each underlying hard disk would need a different resume option. E.g., if the RAID swap device consists of /dev/sda1 and /dev/sdb1, the menu.lst on /dev/sda would need to have /dev/sda1 in the resume option, and the menu.lst on /dev/sdb would need to have /dev/sdb1 in the resume option.  But the menu.lst on both disks are mirrored by the RAID1, and thus they cannot be configured differently.  This problem can only be solved if RAID can be started before a resume starts.  Assigning to kernel-maintainers. Also putting mkinitrd maintainers to Cc.  Also moving to 10.3. 
Comment 3 Guido Einig 2007-08-05 07:01:58 UTC
I've had the same problem with my HW-RAID (OpenSuse 10.2). After s2disk and restarting I got the following message: "resume device /dev/mapper/isw_bcjcfejhjc_Volume0_part6 not found (ignoring)".
I made the following changes to /sbin/mkinitrd an created an new initrd:

I moved the following text block:

if [ -n "$need_dmraid" ] ; then
cat_linuxrc <<-EOF
|/sbin/dmraid -a y -p
|/sbin/udevsettle --timeout=\$udev_timeout
EOF
fi

Old position: line 2658, behind:

if [ -n "$need_mdadm" ]; then
...
fi

cat_linuxrc <<-'EOF'
|# Wait for udev to settle
|/sbin/udevsettle --timeout=$udev_timeout
|# Check for a resume device
|udev_discover_resume
EOF

if [ -n "$need_mdadm" ]; then
...
fi

New position: line 2596, before above block.

Now RAID-partitions get searched before the accessing the resume device. I don't know if it's the best solution, but it works for me.
Comment 4 Alexander Graf 2007-09-05 11:08:48 UTC
The whole initrd system was changed in 10.3, so device initialization is guaranteed to come before resume.

Could you please try this with a current beta again and see if it works?
Comment 5 Stephan Kulow 2007-10-01 08:50:18 UTC
ok, assuming it's fixed in 10.3. Please open a new bug (for the new system) if it happens with 10.3