Windows destroys grub (yet again)

Hi everyone.
I have on my PC Windows 10 and Garuda, with grub dual-boot. Today, I've been using it and it was everything correct, but I decided to install Windows updates. When I started my PC after updating Windows, the grub didn't appear, and it only starts Windows.
I tried to use the tool Garuda boot repair, but it didn't work (or perhaps I didn't use it correctly).
What should I do? I don't want to reinstall everything again.

Thanks.

1 Like

There are some things you can do to tame Windows10.

  • Deactivate TPM in your BIOS
  • Deactivate Hibernation (capability) on Win10
  • Deactivate Fast Boot Options for Win10 (and if you have it in your BIOS as well, turn them off as well)

Best practize:
Don't switch to your Linux via restarting Windows, always do a full shutdown and reboot. I know it is tempting but it just makes trouble.

That are my 2 cents to that issue based on my experience with Win10 as a dual boot..
As you can see yourself, one Win10 Update is enough to mess up everything. First check all above advices. Usually it helps, if not pls reach out again :slight_smile:

EDIT: Just recognized you're new to this Forum: WELCOME :smiley:

2 Likes

Try reinstalling grub from the live session, as described here: Grub fails after update - #3 by librewish

1 Like

Well, I tried all that you said and it didn't work.
Thanks anyway

1 Like

Ok, thank you for your Feedback. Those settings are actually meant to keep it work out better if everything works. @BluishHumility 's advice might solve your current issue.

Good Luck o/

1 Like

/dev/sdxy means the partition where garuda is installed?

The first one, yes. Later in the post /dev/sdxy is used to as a placeholder for the EFI partition. The important thing is to know which partition belongs where.

Post lsblk -f and we can take a look if you get mixed up.

Sorry, it's my first time using this forum

NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0
loop1
loop2
loop3
sda
|-sda1 53.5M 44% /boot/efi
|-sda2
|-sda3
|-sda4
-sda5 364.1G 7% /var/tmp /var/log /var/cache /srv /root /home / sdb |-sdb1 -sdb2
zram0 [SWAP]

This is what I got (sdb1 is my Garuda)

No problem. Wherever possible, it is best to paste the text out of the terminal instead of screenshots. It's easier to read, plus text is searchable and copy/pasteable.

root@garuda-dr460nized it looks like you are already chrooted. Did you use the chroot button?

1 Like

I ran the CD Live CHroot tool

1 Like

Okay so you should be able to skip all the way down to this step:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=garuda --recheck

After, run:

update-grub

Finally,

exit
2 Likes

Ok, I got some errors...
[root@garuda-dr460nized /]# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=garuda --recheck
Installing for x86_64-efi platform.
Installation finished. No error reported.
[root@garuda-dr460nized /]# update-grub
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/garuda-dr460nized/theme.txt
Found linux image: /boot/vmlinuz-linux-zen
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-zen.img
Found fallback initrd image(s) in /boot: intel-ucode.img initramfs-linux-zen-fallback.img
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/sdb1. Check your device.map.
grub-probe: error: cannot find a GRUB drive for /dev/sdb1. Check your device.map.
Adding boot menu entry for UEFI Firmware Settings ...
Detecting snapshots ...
Found snapshot: 2022-04-01 22:09:12 | @/.snapshots/88/snapshot | post | grub |
Found snapshot: 2022-04-01 22:08:21 | @/.snapshots/87/snapshot | pre | [ksoftirqd/3] |
Found snapshot: 2022-04-01 12:12:37 | @/.snapshots/86/snapshot | post | babl fish gegl gimp gvfs hwloc latte-dock-git libsoup3 libtiff |
Found snapshot: 2022-04-01 12:12:13 | @/.snapshots/85/snapshot | pre | pacman -Syu |
Found snapshot: 2022-03-31 20:17:09 | @/.snapshots/84/snapshot | post | libpam-google-authenticator |
Found snapshot: 2022-03-31 20:16:56 | @/.snapshots/83/snapshot | pre | pacman -S libpam-google-authenticator |
Found snapshot: 2022-03-31 19:49:57 | @/.snapshots/82/snapshot | post | containerd docker runc |
Found snapshot: 2022-03-31 19:49:49 | @/.snapshots/81/snapshot | pre | pacman -S docker |
Found snapshot: 2022-03-31 19:26:55 | @/.snapshots/80/snapshot | post | latte-dock-git libreoffice-fresh uresourced |
Found snapshot: 2022-03-31 19:26:39 | @/.snapshots/79/snapshot | pre | pacman -Syu |
Found snapshot: 2022-03-31 19:20:02 | @/.snapshots/78/snapshot | post | cairo-perl glib-perl libwnck3 pango-perl perl-cairo-gobject perl-crypt-b |
Found snapshot: 2022-03-31 19:19:53 | @/.snapshots/77/snapshot | pre | pacman -S vte3 cairo-perl glib-perl pango-perl perl-socket6 perl-yaml pe |
Found snapshot: 2022-03-31 13:47:11 | @/.snapshots/76/snapshot | post | pdftk |
Found snapshot: 2022-03-31 13:47:06 | @/.snapshots/75/snapshot | pre | pacman -Syu |
Found 14 snapshot(s)
Unmount /tmp/grub-btrfs.IO880ZBM8n .. Success
Found memtest86+ image: /boot/memtest86+/memtest.bin
done

Should I continue?

sdb is your thumb drive, don’t worry about that message. The rest looks good! Power off, remove thumb drive, then power back on and see if it worked.

1 Like

Ok it worked! But now I can't access to Windows 10 xD, I mean, it doesn't appear on Grub
I'm blocked a*...

1 Like

Had you been booting to Windows with grub, or another way?

Paste the output of sudo cat /etc/default/grub

Yes, when it worked I used Grub to boot Garuda and Windows, now I can boot only Garuda

Boot into Garuda and paste the output of sudo cat /etc/default/grub.

# GRUB boot loader configuration

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Garuda"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0 systemd.unified_cgroup_hierarchy=1 loglevel=3"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
GRUB_THEME="/usr/share/grub/themes/garuda-dr460nized/theme.txt"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT=true

# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y

GRUB_DISABLE_OS_PROBER=false

Hmm, it looks like os-prober is already enabled. What is the output of sudo os-prober?

/dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi

I've read that I shouldn't have output...