]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
grub-probe: Don't skip /dev/mapper/dm-* devices
authorOleg Solovyov <mcpain@altlinux.org>
Fri, 11 May 2018 10:55:46 +0000 (13:55 +0300)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 29 May 2018 13:55:27 +0000 (15:55 +0200)
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 <mcpain@altlinux.org>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/osdep/unix/getroot.c

index 4bf37b027be660a14994fb316f08dd478490c4e2..3046e22cc012d1012add87931a018043e3ecc714 100644 (file)
@@ -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' &&