Activity log for bug #1891721

Date Who What changed Old value New value Message
2020-08-14 23:19:52 Dawid Wróbel bug added bug
2020-08-14 23:20:45 Dawid Wróbel description I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition UUID to mount it and that didn't change, so there's no reason why the script should fail. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it detected the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the following happens in /usr/lib/grub/grub-multi-install (which is part of grub-common package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition UUID to mount it and that didn't change, so there's no reason why the script should fail. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it detected the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the following happens in /usr/lib/grub/grub-multi-install (which is part of grub-common 2.04-1ubuntu26.2 package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt
2020-08-14 23:21:11 Dawid Wróbel affects grub2-signed (Ubuntu) grub2 (Ubuntu)
2020-08-14 23:22:14 Dawid Wróbel description I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition UUID to mount it and that didn't change, so there's no reason why the script should fail. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it detected the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the following happens in /usr/lib/grub/grub-multi-install (which is part of grub-common 2.04-1ubuntu26.2 package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition' UUID to address it and that didn't change during the migration, so there's no reason why the script should fail. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it detected the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the following happens in /usr/lib/grub/grub-multi-install (which is part of grub-common 2.04-1ubuntu26.2 package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt
2020-08-14 23:22:21 Dawid Wróbel description I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition' UUID to address it and that didn't change during the migration, so there's no reason why the script should fail. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it detected the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the following happens in /usr/lib/grub/grub-multi-install (which is part of grub-common 2.04-1ubuntu26.2 package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition' UUID to address it and that didn't change during the migration, so there's no reason why the script should be failing. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it detected the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the following happens in /usr/lib/grub/grub-multi-install (which is part of grub-common 2.04-1ubuntu26.2 package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt
2020-08-14 23:22:47 Dawid Wróbel description I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition' UUID to address it and that didn't change during the migration, so there's no reason why the script should be failing. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it detected the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the following happens in /usr/lib/grub/grub-multi-install (which is part of grub-common 2.04-1ubuntu26.2 package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition' UUID to address it and that didn't change during the migration, so there's no reason why the script should be failing. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it recored the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the following happens in /usr/lib/grub/grub-multi-install (which is part of grub-common 2.04-1ubuntu26.2 package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt
2020-08-14 23:23:14 Dawid Wróbel description I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition' UUID to address it and that didn't change during the migration, so there's no reason why the script should be failing. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it recored the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the following happens in /usr/lib/grub/grub-multi-install (which is part of grub-common 2.04-1ubuntu26.2 package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt I recently moved my Ubuntu installation from Parallels to Virtualbox, which naturally resulted in updated disks' UUIDs. Normally that should be a problem as Ubuntu should autodetect such change and act accordingly. However, upon upgrading grub-efi-amd64-signed, dpkg kept failing with: Setting up grub-efi-amd64-signed (1.142.4+2.04-1ubuntu26.2) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1 do es not exist. The Parallel's disk ID that it attempts to mount indeed no longer exists. The EFI partition is correctly mounted at /boot/efi, since the /etc/fstab uses partition' UUID to address it and that didn't change during the migration, so there's no reason why the script should be failing. The debconf shows the following: dawidw@ubuntu:~$ sudo debconf-get-selections | grep grub-efi grub-efi-amd64 grub2/kfreebsd_cmdline string grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub2/force_efi_extra_removable boolean false grub-efi-amd64 grub2/linux_cmdline_default string quiet splash i8042.nopnp grub-efi-amd64 grub2/update_nvram boolean true grub-efi-amd64 grub2/linux_cmdline string grub-efi-amd64 grub2/unsigned_kernels note grub-efi-amd64 grub2/no_efi_extra_removable boolean true grub-efi-amd64 grub2/device_map_regenerated note grub-efi-amd64 grub-efi/install_devices_disks_changed multiselect /dev/disk/by-id/ata-Ubuntu_Linux-1_SSD_SF74YQ6DP1KMD07F8JED-part1, /dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1 grub-efi-amd64 grub-efi/install_devices_empty boolean false grub-efi-amd64 grub-efi/install_devices_failed boolean false grub-efi-amd64 grub2/kfreebsd_cmdline_default string quiet splash Note that it recored the new, correct "/dev/disk/by-id/ata-VBOX_HARDDISK_VB1-1a2b3c4d-part1" UUID of the disk that contains the EFI partition. I debugged it further and can see that the failure happens in /usr/lib/grub/grub-multi-install (which is part of grub-common 2.04-1ubuntu26.2 package): 1) in "# We either migrate /boot/efi over, or we check if we have invalid devices" section, it correctly detects that the Parallels device does not exist ("if [ ! -e "${device%,}" ]", setting the valid=0 2) given that valid=0, my understanding is that at this point the "install_devices_disks_changed" prompt should be triggered, but it is not. 3) the "$RET" variable still contains both of the disks from grub-efi/install_devices 4) in "# Run the installer" section, the script iterates over each of the disks, attempting to mount ("mount $real_device $mntpoint) the non-existing one, which results in the aforementioned script failure. My understanding here is that there are two problems: 1) "install_devices_disks_changed" prompt was not shown 2) there's no check for whether the device exists at all before the script proceeds with mounting and grub-installation attempt
2020-10-28 15:24:16 Launchpad Janitor grub2 (Ubuntu): status New Confirmed
2020-10-28 16:23:28 Julian Andres Klode tags rls-hh-incoming
2020-10-29 15:37:54 Matthieu Clemenceau tags rls-hh-incoming fr-877 rls-hh-incoming
2020-10-29 15:38:50 Matthieu Clemenceau tags fr-877 rls-hh-incoming fr-877
2021-09-21 15:34:52 Steve Langasek marked as duplicate 1940723
2022-09-23 09:05:28 Alexander Meindl bug added subscriber Alexander Meindl