В Wed, 11 Feb 2015 02:15:19 -0500 Felix Miata <mrmazda@earthlink.net> пишет:
Andrei Borzenkov composed on 2015-02-11 08:27 (UTC+0300):
Tue, 10 Feb 2015 17:01:32 -0500 Felix Miata composed:
Apparently I'm not Googling the correct terms to find an answer to this. On this system I have had an internal all-in-1 USB device reader since I first built the box. 11.0 was the first installed on it, followed by 11.2, 11.4, 13.1, 13.2 & TW. In all of 11.0-13.1, HDs have been sda & sdb. 13.2 & TW make them sde & sdf, reserving a-d for USB devices. I have similar internal readers in other installations of 13.1, 13.2 & TW that automatically put the HDs on sda or sda & sdb. Is there something I can exclude from the initrd or add to grub stanza to force HDs to be assigned device names before USB storage in 13.2 & TW? BrokenModules=usb_storage maybe? Something else?
man dracut.conf
omit_drivers+=" <kernel modules> " Specify a space-separated list of kernel modules not to add to the initramfs. The kernel modules have to be specified without the ".ko" suffix.
OK, so the answer looks like that it is controlled by kernel module rather than something else. Thank you for that. I already have other modules in dracut's omit_drivers, but didn't know that was the route to get where I wanted to go. Your answer also fails to provide any clues as to the mystery of why this only started happening with 13.2 on this one machine and not on others.
Because driver loading sequence is more or less random. Because on this specific system hardware that you do not want to see is identified before hardware that you want to see. Because mkinitrd was using different code to load drivers (or different rules to include drivers in initrd) so now driver for hardware you do not want to see is present in initrd and loaded. Again and again - kernel names are assigned in order of discovery. There is no way to make them consistent short of forcing specific driver loading order (and even then changes in firmware may result in difference discovery order among similar devices). This will probably require you to create custom dracut module that runs before udev is started.
It also fails to solve my problem of understanding how to get dracut to build only one kernel's initrd.
dracut /boot/your-initrd 3.16.6-2-desktop mkinitrd -k vmlinuz-3.16.6-2-desktop -i /boot/your-initrd should work as well.
The only way I've ever been able to count on getting the result I want is to install a kernel. The dracut man page is like most man pages for powerful utilities, short of sufficient examples to explain more than a small subset of what the man page words mean to a non-programmer who learns by example rather than a catalog of options.
While I won't argue in general, in this specific case I find manual page quite clear: SYNOPSIS dracut [OPTION...] [<image> [<kernel version>]] DESCRIPTION Create an initramfs <image> for the kernel with the version <kernel version>. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org