Noob needs help with error: Cannot find a GRUB drive for /dev/sda2

Hello everyone, I am having issues with booting linux after installing it, i have already made a post https://forums.linuxmint.com/viewtopic.php?t=445114 (sorry for the link i dont want to make this post too big). i have done what the person replying to me has said to do and i have also googled this issue and nothing seems to work, i have turned off safe boot and yet linux mint wont show up as one of the booting options, i will also upload the terminal comands i ran and my system info

System Info:

System:
  Kernel: 6.8.0-51-generic arch: x86_64 bits: 64 compiler: gcc v: 13.3.0 clocksource: tsc
  Desktop: Cinnamon v: 6.4.6 tk: GTK v: 3.24.41 wm: Muffin v: 6.4.1 vt: 7 dm: LightDM v: 1.30.0
    Distro: Linux Mint 22.1 Xia base: Ubuntu 24.04 noble
Machine:
  Type: Laptop System: LENOVO product: 20UJ0014MH v: ThinkPad T14s Gen 1
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: LENOVO model: 20UJ0014MH v: SDK0J40697 WIN serial: <superuser required>
    part-nu: LENOVO_MT_20UJ_BU_Think_FM_ThinkPad T14s Gen 1 uuid: <superuser required> UEFI: LENOVO
    v: R1CET82W(1.51 ) date: 11/05/2024
Battery:
  ID-1: BAT0 charge: 40.1 Wh (83.2%) condition: 48.2/57.0 Wh (84.6%) power: 7.7 W volts: 12.2
    min: 11.5 model: Celxpert 5B10W139 type: Li-poly serial: <filter> status: discharging cycles: 195
CPU:
  Info: 6-core model: AMD Ryzen 5 PRO 4650U with Radeon Graphics bits: 64 type: MT MCP smt: enabled
    arch: Zen 2 rev: 1 cache: L1: 384 KiB L2: 3 MiB L3: 8 MiB
  Speed (MHz): avg: 1397 high: 1400 min/max: 1400/2100 boost: enabled cores: 1: 1397 2: 1397
    3: 1396 4: 1397 5: 1397 6: 1400 7: 1397 8: 1400 9: 1397 10: 1400 11: 1392 12: 1400
    bogomips: 50307
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
  Device-1: AMD Renoir [Radeon RX Vega 6 ] vendor: Lenovo driver: amdgpu v: kernel arch: GCN-5
    pcie: speed: 8 GT/s lanes: 16 ports: active: eDP-1 empty: DP-1,DP-2,HDMI-A-1 bus-ID: 06:00.0
    chip-ID: 1002:1636 class-ID: 0300 temp: 36.0 C
  Device-2: Chicony Integrated Camera driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s
    lanes: 1 bus-ID: 2-2:2 chip-ID: 04f2:b6cb class-ID: fe01 serial: <filter>
  Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X: loaded: amdgpu
    unloaded: fbdev,modesetting,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22") s-diag: 582mm (22.93")
  Monitor-1: eDP-1 mapped: eDP model: ChiMei InnoLux 0x14f2 res: 1920x1080 hz: 60 dpi: 158
    size: 309x173mm (12.17x6.81") diag: 354mm (13.9") modes: max: 1920x1080 min: 640x480
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi device: 1 drv: swrast
    surfaceless: drv: radeonsi x11: drv: radeonsi inactive: gbm,wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.0.9-0ubuntu0.3 glx-v: 1.4
    direct-render: yes renderer: AMD Radeon Graphics (radeonsi renoir LLVM 17.0.6 DRM 3.57
    6.8.0-51-generic) device-ID: 1002:1636
Audio:
  Device-1: AMD Renoir Radeon High Definition Audio vendor: Lenovo driver: snd_hda_intel v: kernel
    pcie: speed: 8 GT/s lanes: 16 bus-ID: 06:00.1 chip-ID: 1002:1637 class-ID: 0403
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: Lenovo driver: snd_rn_pci_acp3x
    v: kernel pcie: speed: 8 GT/s lanes: 16 bus-ID: 06:00.5 chip-ID: 1022:15e2 class-ID: 0480
  Device-3: AMD Family 17h/19h HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel pcie:
    speed: 8 GT/s lanes: 16 bus-ID: 06:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.8.0-51-generic status: kernel-api
  Server-1: PipeWire v: 1.0.5 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: Lenovo RTL8111/8168/8411 driver: r8169 v: kernel pcie: speed: 2.5 GT/s lanes: 1
    port: 2400 bus-ID: 02:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp2s0f0 state: down mac: <filter>
  Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel pcie: speed: 5 GT/s lanes: 1
    bus-ID: 03:00.0 chip-ID: 8086:2723 class-ID: 0280
  IF: wlp3s0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel AX200 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1
    bus-ID: 6-4:3 chip-ID: 8087:0029 class-ID: e001
  Report: hciconfig ID: hci0 rfk-id: 4 state: up address: <filter> bt-v: 5.2 lmp-v: 11
    sub-v: 2184 hci-v: 11 rev: 2184 class-ID: 7c010c
