[Bug 1840697] Re: Ubuntu installer mishandling of previously existing EFI partitions

Jean-Francois Gratton 1840697 at bugs.launchpad.net
Wed Aug 21 01:19:05 UTC 2019


** Description changed:

  Issue seen on Ubuntu 19.04 (workstation); might present in previous
  versions ?
  
  Previous situation ("pre-bug") :
  
  /dev/sda = WDC disk 2TB
  /dev/sdb = SSD disk, 256GB
  boot loader in /dev/sda
  
  Ubuntu 19.04 was installed before Windows as I wanted it on the SSD
  drive for most of it; slow I-Os went on the WDC disk.
  
  disk layout:
    /dev/sda1 = Windows Recovery partition, 500MB
    /dev/sda2 = Windows EFI partition, 100MB
    /dev/sda3 = Windows NTFS OS + Data partition, 400G
    /dev/sda4 = Linux LVM2. remainder of disk
  
    /dev/sdb1 = ubuntu /boot partition, xfs, 512MB
    /dev/sdb2 = ubuntu /boot/efi, 350MB
    /dev/sdb3 = Linux LVM2, remainder of disk
  
  1. Ubuntu and Windows both boot just fine, Windows using /dev/sda2 as
  its EFI partition, Ubuntu using /dev/sdb2 for its EFI partition.
  
  2. For some reason I needed to re-install Ubuntu exactly where it was. I
  slapped my DVD in the reader, booted the installer, and started. At the
  partman section, I've left off everything Windows-related on /dev/sda,
  making sure that /dev/sda2 was left at "Do not use partition". As
  /dev/sd[ab]2 was already tagged as "EFI partition", and that I've left
  /dev/sda2 at "Do not use", I was assuming the installer would use
  /dev/sdb2 as /boot/efi.
  
  Expected result is as above. Actual result follows.
  
  3. End result: the installer leaves off /dev/sdb2 and overwrites
  /dev/sda2 even with a "Do not use partition flag". Subsequent boots
  would not see the Windows OS installed as its EFI partition had been
- overwritten by the installer.
+ overwritten by the installer. Looks like that the installer (or whatever
+ its subcomponent) grabs the first EFI partition it sees and uses it.
  
- 4. To fix:
+ 4. To fix (workaround):
    a=> mount -t vfat /dev/sdb2 /mnt && cd /boot/efi && tar cf - . | (cd /mnt ; tar xf -)
-   b=> cd / && umount /mnt
-   c=> find a win10 boot cd, go in repair mode, reinstall EFI code+files in /dev/sda2
-   d=> reboot in Ubuntu, os-prober && update-grub
+   b=> find a win10 boot cd, go in repair mode, reinstall EFI code+files in /dev/sda2
+   c=> reboot in Ubuntu, os-prober && update-grub
  
  Further observations:
-   Other installers (Fedora's anaconda to name one) would let you specify the mountpoint of an EFI partition (yes, it should always be /boot/efi). This is not foolproof, I agree, but at least it'd leave no place to doubt on setups similar as mine as which EFI partition Ubuntu is directed to use.
+   Other installers (Fedora's anaconda, to name one) would let you specify the mountpoint of an EFI partition (yes, it should always be /boot/efi). This is not foolproof, I agree, but at least it'd leave no place to doubt on setups similar as mine on which EFI partition Ubuntu is directed to use.
  
  --Jeff

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

Title:
  Ubuntu installer mishandling of previously existing EFI partitions

Status in ubiquity package in Ubuntu:
  New

Bug description:
  Issue seen on Ubuntu 19.04 (workstation); might present in previous
  versions ?

  Previous situation ("pre-bug") :

  /dev/sda = WDC disk 2TB
  /dev/sdb = SSD disk, 256GB
  boot loader in /dev/sda

  Ubuntu 19.04 was installed before Windows as I wanted it on the SSD
  drive for most of it; slow I-Os went on the WDC disk.

  disk layout:
    /dev/sda1 = Windows Recovery partition, 500MB
    /dev/sda2 = Windows EFI partition, 100MB
    /dev/sda3 = Windows NTFS OS + Data partition, 400G
    /dev/sda4 = Linux LVM2. remainder of disk

    /dev/sdb1 = ubuntu /boot partition, xfs, 512MB
    /dev/sdb2 = ubuntu /boot/efi, 350MB
    /dev/sdb3 = Linux LVM2, remainder of disk

  1. Ubuntu and Windows both boot just fine, Windows using /dev/sda2 as
  its EFI partition, Ubuntu using /dev/sdb2 for its EFI partition.

  2. For some reason I needed to re-install Ubuntu exactly where it was.
  I slapped my DVD in the reader, booted the installer, and started. At
  the partman section, I've left off everything Windows-related on
  /dev/sda, making sure that /dev/sda2 was left at "Do not use
  partition". As /dev/sd[ab]2 was already tagged as "EFI partition", and
  that I've left /dev/sda2 at "Do not use", I was assuming the installer
  would use /dev/sdb2 as /boot/efi.

  Expected result is as above. Actual result follows.

  3. End result: the installer leaves off /dev/sdb2 and overwrites
  /dev/sda2 even with a "Do not use partition flag". Subsequent boots
  would not see the Windows OS installed as its EFI partition had been
  overwritten by the installer. Looks like that the installer (or
  whatever its subcomponent) grabs the first EFI partition it sees and
  uses it.

  4. To fix (workaround):
    a=> mount -t vfat /dev/sdb2 /mnt && cd /boot/efi && tar cf - . | (cd /mnt ; tar xf -)
    b=> find a win10 boot cd, go in repair mode, reinstall EFI code+files in /dev/sda2
    c=> reboot in Ubuntu, os-prober && update-grub

  Further observations:
    Other installers (Fedora's anaconda, to name one) would let you specify the mountpoint of an EFI partition (yes, it should always be /boot/efi). This is not foolproof, I agree, but at least it'd leave no place to doubt on setups similar as mine on which EFI partition Ubuntu is directed to use.

  --Jeff

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



More information about the foundations-bugs mailing list