* grub-core/disk/diskfilter.c: Handle non-md UUIDs.
* grub-core/disk/lvm.c: Add LVM UUIDs. * util/getroot.c: Use LVM UUIDs whenever possible.
This commit is contained in:
parent
53c6b7d658
commit
63653cfdae
5 changed files with 136 additions and 50 deletions
|
@ -387,6 +387,29 @@ grub_lvm_detect (grub_disk_t disk,
|
|||
*optr++ = '-';
|
||||
}
|
||||
*optr++ = 0;
|
||||
lv->idname = grub_malloc (sizeof ("lvmid/")
|
||||
+ 2 * GRUB_LVM_ID_STRLEN + 1);
|
||||
if (!lv->idname)
|
||||
goto lvs_fail;
|
||||
grub_memcpy (lv->idname, "lvmid/",
|
||||
sizeof ("lvmid/") - 1);
|
||||
grub_memcpy (lv->idname + sizeof ("lvmid/") - 1,
|
||||
vg_id, GRUB_LVM_ID_STRLEN);
|
||||
lv->idname[sizeof ("lvmid/") - 1 + GRUB_LVM_ID_STRLEN] = '/';
|
||||
|
||||
p = grub_strstr (q, "id = \"");
|
||||
if (p == NULL)
|
||||
{
|
||||
#ifdef GRUB_UTIL
|
||||
grub_util_info ("couldn't find ID\n");
|
||||
#endif
|
||||
goto lvs_fail;
|
||||
}
|
||||
p += sizeof ("id = \"") - 1;
|
||||
grub_memcpy (lv->idname + sizeof ("lvmid/") - 1
|
||||
+ GRUB_LVM_ID_STRLEN + 1,
|
||||
p, GRUB_LVM_ID_STRLEN);
|
||||
lv->idname[sizeof ("lvmid/") - 1 + 2 * GRUB_LVM_ID_STRLEN + 1] = '\0';
|
||||
}
|
||||
|
||||
lv->size = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue