3

I have recently added an NVMe SSD to my system. I have installed Windows and Ubuntu on this new NVMe SSD. I want to keep an earlier installed Ubuntu.

NVMe0 - New Ubuntu 18.04 (works) [1]
      - New windows 10 (works) [2]
SSD0  - Ubuntu 18.04 (old) [3]
SSD1  - Windows 10 (old) [4]

I have tried running update-grub when on [1]. This resulted in the grub menu having additional entries for [3] and [4]. When I choose one of these two however, I get the following error:

error: no such device: B6C5-4C11.
error: disk 'hd3,gpt2' not found.

If I try booting from SSD0, I get my old grub menu where I am able to boot into [3] and [4] but not [1] and [2].

What I am trying to accomplish is: be able to go into [1], [2], [3] and [4] from one grub menu after booting to NVMe0.

Here is a Sketch

a sketch of the disk/OS layout

Update 1

UUID of NVMe0 EFI partition: A85E-D029 Contents of /etc/fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/nvme0n1p5 during installation
UUID=0eb898d2-f93b-490f-b7f0-40d1ff6cacce /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/nvme0n1p2 during installation
UUID=A85E-D029  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0
  1. The old Windows is on /dev/sde4 with UUID E23CCF783CCF45EF.
  2. The old Ubuntu is on /dev/sdf1 with UUID 664b5f90-b52c-4f6b-b2b7-89933eb7bc27

Here are the two entries generated by update-grub which throw the errors.

menuentry 'Windows Boot Manager (on /dev/sde2)' --class windows --class os $menuentry_id_option 'osprober-efi-B6C5-4C11' {
    insmod part_gpt
    insmod fat
    set root='hd4,gpt2'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd4,gpt2 --hint-efi=hd4,gpt2 --hint-baremetal=ahci4,gpt2  B6C5-4C11
    else
      search --no-floppy --fs-uuid --set=root B6C5-4C11
    fi
    chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Ubuntu 18.04.2 LTS (18.04) (on /dev/sdf1)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-664b5f90-b52c-4f6b-b2b7-89933eb7bc27' {
    insmod part_gpt
    insmod ext2
    set root='hd5,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd5,gpt1 --hint-efi=hd5,gpt1 --hint-baremetal=ahci5,gpt1  664b5f90-b52c-4f6b-b2b7-89933eb7bc27
    else
      search --no-floppy --fs-uuid --set=root 664b5f90-b52c-4f6b-b2b7-89933eb7bc27
    fi
    linux /boot/vmlinuz-4.15.0-46-generic root=UUID=664b5f90-b52c-4f6b-b2b7-89933eb7bc27 ro quiet splash $vt_handoff
    initrd /boot/initrd.img-4.15.0-46-generic
}

Update 2

All 4 OS are installed on internal drives in UEFI mode. The output of update-grub:

Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.0-16-generic
Found initrd image: /boot/initrd.img-4.18.0-16-generic
Found linux image: /boot/vmlinuz-4.18.0-15-generic
Found initrd image: /boot/initrd.img-4.18.0-15-generic
Found Windows Boot Manager on /dev/nvme0n1p2@/EFI/Microsoft/Boot/bootmgfw.efi
Found Windows Boot Manager on /dev/sde2@/efi/Microsoft/Boot/bootmgfw.efi
Found Ubuntu 18.04.2 LTS (18.04) on /dev/sdf1
Adding boot menu entry for EFI firmware configuration
done

Update 3

I installed boot-repair.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair

Generating the summary outputs a 2.1k lines long report.

  • 1
    i guess fstab has some thing to do. can you go through this link and at the end there is fstab part..https://askubuntu.com/a/1076535/739431 – PRATAP Mar 18 '19 at 18:29
  • Thanks, will update the question as soon as I'm done. – LizardMaster Mar 18 '19 at 18:34
  • 1
    When you run update-grub, do you get the os-prober entries that list the other operating systems? I get a bunch of lines starting with Found:, the first ones are kernels, the last ones are other OSes like this: Found Ubuntu 16.04.5 LTS (16.04) on /dev/sda3 and if you do, are the /dev entries correct? – Organic Marble Mar 18 '19 at 19:32
  • 1
    Are all installs UEFI? UEFI and BIOS are not compatible, once you start booting from UEFI, you cannot change, or grub only boots other installs in same boot mode. Are any installs on external drives? Windows only boots from internal drives. May be best to see details, use ppa version with your live installer or any working install, not older Boot-Repair ISO: Please copy & paste link to the Boot-info summary report ( do not post report), the auto fix sometimes can create more issues. https://help.ubuntu.com/community/Boot-Repair – oldfred Mar 18 '19 at 21:52
  • @OrganicMarble As far as I know, they look correct. I've added the output to the question under Update 2. – LizardMaster Mar 18 '19 at 23:19
  • 1
    Hmm if my notes are correct that drives start counting at 0, that looks ok with sdf = hd5 and sde = hd4. – Organic Marble Mar 18 '19 at 23:35
  • @oldfred I've added the information you requested, it is a rather hefty summary though. All the drives are internal. – LizardMaster Mar 18 '19 at 23:42
  • I was under the same impression. Those were the first values I started checking because they're mentioned in the error. – LizardMaster Mar 18 '19 at 23:46
  • 1
    Lots of drives. Do all 4 systems boot ok from UEFI menu? You have two ESP, so you end up with two Windows boot and two Ubuntu boot options in UEFI. All should work. But I do not understand why each grub does not boot all the other systems. With lots of installs I prefer to turn off os-prober and add my own 40_custom to boot other grub. Probably have to copy Windows boot stanza. I now like labeled partitions and configfile to boot into other installs grub. https://askubuntu.com/questions/344125/how-to-add-a-grub2-menu-entry-for-booting-installed-ubuntu-on-a-usb-drive – oldfred Mar 19 '19 at 03:15
  • @oldfred They all boot fine from the UEFI menu. I ended up fixing the issue. I'll describe what I did in an answer, although I don't think this will apply to anyone else. – LizardMaster Mar 19 '19 at 19:02

1 Answers1

0

I am not sure at what point this issue was fixed as I did all of the following before testing.

  1. Run update-grub on newly installed Ubuntu
  2. Run update-grub on older Ubuntu installation
  3. Checked BIOS settings
  4. Flashed latest bios
  5. Reset bios settings
  6. Set all settings back to what they were before reset (UEFI instead of legacy, etc..)

I don't see why the BIOS update would have an impact as the only item in the changelog is: "Update CPU Microcode for Intel security issue.". So my best guess is: step 2 fixed the problem.