diff options
author | Karel Zak | 2017-07-14 12:48:18 +0200 |
---|---|---|
committer | Karel Zak | 2017-07-14 12:48:18 +0200 |
commit | 8ffa3b651d7e74acba8f1d831b7f68fdb3c66aae (patch) | |
tree | a246701c098a6bd9976bc320bad23571f4405e86 | |
parent | libfdisk: remove whitespaces (diff) | |
download | kernel-qcow2-util-linux-8ffa3b651d7e74acba8f1d831b7f68fdb3c66aae.tar.gz kernel-qcow2-util-linux-8ffa3b651d7e74acba8f1d831b7f68fdb3c66aae.tar.xz kernel-qcow2-util-linux-8ffa3b651d7e74acba8f1d831b7f68fdb3c66aae.zip |
libfdisk: make fdisk compliant to UEFI/GPT specification on PMBR
The PMBR partition record should be StartingCHS=0x002000 (0/0/2)
and EndingCHS=0xFFFFFF (1023/255/63)
Addresses: https://github.com/karelzak/util-linux/issues/485
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | libfdisk/src/gpt.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c index 40d0912ec..4904b4dea 100644 --- a/libfdisk/src/gpt.c +++ b/libfdisk/src/gpt.c @@ -508,11 +508,12 @@ static int gpt_mknew_pmbr(struct fdisk_context *cxt) return rc; pmbr = (struct gpt_legacy_mbr *) cxt->firstsector; + memset(pmbr->partition_record, 0, sizeof(pmbr->partition_record)); pmbr->signature = cpu_to_le16(MSDOS_MBR_SIGNATURE); pmbr->partition_record[0].os_type = EFI_PMBR_OSTYPE; - pmbr->partition_record[0].start_sector = 1; - pmbr->partition_record[0].end_head = 0xFE; + pmbr->partition_record[0].start_sector = 2; + pmbr->partition_record[0].end_head = 0xFF; pmbr->partition_record[0].end_sector = 0xFF; pmbr->partition_record[0].end_track = 0xFF; pmbr->partition_record[0].starting_lba = cpu_to_le32(1); @@ -1937,8 +1938,8 @@ static int gpt_write_pmbr(struct fdisk_context *cxt) pmbr->signature = cpu_to_le16(MSDOS_MBR_SIGNATURE); pmbr->partition_record[0].os_type = EFI_PMBR_OSTYPE; - pmbr->partition_record[0].start_sector = 1; - pmbr->partition_record[0].end_head = 0xFE; + pmbr->partition_record[0].start_sector = 2; + pmbr->partition_record[0].end_head = 0xFF; pmbr->partition_record[0].end_sector = 0xFF; pmbr->partition_record[0].end_track = 0xFF; pmbr->partition_record[0].starting_lba = cpu_to_le32(1); |