I updated my bios and I cant boot linux

Hello there!

So today I updated my MSI PRO Z690-A bios. I run duel boot between windows and linux. After the update, there was no linux boot. I disabled safe boot, and booted a live endevouros on my pc to reinstall grub (my OS used grub).

[root@EndeavourOS boot]# sudo parted -l
Model: Kingston DataTraveler 3.0 (scsi)
Disk /dev/sda: 62.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size   Type     File system  Flags
 2      2799MB  2969MB  170MB  primary  fat32        esp


Model: WD_BLACK SN850X HS 1000GB (nvme)
Disk /dev/nvme0n1: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  106MB   105MB   fat32        EFI system partition          boot, esp, no_automount
 2      106MB   123MB   16.8MB               Microsoft reserved partition  msftres, no_automount
 3      123MB   632GB   632GB   ntfs         Basic data partition          msftdata
 5      632GB   999GB   367GB   btrfs        endeavouros
 4      999GB   1000GB  778MB   ntfs                                       hidden, diag, no_automount

I then tried this but I got an error

[root@EndeavourOS /]# sudo mount /dev/nvme0n1p5 /mnt
[root@EndeavourOS /]# sudo mount /dev/nvme0n1p1 /mnt/boot/efi
mount: /mnt/boot/efi: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.

I also tried again but got the same error

[root@EndeavourOS /]# sudo mount /dev/nvme0n1p5 /mnt
[root@EndeavourOS /]# sudo arch-chroot /mnt
mount: /mnt/proc: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
==> ERROR: failed to setup chroot /mnt

What show efibootmgr ?

Also a very low size of bootnpartition

Same happened to me just now, so I’m watching this thread with hope :slight_smile:

@Tiber-Septim
Does the machine boot with the LTS kernel?

Also, please create another thread, your issue looks different.

@planetwool
Can you show the output of

lsblk -fm

I’m not sure, but try mounting with -m , like:

sudo mount -m /dev/drive/to/mount /mount/point/that/doesn’t/exist/yet

Hello there thanks for the reply. I was using an LTS kernal.

[liveuser@eos-2024.09.22 ~]$ lsblk -fm
NAME FSTYPE FSVER LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS   SIZE OWNER GROUP MODE
loop0
     squash 4.0                                                          0   100% /run/archiso/airootfs
                                                                                                2.5G root  disk  brw-rw----
sda  iso966 Jolie EOS_202409  2024-09-22-10-45-49-00                                           57.7G root  disk  brw-rw----
├─sda1
│    iso966 Jolie EOS_202409  2024-09-22-10-45-49-00                     0   100% /run/archiso/bootmnt
│                                                                                               2.6G root  disk  brw-rw----
└─sda2
     vfat   FAT32 ARCHISO_EFI 66EF-F55D                                                         162M root  disk  brw-rw----
nvme0n1
│                                                                                             931.5G root  disk  brw-rw----
├─nvme0n1p1
│    vfat   FAT32             A808-D1F6                                                         100M root  disk  brw-rw----
├─nvme0n1p2
│                                                                                                16M root  disk  brw-rw----
├─nvme0n1p3
│    ntfs                     BC00095200091554                                                588.9G root  disk  brw-rw----
├─nvme0n1p4
│    ntfs                     1AB62D67B62D451B                                                  742M root  disk  brw-rw----
└─nvme0n1p5
     btrfs        endeavouros f2f853cc-988e-4e71-8851-c43d0804ddf9                            341.8G root  disk  brw-rw----
[liveuser@eos-2024.09.22 ~]$ 


I actually tried that and got this

[liveuser@eos-2024.09.22 ~]$ sudo mount -m /dev/nvme0n1p5 /mnt
[liveuser@eos-2024.09.22 ~]$ sudo mount -m /dev/nvme0n1p1 /mnt/boot/efi
[liveuser@eos-2024.09.22 ~]$ sudo arch-chroot /mnt
mount: /mnt/proc: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
==> ERROR: failed to setup chroot /mnt
[liveuser@eos-2024.09.22 ~]$ 

Try running

sudo mkdir /mnt/proc

before

sudo arch-chroot /mnt

I still have the same issue

[liveuser@eos-2024.09.22 ~]$ sudo mkdir /mnt/proc
[liveuser@eos-2024.09.22 ~]$ sudo mount -m /dev/nvme0n1p5 /mnt
[liveuser@eos-2024.09.22 ~]$ sudo mount -m /dev/nvme0n1p1 /mnt/boot/efi
[liveuser@eos-2024.09.22 ~]$ sudo arch-chroot /mnt
mount: /mnt/sys: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
==> ERROR: failed to setup chroot /mnt

Now do the same, but type “sys” instead of “proc”, and repeat that for any error until (hopefully) it will work or a different error occurs.

Same error again

[liveuser@eos-2024.09.22 ~]$ sudo mkdir /mnt/sys
[liveuser@eos-2024.09.22 ~]$ sudo mount -m /dev/nvme0n1p5 /mnt
[liveuser@eos-2024.09.22 ~]$ sudo mount -m /dev/nvme0n1p1 /mnt/boot/efi
[liveuser@eos-2024.09.22 ~]$ sudo arch-chroot /mnt
mount: /mnt/dev: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
==> ERROR: failed to setup chroot /mnt
[liveuser@eos-2024.09.22 ~]$ 

