[Bug 1272664] Re: Installing UEFI boot entry on Hyper-V gen 2 corrupts VM configuration, making the VM unuseable

Abhishek Gupta abgupta at microsoft.com
Fri Mar 7 02:57:33 UTC 2014


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
Foundations Bugs, which is subscribed to efibootmgr in Ubuntu.
https://bugs.launchpad.net/bugs/1272664

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

Status in “efibootmgr” package in Ubuntu:
  Confirmed

Bug description:
  Installing Ubuntu on a generation 2 Hyper-V VM corrupts the
  configuration of said VM, so the VM cannot be loaded by the VM manager
  any more and the VMs settings are no longer accessable.

  I narrowed the cause of the bug down to the creation of the boot
  loader entry in the VMs UEFI.

  Steps to repoduce:
  * Create a new generation 2 VM in Hyper-V
  * Use a Alpha 2 (or newer) image of 14.04 to install (X-)Ubuntu (Kernel 3.13 or newer is required for the generation 2)
  * After the successful installation try to access the VMs settings menu -> No longer accessaible, Hyper-V returns an error
  * Check the Hyper-V Manager -> The corrupted VM is no longer in the list of VMs.

  Additional it can be confirmed afterwards by doing:
  * Create a new generation 2 VM using the same virtual hard drive file (*.vhdx) used before.
  * Boot into the live session.
  * Create the UEFI boot entry again
  -> VM is again corrupted and shows the same symptoms as above.

  This bug breaks Ubuntu on Hyper-V generation 2. That is a serious
  issue, as the generation 2 offers a lot of improvements over the
  generation 1.

  ProblemType: Bug
  DistroRelease: Ubuntu 14.04
  Package: grub-efi-amd64-signed 1.27+2.00-22
  ProcVersionSignature: Ubuntu 3.13.0-5.20-generic 3.13.0
  Uname: Linux 3.13.0-5-generic x86_64
  ApportVersion: 2.13.1-0ubuntu1
  Architecture: amd64
  CasperVersion: 1.336ubuntu1
  Date: Sat Jan 25 12:25:12 2014
  LiveMediaBuild: Xubuntu 14.04 LTS "Trusty Tahr" - Alpha amd64 (20140121.1)
  ProcEnviron:
   LANGUAGE=en_US
   TERM=xterm
   PATH=(custom, no user)
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: grub2-signed
  UpgradeStatus: No upgrade log present (probably fresh install)

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



More information about the foundations-bugs mailing list