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>
This commit is contained in:
parent
c0eabc5382
commit
8ffa3b651d
|
@ -508,11 +508,12 @@ static int gpt_mknew_pmbr(struct fdisk_context *cxt)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
pmbr = (struct gpt_legacy_mbr *) cxt->firstsector;
|
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->signature = cpu_to_le16(MSDOS_MBR_SIGNATURE);
|
||||||
pmbr->partition_record[0].os_type = EFI_PMBR_OSTYPE;
|
pmbr->partition_record[0].os_type = EFI_PMBR_OSTYPE;
|
||||||
pmbr->partition_record[0].start_sector = 1;
|
pmbr->partition_record[0].start_sector = 2;
|
||||||
pmbr->partition_record[0].end_head = 0xFE;
|
pmbr->partition_record[0].end_head = 0xFF;
|
||||||
pmbr->partition_record[0].end_sector = 0xFF;
|
pmbr->partition_record[0].end_sector = 0xFF;
|
||||||
pmbr->partition_record[0].end_track = 0xFF;
|
pmbr->partition_record[0].end_track = 0xFF;
|
||||||
pmbr->partition_record[0].starting_lba = cpu_to_le32(1);
|
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->signature = cpu_to_le16(MSDOS_MBR_SIGNATURE);
|
||||||
pmbr->partition_record[0].os_type = EFI_PMBR_OSTYPE;
|
pmbr->partition_record[0].os_type = EFI_PMBR_OSTYPE;
|
||||||
pmbr->partition_record[0].start_sector = 1;
|
pmbr->partition_record[0].start_sector = 2;
|
||||||
pmbr->partition_record[0].end_head = 0xFE;
|
pmbr->partition_record[0].end_head = 0xFF;
|
||||||
pmbr->partition_record[0].end_sector = 0xFF;
|
pmbr->partition_record[0].end_sector = 0xFF;
|
||||||
pmbr->partition_record[0].end_track = 0xFF;
|
pmbr->partition_record[0].end_track = 0xFF;
|
||||||
pmbr->partition_record[0].starting_lba = cpu_to_le32(1);
|
pmbr->partition_record[0].starting_lba = cpu_to_le32(1);
|
||||||
|
|
Loading…
Reference in New Issue