08.05.2016 09:05, Andrei Borzenkov пишет:
>>
>> +#ifdef GRUB_UTIL
>> +int
>> +grub_util_is_lvm(grub_disk_t disk)
>> +{
>> + struct grub_diskfilter_pv_id id;
>> + struct grub_diskfilter_vg *vg;
>> + grub_disk_addr_t start_sector;
>> + vg = grub_lvm_detect(disk, &id, &start_sector);
>> + if (! vg)
>> + return 0;
>> + /* don't free the vg, it's held by grub_diskfilter_vg_register */
>> + grub_free(id.uuid);
>> + return 1;
>> +}
>> +
>
> This has side effect of adding duplicate VG definitions; this may later
> confuse grub. What about just checking array->driver for LVM? Go through
> registered arrays, find disk match and check array driver. See
> scan_disk_partition_iter () for example.
>
Which is basically call grub_diskfilter_get_pv_from_disk() and check
vg_out->driver.
_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel