Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#26790 - [mkinitcpio] System unbootable if rootdevice is a mdarray named as a persistent device notation

Attached to Project: Arch Linux
Opened by M Carreira Silva (mcsilva) - Tuesday, 08 November 2011, 00:07 GMT
Last edited by Dave Reisner (falconindy) - Tuesday, 08 November 2011, 00:45 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

After creating a two disk mirror with mdadm, and the root partition being a md raid array using the notation "/dev/disk/by-uuid/xxxx", the system is unbootable.
Boot stops in a initramfs shell, after being unable to determine the root device.
Instead of a "persistent block device name", if I use a /dev/mdX name notation, the system can boot with no errors.

This is the output:

------
:: Starting udevd...
done.
:: Running Hook [udev]
:: Triggering uevents...done.
:: Running Hook [mdadm]
mdadm: /dev/md0 has been started with 2 drives.
mdadm: /dev/md1 has been started with 2 drives.
mdadm: /dev/md2 has been started with 2 drives.
Waiting 10 seconds for device /dev/disk/by-uuid/71b29fcf-fe48-48bc-8140-ab447c29af06 ...
Root device '/dev/disk/by-uuid/71b29fcf-fe48-48bc-8140-ab447c29af06' doesn't exist. Attempting to create it.
ERROR: Unable to determine major/minor number of root device '/dev/disk/by-uuid/71b29fcf-fe48-48bc-8140-ab447c29af06'.
You are being dropped to a recovery shell
Type 'exit' to try and continue booting
sh: can't access tty: job control turned off
[ramfs/]#
------

Inside the shell, if I do a 'ls -l /dev/disk/by-id' and a 'ls -l /dev/disk/by-uuid', I can't see raid devices like md0, or md1, but only sda1 or sda2...
'cat /proc/mdstat' shows that raid devices are running.

If I edit /boot/grub/menu.lst, and change the notation of root device:
kernel /vmlinuz-linux root=/dev/disk/by-uuid/71b29fcf-fe48-48bc-8140-ab447c29af06 ro
to this line
kernel /vmlinuz-linux root=/dev/md1 ro

the system boots perfectly.

It seems that inside initramfs, udev is not creating the persistent name devices as it should, when mdadm starts the arrays.

Additional info:
* package version(s): mkinitcpio-0.7.5-1. kernel 3.0, udev-174-1


Steps to reproduce:

1 - Create a mirror system with device names /dev/md0, /dev/md1, /dev/mdX...
- Configure grub and run mkinitcpio after including mdadm in mkinitcpio.conf
- Reboot the system
The system boots perfectly.

2 - Edit /etc/grub/menu.lst and change "root=/dev/md?" to the notation /dev/disk/by-uuid/xxxxx.
- Save menu.lst and reboot.
The system is unbootable, falling in a ramfs shell, because it does not recognize the device.

This task depends upon

Closed by  Dave Reisner (falconindy)
Tuesday, 08 November 2011, 00:45 GMT
Reason for closing:  Not a bug
Additional comments about closing:  Working as intended.
Comment by Dave Reisner (falconindy) - Tuesday, 08 November 2011, 00:20 GMT
You're using the wrong hook if you expect udev symlinks to be generated. Use the mdadm_udev hook.
Comment by M Carreira Silva (mcsilva) - Tuesday, 08 November 2011, 00:44 GMT
Thanks! It worked.
I reread mkinitcpio ArchWiki and didn't notice mdadm_udev existed.

Loading...