Drives:
  Local Storage: total: 491.42 GiB used: 17.27 GiB (3.5%)
  ID-1: /dev/nvme0n1 vendor: SK Hynix model: HFS512GD9TNI-L2B0B size: 476.94 GiB speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 11710C10 temp: 35.9 C scheme: GPT
  ID-2: /dev/sdb vendor: HEMA model: 16G HEMA 16GB size: 14.48 GiB type: USB rev: 3.2 spd: 5 Gb/s
    lanes: 1 tech: N/A serial: <filter> scheme: MBR
Partition:
  ID-1: / size: 7.43 GiB used: 247 MiB (3.2%) fs: overlay source: ERR-102
Swap:
  Alert: No swap data was found.
USB:
  Hub-1: 1-0:1 info: full speed or root hub ports: 1 rev: 2.0 speed: 480 Mb/s lanes: 1
    chip-ID: 1d6b:0002 class-ID: 0900
  Hub-2: 2-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0 speed: 480 Mb/s lanes: 1
    chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 2-2:2 info: Chicony Integrated Camera type: video driver: uvcvideo interfaces: 5
    rev: 2.0 speed: 480 Mb/s lanes: 1 power: 500mA chip-ID: 04f2:b6cb class-ID: fe01 serial: <filter>
  Hub-3: 3-0:1 info: super-speed hub ports: 2 rev: 3.0 speed: 5 Gb/s lanes: 1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-4: 4-0:1 info: hi-speed hub with single TT ports: 4 rev: 2.0 speed: 480 Mb/s lanes: 1
    chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 4-3:2 info: Alcor Micro AU9540 Smartcard Reader type: smart card driver: N/A
    interfaces: 1 rev: 2.0 speed: 12 Mb/s lanes: 1 power: 50mA chip-ID: 058f:9540 class-ID: 0b00
  Hub-5: 5-0:1 info: super-speed hub ports: 2 rev: 3.1 speed: 10 Gb/s lanes: 1 chip-ID: 1d6b:0003
    class-ID: 0900
  Device-1: 5-1:3 info: HEMA_16G HEMA_16GB type: mass storage driver: usb-storage interfaces: 1
    rev: 3.2 speed: 5 Gb/s lanes: 1 power: 304mA chip-ID: 24a9:205a class-ID: 0806 serial: <filter>
  Hub-6: 6-0:1 info: hi-speed hub with single TT ports: 4 rev: 2.0 speed: 480 Mb/s lanes: 1
    chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 6-3:2 info: Synaptics Prometheus MIS Touch Fingerprint Reader type: <vendor specific>
    driver: N/A interfaces: 1 rev: 2.0 speed: 12 Mb/s lanes: 1 power: 100mA chip-ID: 06cb:00bd
    class-ID: ff00 serial: <filter>
  Device-2: 6-4:3 info: Intel AX200 Bluetooth type: bluetooth driver: btusb interfaces: 2
    rev: 2.0 speed: 12 Mb/s lanes: 1 power: 100mA chip-ID: 8087:0029 class-ID: e001
  Hub-7: 7-0:1 info: super-speed hub ports: 2 rev: 3.1 speed: 10 Gb/s lanes: 1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 36.0 C mobo: N/A gpu: amdgpu temp: 36.0 C
  Fan Speeds (rpm): fan-1: 0 fan-2: 0
Repos:
  Packages: pm: dpkg pkgs: 1987
  Active apt repos in: /etc/apt/sources.list
    1: deb cdrom:[Linux Mint 22.1 _Xia_ - Release amd64 20250110]/ noble contrib main
  Active apt repos in: /etc/apt/sources.list.d/official-package-repositories.list
    1: deb http: //packages.linuxmint.com xia main upstream import backport
    2: deb http: //archive.ubuntu.com/ubuntu noble main restricted universe multiverse
    3: deb http: //archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
    4: deb http: //archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse
    5: deb http: //security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
