Bug 979269

Summary: kernel parameter root= is ignored
Product: [Fedora] Fedora Reporter: Felix Miata <mrmazda>
Component: dracutAssignee: dracut-maint
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 19CC: dracut-maint, harald, jonathan
Target Milestone: ---Keywords: Regression
Target Release: ---   
Hardware: i686   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-08-20 12:57:30 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
/run/initramfs/sosreport.txt none

Description Felix Miata 2013-06-28 06:35:50 UTC
Created attachment 766427 [details]
/run/initramfs/sosreport.txt

To reproduce:
1-clone F19 / partition to another partition
2-assign new UUIDs to the clone and cloned partitions
3-assign unique labels to clone and cloned partitions
4-adjust fstabs using either root=LABEL=<label> or root=/dev/sdaX to match new partitioning
5-set bootloader cmdlines to either root=LABEL=<label> or root=/dev/sdaX
6-try to boot either clone or cloned partition

Actual behavior:
1-dracut-initqueue[99]: Warning: Could not boot
2-dracut-initqueue[99]: Warning: /dev/disk/by-uuid/<UUID> does not exist
3-emergency shell entered

Expected behavior:
1-/ partition found and mounted as directed by cmdline boot= specification
2-uneventful init

Comments:
A-/dev/disk/ is fully populated
B-all partitions represented by /dev/sdaX names
C-lsinitrd output excerpts:
etc/systemd/system/initrd.target.requires/dev-disk-by\x2duuid-dbb42d8b\x2d530c\x2d41a3\x2dba2c\x2d974f458af8d1.device
etc/systemd/system/initrd.target.requires/dev-disk-by\x2duuid-a0de673b\x2d6312\x2d4c5e\x2dafee\x2da85b5504f8cf.device
usr/lib/dracut/hooks/initqueue/finished/devexists-\x2fdev\x2fdisk\x2fby-uuid\x2fa0de673b-6312-4c5e-afee-a85b5504f8cf.sh
usr/lib/dracut/hooks/initqueue/finished/devexists-\x2fdev\x2fdisk\x2fby-uuid\x2fdbb42d8b-530c-41a3-ba2c-974f458af8d1.sh

Comment 1 Harald Hoyer 2013-06-28 14:58:06 UTC
https://fedoraproject.org/wiki/Features/DracutHostOnly

If you change your machine or partitions or significant hardware, you might have to boot with the "Rescue" boot entry and execute "dracut --regenerate-all". If you want your initramfs to be hardware independent, install the "dracut-nohostonly" rpm package. If you don't want rescue images at all (like in virtual machines), install the "dracut-norescue" rpm package.

Comment 2 Felix Miata 2013-06-28 19:09:03 UTC
Here's what set up the failure leading to filing this:
1-Bug 974467 prevented a fresh install of F19 from which to convert to Rawhide.
2-All my systems are for all practical purposes multiboot (most have more than 4 operating systems installed, many more than a dozen, most including DOS and/or Windows and/or OS/2).
3-None of my systems need Grub2 features lacking in Grub Legacy, so in keeping with KISS as much as practical, and wishing to keep space required for / filesystems to a minimum, with few exceptions, I disallow installation of Grub2.
4-When the existing F19 installation was made, I didn't know about any hidden syslinux installation option. Maybe it didn't yet exist.
5-I installed F19 selecting the no bootloader option.
6-I made the clone.
7-The Grub Legacy I installed and maintain manually, usually uses root=LABEL=<label> syntax for each stanza, sometimes uses root=<devicename> syntax, and never uses root=<uuid> syntax.
8-The installed Grub uses the standard 8.3-compatible Grub Legacy menu configuration file: menu.lst. I failed to symlink menu.lst to grub.conf, so Grubby never created a stanza utilizing the rescue kernel and initrd.
9-I botched my initial attempt to use the rescue kernel and initrd.

(In reply to Harald Hoyer from comment #1)
> https://fedoraproject.org/wiki/Features/DracutHostOnly
 
> If you change your machine or partitions or significant hardware, you might
> have to boot with the "Rescue" boot entry and execute "dracut
> --regenerate-all".

On successful boot using rescue kernel and initrd

  dracut --regenerate-all

failed to create new images, indicating --force would be required to overwrite existing.

The string "regenerate" is missing from output of 'dracut --help'.

Both clone source and target have been successfully booted from regenerated images.

> If you want your initramfs to be hardware independent,
> install the "dracut-nohostonly" rpm package.

While good to know, I'm not currently interested in hardware independence, only respect for valid cmdline parameter(s). (see e.g. first paragraph at https://fedoraproject.org/wiki/Dracut/Options#Dracut_kernel_command_line_parameters, which explicitly lists as examples root=/dev/hda1 and root=LABEL=rootPart)

Comment 3 Harald Hoyer 2013-08-20 12:57:30 UTC
dracut-032 supports:

$ man dracut:

       --persistent-policy <policy>
           Use <policy> to address disks and partitions.  <policy> can be any
           directory name found in /dev/disk. E.g. "by-uuid", "by-label"

$ man dracut.conf

       persistent_policy="<policy>"
           Use <policy> to address disks and partitions.  <policy> can be any
           directory name found in /dev/disk. E.g. "by-uuid", "by-label"

Comment 4 Felix Miata 2013-08-20 13:59:34 UTC
As is typical of man pages, comment 3 includes no example that might explain how comment 3 would solve the problem reported. What does any policy have to do with obeying a traditional root= cmdline option? How would one go about testing the efficacy of this purported "solution"?