How exactly did you try to chroot?

You using btrfs mount is totally off

Edit : https://discovery.endeavouros.com/system-rescue/arch-chroot/2022/12/

See btrfs…

But fat32 bootpartition is very undersized as bootpartition too

I think are you using the right commands? I see you have btrfs but no subvolumes? This isn’t the way endeavouros sets up btrfs on the install. Or maybe I’m not familiar with your way of arch-chroot on btrfs?

Hey there, thanks for the link. I tried that but I got this error:

[liveuser@eos-2024.09.22 ~]$ sudo cryptsetup luksDump /dev/sda2
Device /dev/sda2 is not a valid LUKS device.
[liveuser@eos-2024.09.22 ~]$ 


Okay I figured out what I had to do. So I found out my subvolumes:

[liveuser@eos-2024.09.22 ~]$ sudo mount /dev/nvme0n1p5 /mnt
[liveuser@eos-2024.09.22 ~]$ df -Th | grep /mnt
/dev/nvme0n1p5 btrfs     342G   73G  270G  22% /mnt
[liveuser@eos-2024.09.22 ~]$ sudo btrfs subvolume list /mnt
ID 256 gen 57679 top level 5 path @
ID 257 gen 57675 top level 5 path @home
ID 258 gen 57675 top level 5 path @cache
ID 259 gen 57675 top level 5 path @log
ID 260 gen 26 top level 256 path @/var/lib/portables
ID 261 gen 26 top level 256 path @/var/lib/machines
[root@EndeavourOS /]# lsblk -f
NAME        FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0                                              
sda                                                
├─sda1                                             
└─sda2                                             
nvme0n1                                            
├─nvme0n1p1                                        
├─nvme0n1p2                                        
├─nvme0n1p3                                        
├─nvme0n1p5                            269G    21% /mnt
│                                                  /var/lib/machines
│                                                  /var/lib/portables
│                                                  /var/log
│                                                  /var/cache
│                                                  /home
│                                                  /
└─nvme0n1p6  

Then I mounted the root volumes and the other subvolumes, and then lastly the system directories. Then I entered archroot:

sudo mount -o subvol=@ /dev/nvme0n1p5 /mnt
sudo mount -o subvol=@home /dev/nvme0n1p5 /mnt/home
sudo mount -o subvol=@cache /dev/nvme0n1p5 /mnt/var/cache
sudo mount -o subvol=@log /dev/nvme0n1p5 /mnt/var/log
sudo mount -o subvol=@/var/lib/portables /dev/nvme0n1p5 /mnt/var/lib/portables
sudo mount -o subvol=@/var/lib/machines /dev/nvme0n1p5 /mnt/var/lib/machines
sudo mount --rbind /dev /mnt/dev
sudo mount --rbind /proc /mnt/proc
sudo mount --rbind /sys /mnt/sys
sudo arch-chroot /mnt
1 Like

This is not exactly how i do it. Also i don’t see tthat you mounted the /efi partition for systemd-boot or grub? Not sure what your using…

Not sure also why this is needed?

sudo mount --rbind /dev /mnt/dev
sudo mount --rbind /proc /mnt/proc
sudo mount --rbind /sys /mnt/sys

I would have done it this way.

sudo mount -o subvol=@ /dev/nvme0n1p5 /mnt
sudo mount /dev/xxxx /mnt/efi (or **/mnt/boot/efi**)
sudo mount -o subvol=@home /dev/nvme0n1p5 /mnt/home
sudo mount -o subvol=@cache /dev/nvme0n1p5 /mnt/var/cache
sudo mount -o subvol=@log /dev/nvme0n1p5 /mnt/var/log
sudo mount -o subvol=@/var/lib/portables /dev/nvme0n1p5 /mnt/var/lib/portables
sudo mount -o subvol=@/var/lib/machines /dev/nvme0n1p5 /mnt/var/lib/machines
sudo arch-chroot /mnt

Edit : But i don’t see the /efi partition?
Is that the reason for the bind commands? Just asking because i use btrfs also.

Edit: I do see the /efi partition in the earlier posts. Are you running systemd-boot?

Here are my notes from obsidian that restored my bootloader and helped a few souls out. Sorry if its chaotic as thats how I tend to keep notes short. It may not be exact either or require every step.

#bootloader

https://discovery.endeavouros.com/system-rescue/arch-chroot/2022/12/

sudo lsblk -f

sudo mount /dev/sda2 /mnt

sudo cat /mnt/etc/fstab (to check the mount point of your ESP)

sudo mount /dev/sda1 /mnt/efi (or /mnt/boot/efi)

systemd-boot uses /efi

sudo arch-chroot /mnt

ls /home

misc
https://wiki.archlinux.org/title/Systemd-boot

If there is no boot image
bootctl install
bootctl list

after reinstall-kernels

dkms status

edit EFI loader.conf

default 091e3c9e198c4c858d190e1a94273b57*
timeout 5
console-mode auto
reboot-for-bitlocker 1

set default using bootctl set-default id (id from bootctl list)