[Bug 1912677] Re: autogenerated entries for other Ubuntu systems use wrong root filesystem, unbootable

Julian Andres Klode 1912677 at bugs.launchpad.net
Fri Jan 22 17:00:03 UTC 2021


Things are complicated, and they work fine if you don't use secureboot
UEFI.

Multiple ubuntu systems work fine in BIOS mode, but on UEFI grub-install
only installs one "ubuntu" boot loader entry and hence if you run
multiple ubuntus, you essentially flip back and forth between their
grubs on /boot/efi which is suboptimal. I'm not sure if grub devs ever
thought about users having two installs of one system. But it's hard to
solve the problem of people changing disks and not indefinitely growing
the number of boot loader entries with each new disk.

Anyhow, yes, I guess it needs fixing, needs some digging into what's
going on.

Windows is a lot simpler, as that code just chainloads window's
bootloader, and doesn't have to deal with setting up the other kernel
entries :)

** Changed in: grub2 (Ubuntu)
   Importance: Low => Medium

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

Title:
  autogenerated entries for other Ubuntu systems use wrong root
  filesystem, unbootable

Status in grub2 package in Ubuntu:
  Triaged

Bug description:
  On my disk I have two partitions that are root filesystems for two
  releases, Focal and Groovy:

  Groovy 20.10 is on /dev/nvme0n1p3    3ac2446d-ae7c-4975-b736-44b1084266de
  Focal  20.04 is on /dev/nvme0n1p4    4ff7a630-0e7e-4427-aa9e-513bcae849c3

  If I run update-grub2 from Groovy, it detects the Focal partition and
  generates this entry for it:

  menuentry 'Ubuntu 20.04.1 LTS (20.04) (on /dev/nvme0n1p4)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-4ff7a630-0e7e-4427-aa9e-513bcae849c3' {
  	insmod part_gpt
  	insmod ext2
  	if [ x$feature_platform_search_hint = xy ]; then
  	  search --no-floppy --fs-uuid --set=root  4ff7a630-0e7e-4427-aa9e-513bcae849c3
  	else
  	  search --no-floppy --fs-uuid --set=root 4ff7a630-0e7e-4427-aa9e-513bcae849c3
  	fi
  	linux /boot/vmlinuz-5.4.0-52-generic root=UUID=3ac2446d-ae7c-4975-b736-44b1084266de ro text
  	initrd /boot/initrd.img-5.4.0-52-generic
  }

  Note how the menu correctly says it's on p4, and gives the right UUID
  there and in the search --fs-uuid lines, but then in the actual linux
  kernel line, it uses root=UUID=3ac2446d-ae7c-4975-b736-44b1084266de,
  the wrong partition.

  If I try to boot from that menuentry, the boot fails. At one point I'm
  fairly sure saw a message about not being able to find its initrd
  flash by, but I wasn't able to capture that message. Eventually it
  gets to a single-user prompt, and at that point if I scroll back, here
  are the warnings (yellow) and errors (red) captured in the scrollback:

  UNSUPP Starting of Executable File Format File System Automount Point not supported
  FAILED Failed to mount /boot/efi
  DEPEND Dependency failed for Local File Systems

  If I give the root password and then type mount, it has /dev/nvme0n1p3
  (the Groovy root) mounted on /, not p4 (the Focal root it should be
  using).

  So if I want to be able to use that Focal partition, I can't use the
  entry generated by os-prober; I have to make my own entry and add it
  to somewhere like 40_custom (in reality, of course I want it earlier,
  before the nonworking os-prober entries, so I named it 25-local):

  menuentry 'Ubuntu 20.04 Focal LTS on nvme0n1p4' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4ff7a630-0e7e-4427-aa9e-513bcae849c3' {
  	recordfail
  	load_video
  	gfxmode $linux_gfx_mode
  	insmod gzio
  	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
  	insmod part_gpt
  	insmod ext2
  	if [ x$feature_platform_search_hint = xy ]; then
  	  search --no-floppy --fs-uuid --set=root  4ff7a630-0e7e-4427-aa9e-513bcae849c3
  	else
  	  search --no-floppy --fs-uuid --set=root 4ff7a630-0e7e-4427-aa9e-513bcae849c3
  	fi
  	linux	/boot/vmlinuz-5.4.0-52-generic root=UUID=4ff7a630-0e7e-4427-aa9e-513bcae849c3 ro  text
  	initrd	/boot/initrd.img-5.4.0-52-generic
  }

  ProblemType: Bug
  DistroRelease: Ubuntu 20.10
  Package: grub-common 2.04-1ubuntu35.1
  ProcVersionSignature: Ubuntu 5.8.0-38.43-generic 5.8.18
  Uname: Linux 5.8.0-38-generic x86_64
  ApportVersion: 2.20.11-0ubuntu50.3
  Architecture: amd64
  CasperMD5CheckResult: skip
  Date: Thu Jan 21 10:26:38 2021
  InstallationDate: Installed on 2020-04-29 (267 days ago)
  InstallationMedia: Ubuntu 20.04 LTS "Focal Fossa" - Release amd64 (20200423)
  SourcePackage: grub2
  UpgradeStatus: Upgraded to groovy on 2020-10-23 (90 days ago)
  mtime.conffile..etc.grub.d.10_linux: 2021-01-21T10:19:44.446687

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



More information about the foundations-bugs mailing list