Need help with grub-btrfs?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

Antynea
145 Stars 34 Forks GNU General Public License v3.0 225 Commits 2 Opened issues

Description

Include btrfs snapshots at boot options. (Grub menu)

Services available

!
?

Need anything else?

Contributors list

GitHub release

grub-btrfs

This is a version 4.xx of grub-btrfs

BTC donation address:
1Lbvz244WA8xbpHek9W2Y12cakM6rDe5Rt

Description

Improves Grub by adding "btrfs snapshots" to the Grub menu.

You can start your system on a "snapshot" from the Grub menu.
Supports manual snapshots, snapper, timeshift ...

Warning: booting on read-only snapshots can be tricky

If you choose to do it,

/var/log
or even
/var
must be on a separate subvolume.
Otherwise, make sure your snapshots are writeable.
See this ticket for more info.

This project includes its own solution.
Refer to the documentation.

What does grub-btrfs v4.xx do :

  • Automatically List snapshots existing on root partition (btrfs).
  • Automatically Detect if "/boot" is in separate partition.
  • Automatically Detect kernel, initramfs and intel/amd microcode in "/boot" directory on snapshots.
  • Automatically Create corresponding "menuentry" in
    grub.cfg
  • Automatically detect snapper and use snapper's snapshot description if available.
  • Automatically generate
    grub.cfg
    if you use the provided systemd service.

Installation :

Arch Linux

pacman -S grub-btrfs

Manual

  • Run
    make install
    or look into Makefile for instructions on where to put each file.

NOTE: Generate your Grub menu after installation for the changes to take effect.
On Arch Linux use

grub-mkconfig -o /boot/grub/grub.cfg
.

Customization:

You have the possibility to modify many parameters in

/etc/default/grub-btrfs/config
.
See config file for more information.

Automatically update grub

If you would like Grub to automatically update when a snapshot is made or deleted: * Use

systemctl start/enable grub-btrfs.path
. *
grub-btrfs.path
automatically (re)generates
grub.cfg
when a modification appears in
/.snapshots
folder (by default). * If your snapshots aren't mounted in
/.snapshots
, you must modify the watch folder using
systemctl edit grub-btrfs.path
.
* For example: Timeshift mount its snapshots in
/run/timeshift/backup/timeshift-btrfs/snapshots
folder.
    Use `systemctl edit grub-btrfs.path`.
    Then wrote:
    ```
    [Path]
    PathModified=/run/timeshift/backup/timeshift-btrfs/snapshots
    ```
    and finally save.
* You can view your change to `systemctl cat grub-btrfs.path`.
* To revert change use `systemctl revert grub-btrfs.path`.
Warning:

by default,

grub-mkconfig
command is used.
Might be
grub2-mkconfig
on some systems (Fedora ...).
Edit
GRUB_BTRFS_MKCONFIG
variable in
/etc/default/grub-btrfs/config
file to reflect this.

Special thanks for assistance and contributions

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.