Am Mittwoch, den 09.09.2009, 12:01 +0200 schrieb Peter Rajnoha: > Hi, > > (I'm speaking for the LVM/DM team) > > we have integrated official udev support for device-mapper/LVM > devices lately which is now part of upstream LVM release (however > it's still turned off in default configuration). This includes > our own udev rules responsible for creating /dev nodes and > associated symlinks. > > After discussing this with the udev team, we decided to create > DM nodes directly in /dev (with the kernel name of that particular > DM device, which is "dm-X", X being a number for now). The /dev/mapper > contains symlinks to these nodes then. This seems to be a standard > solution from udev point of view which is considered to be correct. > We would like to comply with this standard. > > As for the LVM subsystem, the symlinks stay like in the old non-udev > approach -- /dev/VG_NAME subdir containing symlinks with LV names that > point to appropriate DM devices. The change here is only in their > target -- they point to /dev/dm-X devices now, not /dev/mapper ones. > > However, we have to consider that not all configurations will have > this udev support turned on, therefore we still keep the old code > responsible for direct creation of the nodes/symlinks (this feature > can be turned on/off by particular configuration option). > > Also, if we detect that udev daemon is not running or node/symlink > creation has failed for any reason, we fallback to the old way > of node/symlink creation. > > To sum it up briefly, this means we have two layouts that should > be supported: > > 1. old layout -- nodes /dev/mapper/DM_NAME, > symlinks /dev/VG_NAME/LV_NAME > > 2. new (udev) layout -- nodes /dev/dm-X, > symlinks /dev/mapper/DM_NAME > symlinks /dev/VG_NAME/LV_NAME > > > > Such layout breaks grub-probe because of the symlinks used afaik > (particularly "find_root_device" function that is used in this > situation). > > My question is if supporting this would be a problem from grub's > point of view and if appropriate corrections could be made. > > Also, I've spotted that you use some hardcodings in your code, > particularly when filtering out /dev/dm-[0-9] devices > (e.g. in "find_root_device" fn). The thing is that this number > part of the DM name could be changed in the future, so such > assumptions should not be made as well. > > I'd like to open a discussion here and any comments are welcome > so finally we could end up with a working solution. >
What's the point in having the /dev/dm-X devices at all? Does anything use them? Currently all symlinks are ignored. If we use the target of the /dev/mapper/* symlinks, i.e. a /dev/dm-X device this would at least with the default Debian initrd not work and I doubt the responding persons for this will change this ever. Even root=UUID= isn't working for LVM devices, because only the root LV is activated and not all inside the initrd. If we would use the symlink itself for root= it could break if there were symlinks which aren't inside the initrd too. I personally don't like this change at all. Why not just remove the dm-X devices and make the /dev/mapper/ ones the only and real ones? Maybe the udev maintainers just prefer cryptic numbers for every real device and only accept symlinks for descriptive ones. -- Felix Zielcke Proud Debian Maintainer _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel