osdep/devmapper/getroot: Have devmapper recognize LUKS2
Changes UUID comparisons so that LUKS1 and LUKS2 are both recognized as being LUKS cryptodisks. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz> Tested-by: Glenn Washburn <development@efficientek.com> Reviewed-by: Patrick Steinhardt <ps@pks.im> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
efc9c363b2
commit
9022a48dd9
@ -138,7 +138,8 @@ grub_util_get_dm_abstraction (const char *os_dev)
|
|||||||
grub_free (uuid);
|
grub_free (uuid);
|
||||||
return GRUB_DEV_ABSTRACTION_LVM;
|
return GRUB_DEV_ABSTRACTION_LVM;
|
||||||
}
|
}
|
||||||
if (strncmp (uuid, "CRYPT-LUKS1-", 12) == 0)
|
if (strncmp (uuid, "CRYPT-LUKS1-", sizeof ("CRYPT-LUKS1-") - 1) == 0
|
||||||
|
|| strncmp (uuid, "CRYPT-LUKS2-", sizeof ("CRYPT-LUKS2-") - 1) == 0)
|
||||||
{
|
{
|
||||||
grub_free (uuid);
|
grub_free (uuid);
|
||||||
return GRUB_DEV_ABSTRACTION_LUKS;
|
return GRUB_DEV_ABSTRACTION_LUKS;
|
||||||
@ -179,7 +180,9 @@ grub_util_pull_devmapper (const char *os_dev)
|
|||||||
grub_util_pull_device (subdev);
|
grub_util_pull_device (subdev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (uuid && strncmp (uuid, "CRYPT-LUKS1-", sizeof ("CRYPT-LUKS1-") - 1) == 0
|
if (uuid
|
||||||
|
&& (strncmp (uuid, "CRYPT-LUKS1-", sizeof ("CRYPT-LUKS1-") - 1) == 0
|
||||||
|
|| strncmp (uuid, "CRYPT-LUKS2-", sizeof ("CRYPT-LUKS2-") - 1) == 0)
|
||||||
&& lastsubdev)
|
&& lastsubdev)
|
||||||
{
|
{
|
||||||
char *grdev = grub_util_get_grub_dev (lastsubdev);
|
char *grdev = grub_util_get_grub_dev (lastsubdev);
|
||||||
@ -253,11 +256,11 @@ grub_util_get_devmapper_grub_dev (const char *os_dev)
|
|||||||
{
|
{
|
||||||
char *dash;
|
char *dash;
|
||||||
|
|
||||||
dash = grub_strchr (uuid + sizeof ("CRYPT-LUKS1-") - 1, '-');
|
dash = grub_strchr (uuid + sizeof ("CRYPT-LUKS*-") - 1, '-');
|
||||||
if (dash)
|
if (dash)
|
||||||
*dash = 0;
|
*dash = 0;
|
||||||
grub_dev = grub_xasprintf ("cryptouuid/%s",
|
grub_dev = grub_xasprintf ("cryptouuid/%s",
|
||||||
uuid + sizeof ("CRYPT-LUKS1-") - 1);
|
uuid + sizeof ("CRYPT-LUKS*-") - 1);
|
||||||
grub_free (uuid);
|
grub_free (uuid);
|
||||||
return grub_dev;
|
return grub_dev;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user