From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1MlKNx-00078c-0W for mharc-grub-devel@gnu.org; Wed, 09 Sep 2009 06:26:45 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MlKNu-00077T-24 for grub-devel@gnu.org; Wed, 09 Sep 2009 06:26:42 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MlKNo-00076g-NP for grub-devel@gnu.org; Wed, 09 Sep 2009 06:26:40 -0400 Received: from [199.232.76.173] (port=48002 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MlKNo-00076Z-Fi for grub-devel@gnu.org; Wed, 09 Sep 2009 06:26:36 -0400 Received: from moutng.kundenserver.de ([212.227.17.10]:56916) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MlKNn-0001ZT-8e for grub-devel@gnu.org; Wed, 09 Sep 2009 06:26:36 -0400 Received: from [85.180.42.84] (e180042084.adsl.alicedsl.de [85.180.42.84]) by mrelayeu.kundenserver.de (node=mrbap2) with ESMTP (Nemesis) id 0MKt72-1MlKNk3Zae-000DPN; Wed, 09 Sep 2009 12:26:33 +0200 From: Felix Zielcke To: The development of GRUB 2 In-Reply-To: <4AA77CFD.3000806@redhat.com> References: <4AA77CFD.3000806@redhat.com> Content-Type: text/plain Date: Wed, 09 Sep 2009 12:26:32 +0200 Message-Id: <1252491992.2998.11.camel@fz.local> Mime-Version: 1.0 X-Mailer: Evolution 2.27.91 Content-Transfer-Encoding: 7bit X-Provags-ID: V01U2FsdGVkX18a3bfUjv3uiI10d1TxJSiodJxo4O7CpDuiknC nhirXmX3fgbwKdnuJOqlA1MzPLWcRiV1r7nqkYTsh0TP9n9V3p Iw0hK9Gal6xqvtOfLF1yzFEktEcH48N X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. Subject: Re: Changes in device-mapper and LVM2 that can affect grub's functionality X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Sep 2009 10:26:42 -0000 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