* grub-btrfs.path : improves unit #### Remember to modify your configuration accordingly. Allows the unit to start and stop automatically when the mount point is detected. If the mount point is already mounted when the unit is activated `systemctl enable grub-btrfs.path`, it will be necessary to start the unit for monitoring to begin `systemctl start grub-btrfs.path`. - `DefaultDependencies=no` Prevents systemd from automatically generating `Wants= or Requires= or After=`. - `Requires=\x2esnapshots.mount` Ensures unit is started if mount point exists. - `After=\x2esnapshots.mount` Unit start after the mounting point exists. - `BindsTo=\x2esnapshots.mount` If the mount point is removed, the unit will stop. - `PathModified=\x2esnapshots.mount` The monitored folder containing the snapshots. - `WantedBy=\x2esnapshots.mount` If the mount point exists, unit start automatically. (only if unit is activated before the mount point is mounted) * Readme: Update "Automatically update grub" section Update section following the recent change in the `grub-btrfs.path` unit. Add information to be able to update the `grub-btrfs` menu every time the system is restart/shutdown.
4.3 KiB
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 boot 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.cfgif you use the provided systemd service.
Installation :
Arch Linux
pacman -S grub-btrfs
Manual
- Run
make installor 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
1- If you would like grub-btrfs menu to automatically update when a snapshot is created or deleted:
- Use
systemctl enable grub-btrfs.path.grub-btrfs.pathautomatically (re)generatesgrub-btrfs.cfgwhen a modification appears in/.snapshotsmount point (by default).- If the
/.snapshotsmount point is already mounted, then usesystemctl start grub-btrfs.pathto start monitoring.
Otherwise, the unit will automatically start monitoring when the mount point will be available.
- If your snapshots location aren't mounted in
/.snapshots, you must modifygrub-btrfs.pathunit using
systemctl edit --full grub-btrfs.pathand runsystemctl reenable grub-btrfs.pathfor changes take effect.
To find out the name of the.mountunit
usesystemctl list-units -t mount.-
For example: Timeshift mounts its snapshot folder in
/run/timeshift/backup/timeshift-btrfs/snapshots.Use
systemctl edit --full grub-btrfs.path. Then replace the whole block by:[Unit] Description=Monitors for new snapshots DefaultDependencies=no Requires=run-timeshift-backup.mount After=run-timeshift-backup.mount BindsTo=run-timeshift-backup.mount [Path] PathModified=/run/timeshift/backup/timeshift-btrfs/snapshots [Install] WantedBy=run-timeshift-backup.mountThen save and finally run
systemctl reenable grub-btrfs.pathfor changes take effect.
Optional:
If the/run/timeshift/backup/timeshift-btrfs/snapshotsmount point is already mounted,
then usesystemctl start grub-btrfs.pathto start monitoring.
Otherwise, the unit will automatically start monitoring when the mount point will be available. -
You can view your change to
systemctl cat grub-btrfs.path. -
To revert change use
systemctl revert grub-btrfs.path.
-
2- If you would like grub-btrfs menu to automatically update on system restart/shutdown:
Look at this comment
Currently not implemented
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.