Merge request was done here:

https://code.launchpad.net/~rafaeldtinoco/ubuntu/+source/grub2/+git/grub2/+merge/373792

And the following PPA is available:

https://launchpad.net/~rafaeldtinoco/+archive/ubuntu/lp1838525

** Description changed:

+ [Impact]
+ 
+  * Any Eoan installation that depends on latest installer will face this
+ issue when final user chooses LVM full disk partitioning type.
+ 
+  * Grub won't be able to install due to bad bootdevice variable in the
+ installer. It will try to install grub to "/dev/mapper" and will fail.
+ The default boot option will also be "/dev/mapper".
+ 
+ [Test Case]
+ 
+  * Download netboot files from current installer (vmlinuz and initrd
+ files).
+ 
+  * Create a KVM guest running from these files, with a NIC connected to
+ the internet.
+ 
+  * Initiate a network installation inside the KVM guest, choosing the
+ Entire Disk - LVM partitioning option.
+ 
+  * Wait installation to finish and to start the grub-install phase. It
+ will ask where to install grub, having, as default, "/dev/mapper". By
+ default, it might simply try to grub-install /dev/mapper, which will
+ also fail.
+ 
+  * That happens because /dev/disk/by-id/ has an unexpected (by the
+ installer) symlink added by lvm2 package that grub-installer (used by
+ debian-installer) does not expect (when using grub-mkdevice command).
+ 
+ [Regression Potential]
+ 
+ There are 3 alternatives to fix this and I have chosen the one I believe
+ has the smaller potential for any type of regression. Comment #30
+ describes what caused the regression and these 3 alternatives:
+ 
+ (1) To revert this change for current release, since this rule was added
+ to "make navigation a bit easier using PV UUIDs", as the commit says. We
+ would worry about installer changes in the next release.
+ 
+ (2) Another possibility would be to change the logic inside "grub-
+ mkdevicemap.c: make_device_map()->grub_util_iterate_devices()" to ignore
+ all symlinks from /dev/disk/by-id/ containing lvm-pv-uuid-*. We would
+ not have to worry about this in the next release if using debian-
+ installer.
+ 
+ (3) Another option would be to change grub-installer package/logic.
+ Unfortunately, a few days before the full freeze, I don't think messing
+ with the installer would be a good option to avoid regressions
+ (potential regression item would grow in significance).
+ 
+ => I'm choosing (2) because ubuntu foundations already faced a similar
+ situation, when grub-mkdevicemap.c file was removed from grub2 code and
+ they re-added it by using a quilt patch, assuming it was the easiest and
+ better to maintain. I'm doing something similar, patching the patch that
+ creates grub-mkdevicemap.c file again to ignore /dev/disk/by-id/lvm-pv-
+ uuid-* files (like it already does for other symlinks, actually).
+ 
+ [Other Info]
+  
  Comment #26 has the TL;DR version of the problem.
  
https://bugs.launchpad.net/ubuntu/+source/debian-installer/+bug/1838525/comments/26
  
  [Original Description]
  
  The Eoan debian-installer ISO fails to install GRUB on LVM installs with
  virtio storage, as it runs grub-install with /dev/mapper as a target (a
  directory), even if instructed to target a device.
  
  The following steps to reproduce have been prepared running the 20190730
  build, but this has been broken since about June 18, 2019. Steps to
  reproduce:
  
  $ md5sum eoan-server-amd64.iso
  f591e30485e5f0b5117f6c116e538c42  eoan-server-amd64.iso
  $ qemu-img create -f raw disk1.img 8G
  Formatting 'disk1.img', fmt=raw size=8589934592
  $ kvm -m 1024 -boot d -cdrom eoan-server-amd64.iso -drive 
file=disk1.img,if=virtio
  
  Proceed with all the defaults. In the "Partition disk" step select
  "Guided - use entire disk and set up LVM". Go ahead accepting the
  defaults. At the "Install the GRUB boot loader" step select "/dev/vda"
  as the target device. The installer will actually run `grub-install
  --force /dev/mapper` and fail after a while. The wrong command is
  visible both in the d-i screen and by running `ps` on a different
  console.
  
  Full installer syslog: http://paste.ubuntu.com/p/qtZy86dTp6/
  
  It's interesting how this doesn't happen when not using virtio. If from
  the commands above the "if=virtio" option is dropped then everything
  works as expected. In this case the target block device is called
  /dev/sda instead of /dev/vda.

** Description changed:

  [Impact]
  
-  * Any Eoan installation that depends on latest installer will face this
+  * Any Eoan installation that depends on latest installer will face this
  issue when final user chooses LVM full disk partitioning type.
  