Info:
  Memory: total: 16 GiB note: est. available: 14.85 GiB used: 2.56 GiB (17.3%)
  Processes: 352 Power: uptime: 6h 32m states: freeze,mem,disk suspend: deep wakeups: 1
    hibernate: platform Init: systemd v: 255 target: graphical (5) default: graphical
  Compilers: gcc: 13.3.0 Client: Cinnamon v: 6.4.6 inxi: 3.3.34

And the console command i ran:

mint@mint:~$  sudo mount /dev/nvme0n1p2 /mnt
mint@mint:~$  sudo mount /dev/nvme0n1p1 /mnt/boot/efi
mint@mint:~$  for i in /dev /dev/pts /proc /sys /run; do sudo mount --bind $i /mnt$i; done
mint@mint:~$  sudo chroot /mnt
root@mint:/#  grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=LinuxMint --recheck --no-floppy
Installing for x86_64-efi platform.
grub-install: warning: EFI variables cannot be set on this system.
grub-install: warning: You will have to complete the GRUB setup manually.
Installation finished. No error reported.
root@mint:/#  update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/50_linuxmint.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.8.0-51-generic
Found initrd image: /boot/initrd.img-6.8.0-51-generic
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
grub-probe: error: cannot find a GRUB drive for /dev/sda2.  Check your device.map.
Adding boot menu entry for UEFI Firmware Settings ...
done

Also if it helps i have the new lenovo bios and the options might be different, (reffer to the link at the top and my second reply to the post)
if there is anything else that might help you guys help me please let me know and ill send it your way!

1 Like

I think there’s something wrong with your grub-install because there’s warnings. What it says if you just type grub-install without anything else?

2 Likes

Installing for x86_64-efi platform.
grub-install: warning: EFI variables cannot be set on this system.
grub-install: warning: You will have to complete the GRUB setup manually.
Installation finished. No error reported.

2 Likes

I found this

ā€œThe warning ā€œgrub-install: warning: EFI variables cannot be set on this systemā€ indicates that GRUB, the bootloader, is unable to modify the boot order in the UEFI firmware’s NVRAM. This typically means that Secure Boot is enabled, and the system’s firmware is not allowing modifications to boot settings.ā€

So you should make sure secure boot is disabled in the BIOS. Then redo the grub install command.

Also, make sure you are booting in EFI mode, not legacy mode.

Also can you do this command please
lsmod | grep efivarfs
and report any output.

4 Likes

Ok, so I assume the same issue what Neville is saying. If you are dual booting with windows you should learn how to disable secure boot and fast boot (?)

3 Likes

Hey,
so about secure boot, i have It disabled and it has been since the beginning of the installation of mint. I booted into efi mode on my usb thought the f12 boot menu and tried installing grub again but still for prompted with the same errors. i will now send you my command lines!

mint@mint:~$  [ -d /sys/firmware/efi ] && echo "UEFI mode" || echo "Legacy/BIOS mode"
UEFI mode

and also

grub-install: warning: EFI variables cannot be set on this system.
grub-install: warning: You will have to complete the GRUB setup manually.
Installation finished. No error reported.
root@mint:/#  update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/50_linuxmint.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.8.0-51-generic
Found initrd image: /boot/initrd.img-6.8.0-51-generic
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
grub-probe: error: cannot find a GRUB drive for /dev/sda2.  Check your device.map.
Adding boot menu entry for UEFI Firmware Settings ...
done

so this is where I am at now, Im still not sure what do now.

2 Likes

It complains about device mapping.

Can you show what ā€˜lsblk’ outputs. I think you have a SSD and it shows dev/sda2. Shouldn’t it be something nvme0n1p2?

Edit: after searching the device map I found this command

grub-mkdevicemap

Not used it so please search for more info before trying it.

3 Likes

You still need to do
lsmod | grep efivarfs
I need to see if that efivarfs module has been loaded by the kernel

3 Likes

Hey Ihasama, i just ran the command and this is what is shown, also in another forum this is what somone else is saying about this issue.

mint@mint:~$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0   2.4G  1 loop /rofs
sda           8:0    1  14.5G  0 disk 
ā”œā”€sda1        8:1    1  14.5G  0 part 
└─sda2        8:2    1    32M  0 part 
nvme0n1     259:0    0 476.9G  0 disk 
ā”œā”€nvme0n1p1 259:1    0   512M  0 part 
└─nvme0n1p2 259:2    0 476.4G  0 part 
mint@mint:~$  lsmod | grep efivarfs
mint@mint:~$ 

this is the link post

2 Likes

hey i did run the commans but nothing seems to output, this is what is shown

