The problem appears to be in the following UEFI structures:

typedef struct {

    UINT8 Type;       ///< 0x01 Hardware Device Path.

    ///< 0x02 ACPI Device Path.

    ///< 0x03 Messaging Device Path.

    ///< 0x04 Media Device Path.

    ///< 0x05 BIOS Boot Specification Device Path.

    ///< 0x7F End of Hardware Device Path.


    UINT8 SubType;    ///< Varies by Type

    ///< 0xFF End Entire Device Path, or

    ///< 0x01 End This Instance of a Device Path and start a new

    ///< Device Path.


    UINT8 Length[2];  ///< Specific Device Path data. Type and Sub-Type
define

    ///< type of data. Size of data is included in Length.


} EFI_DEVICE_PATH_PROTOCOL;


typedef struct {

    EFI_DEVICE_PATH_PROTOCOL        Header;

    ///

    /// Describes the entry in a partition table, starting with entry 1.

    /// Partition number zero represents the entire device. Valid

    /// partition numbers for a MBR partition are [1, 4]. Valid

    /// partition numbers for a GPT partition are [1,
NumberOfPartitionEntries].

    ///

    UINT32                          PartitionNumber;

    ///

    /// Starting LBA of the partition on the hard drive.

    ///

    UINT64                          PartitionStart;

    ///

    /// Size of the partition in units of Logical Blocks.

    ///

    UINT64                          PartitionSize;

    ///

    /// Signature unique to this partition:

    /// If SignatureType is 0, this field has to be initialized with 16
zeros.

    /// If SignatureType is 1, the MBR signature is stored in the first
4 bytes of this field.

    /// The other 12 bytes are initialized with zeros.

    /// If SignatureType is 2, this field contains a 16 byte signature.

    ///

    UINT8                           Signature[16];

    ///

    /// Partition Format: (Unused values reserved).

    /// 0x01 - PC-AT compatible legacy MBR.

    /// 0x02 - GUID Partition Table.

    ///

    UINT8                           MBRType;

    ///

    /// Type of Disk Signature: (Unused values reserved).

    /// 0x00 - No Disk Signature.

    /// 0x01 - 32-bit signature from address 0x1b8 of the type 0x01 MBR.

    /// 0x02 - GUID signature.

    ///

    UINT8                           SignatureType;

} HARDDRIVE_DEVICE_PATH;

It is our guess that HARDDRIVE_DEVICE_PATH is not packed in the Ubuntu source 
tree. Please confirm.
Thanks,
Abhishek

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1272664

Title:
  Installing UEFI boot entry on Hyper-V gen 2 corrupts VM configuration,
  making the VM unuseable

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/efibootmgr/+bug/1272664/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to