-  * Grub won't be able to install due to bad bootdevice variable in the
+  * Grub won't be able to install due to bad bootdevice variable in the
  installer. It will try to install grub to "/dev/mapper" and will fail.
  The default boot option will also be "/dev/mapper".
  
  [Test Case]
  
-  * Download netboot files from current installer (vmlinuz and initrd
+  * Download netboot files from current installer (vmlinuz and initrd
  files).
  
-  * Create a KVM guest running from these files, with a NIC connected to
+  * Create a KVM guest running from these files, with a NIC connected to
  the internet.
  
-  * Initiate a network installation inside the KVM guest, choosing the
+  * Initiate a network installation inside the KVM guest, choosing the
  Entire Disk - LVM partitioning option.
  
-  * Wait installation to finish and to start the grub-install phase. It
+  * Wait installation to finish and to start the grub-install phase. It
  will ask where to install grub, having, as default, "/dev/mapper". By
  default, it might simply try to grub-install /dev/mapper, which will
  also fail.
  
-  * That happens because /dev/disk/by-id/ has an unexpected (by the
+  * That happens because /dev/disk/by-id/ has an unexpected (by the
  installer) symlink added by lvm2 package that grub-installer (used by
  debian-installer) does not expect (when using grub-mkdevice command).
+ 
+ [Simplified Test Case]
+ 
+  * To add a PV + VG + LVM in a KVM guest to an empty virtio disk, for
+ example, and to check if the command:
+ 
+ grub-mkdevice --no-floppy -m -
+ 
+ lists /dev/vdX1 in front of /dev/vdX. This will be a sign that:
+ 
+ /dev/disk/by-id/*lvm* file exists and will be enough to confuse
+ installer.
  
  [Regression Potential]
  
  There are 3 alternatives to fix this and I have chosen the one I believe
  has the smaller potential for any type of regression. Comment #30
  describes what caused the regression and these 3 alternatives:
  
  (1) To revert this change for current release, since this rule was added
  to "make navigation a bit easier using PV UUIDs", as the commit says. We
  would worry about installer changes in the next release.
  
  (2) Another possibility would be to change the logic inside "grub-
  mkdevicemap.c: make_device_map()->grub_util_iterate_devices()" to ignore
  all symlinks from /dev/disk/by-id/ containing lvm-pv-uuid-*. We would
  not have to worry about this in the next release if using debian-
  installer.
  
  (3) Another option would be to change grub-installer package/logic.
  Unfortunately, a few days before the full freeze, I don't think messing
  with the installer would be a good option to avoid regressions
  (potential regression item would grow in significance).
  
  => I'm choosing (2) because ubuntu foundations already faced a similar
  situation, when grub-mkdevicemap.c file was removed from grub2 code and
  they re-added it by using a quilt patch, assuming it was the easiest and
  better to maintain. I'm doing something similar, patching the patch that
  creates grub-mkdevicemap.c file again to ignore /dev/disk/by-id/lvm-pv-
  uuid-* files (like it already does for other symlinks, actually).
  
  [Other Info]
-  
+ 
  Comment #26 has the TL;DR version of the problem.
  
https://bugs.launchpad.net/ubuntu/+source/debian-installer/+bug/1838525/comments/26
  
  [Original Description]
  
  The Eoan debian-installer ISO fails to install GRUB on LVM installs with
  virtio storage, as it runs grub-install with /dev/mapper as a target (a
  directory), even if instructed to target a device.
  
  The following steps to reproduce have been prepared running the 20190730
  build, but this has been broken since about June 18, 2019. Steps to
  reproduce:
  
  $ md5sum eoan-server-amd64.iso
  f591e30485e5f0b5117f6c116e538c42  eoan-server-amd64.iso
  $ qemu-img create -f raw disk1.img 8G
  Formatting 'disk1.img', fmt=raw size=8589934592
  $ kvm -m 1024 -boot d -cdrom eoan-server-amd64.iso -drive 
file=disk1.img,if=virtio
  
  Proceed with all the defaults. In the "Partition disk" step select
  "Guided - use entire disk and set up LVM". Go ahead accepting the
  defaults. At the "Install the GRUB boot loader" step select "/dev/vda"
  as the target device. The installer will actually run `grub-install
  --force /dev/mapper` and fail after a while. The wrong command is
  visible both in the d-i screen and by running `ps` on a different
  console.
  
  Full installer syslog: http://paste.ubuntu.com/p/qtZy86dTp6/
  
  It's interesting how this doesn't happen when not using virtio. If from
  the commands above the "if=virtio" option is dropped then everything
  works as expected. In this case the target block device is called
  /dev/sda instead of /dev/vda.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to lvm2 in Ubuntu.
https://bugs.launchpad.net/bugs/1838525

Title:
  LVM setup fails to install grub on virtio storage

Status in debian-installer package in Ubuntu:
  In Progress
Status in grub2 package in Ubuntu:
  In Progress
Status in lvm2 package in Ubuntu:
  In Progress
Status in debian-installer package in Debian:
  New

Bug description:
  [Impact]

   * Any Eoan installation that depends on latest installer will face
  this issue when final user chooses LVM full disk partitioning type.

   * Grub won't be able to install due to bad bootdevice variable in the
  installer. It will try to install grub to "/dev/mapper" and will fail.
  The default boot option will also be "/dev/mapper".

  [Test Case]

   * Download netboot files from current installer (vmlinuz and initrd
  files).

   * Create a KVM guest running from these files, with a NIC connected
  to the internet.

   * Initiate a network installation inside the KVM guest, choosing the
  Entire Disk - LVM partitioning option.

   * Wait installation to finish and to start the grub-install phase. It
  will ask where to install grub, having, as default, "/dev/mapper". By
  default, it might simply try to grub-install /dev/mapper, which will
  also fail.

   * That happens because /dev/disk/by-id/ has an unexpected (by the
  installer) symlink added by lvm2 package that grub-installer (used by
  debian-installer) does not expect (when using grub-mkdevice command).

  [Simplified Test Case]

   * To add a PV + VG + LVM in a KVM guest to an empty virtio disk, for
  example, and to check if the command:

  grub-mkdevice --no-floppy -m -

  lists /dev/vdX1 in front of /dev/vdX. This will be a sign that:

  /dev/disk/by-id/*lvm* file exists and will be enough to confuse
  installer.

  [Regression Potential]

  There are 3 alternatives to fix this and I have chosen the one I
  believe has the smaller potential for any type of regression. Comment
  #30 describes what caused the regression and these 3 alternatives:

  (1) To revert this change for current release, since this rule was
  added to "make navigation a bit easier using PV UUIDs", as the commit
  says. We would worry about installer changes in the next release.

  (2) Another possibility would be to change the logic inside "grub-
  mkdevicemap.c: make_device_map()->grub_util_iterate_devices()" to
  ignore all symlinks from /dev/disk/by-id/ containing lvm-pv-uuid-*. We
  would not have to worry about this in the next release if using
  debian-installer.

  (3) Another option would be to change grub-installer package/logic.
  Unfortunately, a few days before the full freeze, I don't think
  messing with the installer would be a good option to avoid regressions
  (potential regression item would grow in significance).

  => I'm choosing (2) because ubuntu foundations already faced a similar
  situation, when grub-mkdevicemap.c file was removed from grub2 code
  and they re-added it by using a quilt patch, assuming it was the
  easiest and better to maintain. I'm doing something similar, patching
  the patch that creates grub-mkdevicemap.c file again to ignore
  /dev/disk/by-id/lvm-pv-uuid-* files (like it already does for other
  symlinks, actually).

  [Other Info]

  Comment #26 has the TL;DR version of the problem.
  
https://bugs.launchpad.net/ubuntu/+source/debian-installer/+bug/1838525/comments/26

  [Original Description]

  The Eoan debian-installer ISO fails to install GRUB on LVM installs
  with virtio storage, as it runs grub-install with /dev/mapper as a
  target (a directory), even if instructed to target a device.

  The following steps to reproduce have been prepared running the
  20190730 build, but this has been broken since about June 18, 2019.
  Steps to reproduce:

  $ md5sum eoan-server-amd64.iso
  f591e30485e5f0b5117f6c116e538c42  eoan-server-amd64.iso
  $ qemu-img create -f raw disk1.img 8G
  Formatting 'disk1.img', fmt=raw size=8589934592
  $ kvm -m 1024 -boot d -cdrom eoan-server-amd64.iso -drive 
file=disk1.img,if=virtio

  Proceed with all the defaults. In the "Partition disk" step select
  "Guided - use entire disk and set up LVM". Go ahead accepting the
  defaults. At the "Install the GRUB boot loader" step select "/dev/vda"
  as the target device. The installer will actually run `grub-install
  --force /dev/mapper` and fail after a while. The wrong command is
  visible both in the d-i screen and by running `ps` on a different
  console.

  Full installer syslog: http://paste.ubuntu.com/p/qtZy86dTp6/

  It's interesting how this doesn't happen when not using virtio. If
  from the commands above the "if=virtio" option is dropped then
  everything works as expected. In this case the target block device is
  called /dev/sda instead of /dev/vda.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/debian-installer/+bug/1838525/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to