mint@mint:~$  lsmod | grep efivarfs
mint@mint:~$ 
2 Likes

I think you have issue with kernel modules. Neville will help you soon!! :slightly_smiling_face:

4 Likes

Ok let’s see if the issue is with kernel (modules not loading at boot) before going into this…

3 Likes

Just to throw my hat in the ring

Go back to your original usb and boot from that

Try reinstalling again from scratch

Not sure which version you are using but LMDE asks during install if you want to write the grub and where. Used it so many times and never had this issue. Normal cinnamon mint I did have problems so this cured them.

1 Like

OK, that looks like it may be the problem
What it should look like is

nevj@trinity:~
$ lsmod | grep efivarfs
efivarfs               24576  1
nevj@trinity:~

It would seem that the current Ubuntu release has this kernel module missing, and Mint has inherited that problem from Ubuntu. It is a reported bug… you can find it in the Ubuntu forums.

So you have to tell it to load the efivarfs module, before grub will work. There are 2 steps

  1. Temporarily load the module with
    modprobe efivarfs
    you need root or sudo
    then
    retry grub install

  2. If that fixes the problem , you need to permanently load that module.
    Edit the file /etc/modules and add one line that says
    efivarfs
    you need root or sudo again to do this
    Reboot and then test it with
    lsmod | grep efivarfs
    it should show one line now, like mine.

Explanation:
If you want to read more on this try googling what is efivarfs

3 Likes

Yeah, always fix the first error message… put any subsequent messages on hold… they may be a consequence of the first error.

3 Likes

That’s why LMDE is a better solution

Hey Neville,
so i tried running the command that told me about but I had difficulty installing grub again with the instructions so I followed another forums help on that and this is what I did:

sudo mount /dev/nvme0n1p2 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount --bind $i /mnt$i; done
sudo chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=LinuxMint --recheck --no-floppy
mint@mint:~$  sudo mount /dev/nvme0n1p1 /mnt/boot/efi
mint@mint:~$  for i in /dev /dev/pts /proc /sys /run; do sudo mount --bind $i /mnt$i; done
mint@mint:~$  sudo chroot /mnt
root@mint:/#  grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=LinuxMint --recheck --no-floppy
Installing for x86_64-efi platform.

and I got this

grub-install: warning: EFI variables cannot be set on this system.
grub-install: warning: You will have to complete the GRUB setup manually.
Installation finished. No error reported.

as to the file that I need to edit, I also am quite unsure on how to edit a file on the terminal, if you could help me out I would appreciate it !

1 Like

You need to use an editor. The easiest editor is called nano
Have a practice with it in your home directory first.
Then

cd /etc
sudo nano modules
and just type the extra line on the end
then save the file

Did modprobe efivarfs work?
What happened when you did grub install after doing the modprobe?
and I mean just plain grub install… no fancy parameters

I think the stuff youbdid from anotger site is way too complicated
The most you might need is
grub-install --efi-directory=/boot/efi

2 Likes

Hey Neville,
i will now attach the command promps that i ran (how i interpreted them)

mint@mint:~$ modprobe efivarfs
mint@mint:~$ sudo chroot /mnt
root@mint:/# modprobe efivarfs
root@mint:/# grub-install --efi-directory=/boot/efi
Installing for x86_64-efi platform.
grub-install: warning: EFI variables cannot be set on this system.
grub-install: warning: You will have to complete the GRUB setup manually.
Installation finished. No error reported.
root@mint:/# cd/etc
bash: cd/etc: No such file or directory
root@mint:/# exit
exit
mint@mint:~$ cd /etc
mint@mint:/etc$ sudo nano modules
mint@mint:/etc$ 

Also this is what was inside of the nano editor:

  GNU nano 7.2                         modules                                  
# /etc/modules is obsolete and has been replaced by /etc/modules-load.d/.
# Please see modules-load.d(5) and modprobe.d(5) for details.
#
# Updating this file still works, but it is undocumented and unsupported.
efivarfs

I will now reboot and update the respond!
1 Like

I assume it didn’t work yet. I think you need to mount the EFI partition too. So when you chroot to your SSD, mount / and /boot/EFI. You should check the partitions but as per your earlier message:

mint@mint:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 476.9G 0 disk
ā”œā”€nvme0n1p1 259:1 0 512M 0 part
└─nvme0n1p2 259:2 0 476.4G 0 part

Mount:

nvme0n1p1 /boot/efi
nvme0n1p2 /

Do the modprope and then install grub.

You should not get any error/warning messages. It doesn’t work if you get them.

1 Like