[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Changes in device-mapper and LVM2 that can affect grub's functionali
Re: Changes in device-mapper and LVM2 that can affect grub's functionality
Wed, 09 Sep 2009 12:26:32 +0200
Am Mittwoch, den 09.09.2009, 12:01 +0200 schrieb Peter Rajnoha:
> (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
> 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.
Proud Debian Maintainer