Boot in btrfs snapshots can't mount /boot vfat error

Hi Guys!

Ok. I use btrfs on root partition (sda7), home is btrfs (sda8), /boot/efi ist vfat at sda5 and /boot is vfat at sda6.
So I create many root Snapshots with timeshift.
But now I CAN’T boot into old snapshots using grub menu. I get an error “can’t mount /boot” or something like that and “unknown filetype vfat”.
So I read I allways have ONE Kernel and if kernel is updating (with akm oder pacman -Syu) the “old” kernel is overwritten.
So I read somewhere in the wide world web that is exaktly the problem, that I can’t boot in btrfs snapshots that are build while older kernel versions were running? Is it true?
And what can I easily do to boot into older timeshift btrfs snapshots? Or is the problem somewhere else?

Thanks to all of you!
Stefan (Tariin)

Your kernels live in /boot, the kernel modules live inside the btrfs partition. So if you have a separate /boot from the btrfs partition, you won’t be able to boot into a snapshot or restore a snapshot without some manual intervention unless the kernel version hasn’t changed. If it has, the kernel version no longer matches the version of the kernel modules.

If you want to be able to snapshot boot, you shouldn’t have a separate /boot partition.

1 Like

Thats exactly what I have thought a few minutes ago. So I didn’t thought enough at the beginning when I installed EOS. First I want to say thank you for your quick answer!
I think I must sleep and think again tomorrow how to “fix” the problem. I thought it was a great idea to have a separate boot partition. But nobody is perfect. Maybe I have to use Clonezilla in future to save complete old running systems if something goes badly wrong.

Thank you. But hey, I found the problem after searching the whole inet :-). Learning by making mistakes.

It is easy to git rid of the separate /boot partition on your existing install.

Just unmount, mount it somewhere else. Then move the data into /boot and remove it from /etc/fstab

Welcome to the forum @Tariin :enos_flag: :partying_face: :tada:


Ok, first I made a backup of the sda6 (/boot), sda7 (/) partitions with Clonezilla and copied fstab to fstab.backup.
I create a folder named /boot-tmp on root and copied all the stuff from /boot to this new folder

So then I wanted to umount the sda6 (/boot) partition.
sudo umount /dev/sda6
sudo umount /boot

BUT I get an “error”: umount: /boot: das Ziel wird gerade benutzt. (english: partition is busy)
so I can’t umount /boot

And I saw the UUID of the boot-Partition is used in /boot/grub/grub.cfg
I think I have to call “grub-mkconfig -o /boot/grub/grub.cfg” after changing the boot mount.

But the first problem is I can’t umount /boot

Greetings, Tariin

Hmmmm … maybe I boot into live-USB-EOS and rename boot-tmp to boot on this partition?
Then boot into system normal, remove fstab boot entry and make grub-mkconfig?

Probably. You may want to also run mkinitpcio -P just to be safe.

Make sure you don’t have any terminals or file managers looking at the directory still. It should be possible to umount /boot. I do it all the time.


It doesn’T work :frowning_face:

So, I made a new folder on root boot-tmp and copied all stuff from /boot (Boot-Partition sda6) in the new folder in root Partition (sda7).
I deleted the entry of boot partition in etc/fstab
I bootet then into a live system and deleted the original boot folder on sda7 und renamed boot-tmp to boot. So the root-System on sda7 has a /boot folder with all the stuff of boot-partition sda6.

Then I bootet back in System. I made grub-mkconfig … and mkinitcpio -P.

Next time I boot all is fine.
BUT if I then delete partition sda6 (old boot-Partition) then I got a grub error:
file ‘/grub/x86_64-efi/normal.mod’ not found.
Entering rescue mode…

Conclusion: I deleted fstab entry, I created /boot on root (sda7) with stuff of boot-partition. I let System made configs. But grub still wants tu use old boot-partition :frowning:

So FINALLY it worked (for now).


I could’nt umount /boot (sda6) cause /boot/efi (sda5) was mounted in there …
It’s a tragedy :slight_smile:

So, what have I done?

  • I used Clonezilla to backup all “Linux” partitions (sda5 /boot/efi, sda6 /boot ,sda7 / ,sda8 /home)

  • I made a root-folder “boot-old”

  • I umount /boot/efi (sda5)

  • I umount /boot (sda6)

  • I mount sda6 (ex /boot Partition) at /boot-old

  • I copied (cp -a) all stuff from /boot-old to /boot

  • I mount sda5 (efi Partition) at /boot/efi

  • I deleted /boot-Partition entry in /etc/fstab (made copy before of course)

  • I umount /boot-old (sda6)

  • I deleted partition sda6 with kde part-manager an build a new empty partition

  • I reloaded fstab in system (systemctl daemon-reload)

  • I updated grub (grub-mkconfig -o /boot/grub/grub.cfg)

  • I generated new files in /boot (mkinitcpio -P)

  • I installed grub (sudo grub-install sda)

  • I did the generating of grub config and boot files again :slight_smile: just to be “safe”

  • I made a latte macchiato

and … reboot with closed eyes and heart beating :slight_smile:
aaaaand … get a kick through my whole body … it worked (for now). So I just wait for next time kernel updates and hope it worked really.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.