From: Andrei Borzenkov Date: Sat, 19 Dec 2015 08:32:26 +0000 (+0300) Subject: windows: correct LBA in generated EFI HDD media paths X-Git-Tag: 2.02-beta3~153 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a9399f2e1e5819fdd9bd2a4d35d32420dd6cc679;p=thirdparty%2Fgrub.git windows: correct LBA in generated EFI HDD media paths GRUB keeps partition offset and size in units of 512B sectors. Media paths are defined in terms of LBA which are presumed to match HDD sector size. This is probably cosmetic (EFI requires that partition is searched by GUID) and still incorrect if GPT was created using different logical block size. But current code is obviously wrong and new has better chances to be correct. --- diff --git a/grub-core/osdep/windows/platform.c b/grub-core/osdep/windows/platform.c index d217efe17..912269191 100644 --- a/grub-core/osdep/windows/platform.c +++ b/grub-core/osdep/windows/platform.c @@ -370,9 +370,9 @@ grub_install_register_efi (grub_device_t efidir_grub_dev, } hddp->partition_start = grub_partition_get_start (efidir_grub_dev->disk->partition) - << (efidir_grub_dev->disk->log_sector_size - GRUB_DISK_SECTOR_BITS); + >> (efidir_grub_dev->disk->log_sector_size - GRUB_DISK_SECTOR_BITS); hddp->partition_size = grub_disk_get_size (efidir_grub_dev->disk) - << (efidir_grub_dev->disk->log_sector_size - GRUB_DISK_SECTOR_BITS); + >> (efidir_grub_dev->disk->log_sector_size - GRUB_DISK_SECTOR_BITS); pathptr = hddp + 1; filep = pathptr;