From: Oleg Solovyov Date: Fri, 11 May 2018 10:55:46 +0000 (+0300) Subject: grub-probe: Don't skip /dev/mapper/dm-* devices X-Git-Tag: grub-2.04-rc1~169 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d28b3bd266e1d935de5916860645ea8cabf2335;p=thirdparty%2Fgrub.git grub-probe: Don't skip /dev/mapper/dm-* devices This patch ensures that grub-probe will find the root device placed in /dev/mapper/dm-[0-9]+-.* e.g. device named /dev/mapper/dm-0-luks will be found and grub.cfg will be updated properly, enabling the system to boot. Signed-off-by: Oleg Solovyov Reviewed-by: Daniel Kiper --- diff --git a/grub-core/osdep/unix/getroot.c b/grub-core/osdep/unix/getroot.c index 4bf37b027..3046e22cc 100644 --- a/grub-core/osdep/unix/getroot.c +++ b/grub-core/osdep/unix/getroot.c @@ -428,8 +428,11 @@ grub_find_device (const char *dir, dev_t dev) { #ifdef __linux__ /* Skip device names like /dev/dm-0, which are short-hand aliases - to more descriptive device names, e.g. those under /dev/mapper */ - if (ent->d_name[0] == 'd' && + to more descriptive device names, e.g. those under /dev/mapper. + Also, don't skip devices which names start with dm-[0-9] in + directories below /dev, e.g. /dev/mapper/dm-0-luks. */ + if (strcmp (dir, "/dev") == 0 && + ent->d_name[0] == 'd' && ent->d_name[1] == 'm' && ent->d_name[2] == '-' && ent->d_name[3] >= '0' &&