Skip to content

Releases: Antynea/grub-btrfs

4.13

09 Jun 19:10
ade5a91
Compare
Choose a tag to compare

Script:

Add possibility to configure where grub-btrfs.cfg is created
Add possibility to configure grubs ${prefix} variable
Suppress warnings when mounting
Add possibility to pass custom kernel parameters to the kernel command line when booting a snapshot
Do not display a submenu entry in the grub main menu when no grub-btrfs.cfg exits (thanks @kevinchevreuil)
Delete grub-btrfs.cfg at when the script executes to prevent dead entries (thanks @kevinchevreuil)

Daemon:

Add option to use old timeshift version <22.06
Add option to watch snaptshot directories recursively
Add possibility to watch several snapshot directories

Makefile

Automatically update grub at install (opt-out with GRUB_UPDATE_EXCLUDE=true) (thanks @kevinchevreuil)
Make installing the documentation (manpages, readme, license) optional

Readme / Manpages

Add instructions for the new daemon options
Revisit Readme with many improvements (thanks @danboid)

v4.12

23 Nov 15:45
02c3fbb
Compare
Choose a tag to compare

Script:

  • Print version with -V or --version (#225 #224)
  • Add warning that grub-mkconfig must be run eat least once before running the script standalone (#219)
  • Improve error message when grub-btrfs.new contains syntax errors (#230)
  • sanitize snapshot comments from ' to prevent syntax errors (#198 #230)
  • fix silent update-grub failure when filesystem of root partition is not supported by grub (thanks @S-trace, #223 #222)

Daemon:

  • Merged solutions for SystemD and OpenRC into one single daemon (#218) that works with timeshift 22.06 and above (#211 #213)
  • Added a systemd .service-file for the daemon
  • Added configuration file for OpenRC for the daemon (thanks @Megver83, #210)

Config:

  • GRUB_BTRFS_VERSION holds the version and should not be changed by users (but can be by maintainers if they patch something and want to reflect that in the version for example)

Makefile:

  • Improved help
  • compress and install manpages
  • added some ASCII art

Readme:

  • Added instructions for the new daemon
  • Improved usage instructions
  • Added instructions for Kali Linux (thanks @Re4son, #197)
  • Fix wording, grammar and spelling mistakes (thanks @Semnodime @budswa)
  • Better instructions for Fedora (#221)
  • Added man-pages for script (grub-btrfs.8) and daemon (grub-btrfsd.8)

v4.11

29 Nov 18:20
79ae25e
Compare
Choose a tag to compare

Improvement:

Script:

  • Grub-menu:

    • Now displays the following information in separate columns:
      • Date of snapshot
      • Path of snapshot
      • Type/Tags of snapshot if available (snapper/timeshift)
      • Description/Comments of snapshot if available (snapper/timeshift)
    • Possibility to display only the desired information(s) (see config file).
    • Adds a header for the column title.
  • Boot partition detection:

    • grub-btrfs is now able to detect if the boot folder/partition is a subvolume.
      • GRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION should no longer be needed for this case.
  • Make path of grub-mkconfig_lib configurable:

    • Remove datarootdir variable, is no longer used
    • Replace $datarootdir/grub/grub-mkconfig_lib with ${GRUB_BTRFS_MKCONFIG_LIB:-/usr/share/grub/grub-mkconfig_lib}

Config file:

  • GRUB_BTRFS_TITLE_FORMAT:

    • Shows/Hides "date" "snapshot" "type" "description" in the Grub menu, custom order available.
      Default: ("date" "snapshot" "type" "description")
  • GRUB_BTRFS_IGNORE_SNAPPER_TYPE:

    • Rename to GRUB_BTRFS_IGNORE_SNAPSHOT_TYPE
      • Supports both timeshift and snapper tags/type.
  • GRUB_BTRFS_IGNORE_SNAPPER_DESCRIPTION:

    • Rename to GRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION
      • Supports both snapper and timeshift description/comments.
  • GRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION:

    • grub-btrfs is now able to detect if the boot folder/partition is a subvolume.
      Activating this parameter should no longer be necessary for this case.
  • GRUB_BTRFS_SCRIPT_CHECK:

    • Make name of grub-script-check configurable.
      • Might be grub2-script-check on some systems (Fedora ...).
  • GRUB_BTRFS_MKCONFIG_LIB:

    • Make path of grub-mkconfig_lib file configurable.
      • Might be /usr/share/grub2/grub-mkconfig_lib on some systems (Opensuse ...)

OpenRC support update:

  • Adding an OpenRC deamon, see #178.

Makefile:

  • Install target:

    • Adds two new parameters SYSTEMD and OPENRC:
      • Allows users to explicitely turn on inclusion of the systemd or OpenRC files.
      • By default systemd files are installed, invoked make SYSTEMD=false OPENRC=true install to install OpenRC files instead.
  • Help target:

    • Include systemd files (make parameter SYSTEMD).
    • Include OpenRC files (make parameter OPENRC).

Readme:

  • Update Automatically update grub section:
    • Update OpenRC instructions.

Miscellaneous:

Script:

  • Snapper:

    • Now, the information is retrieved from the info.xml file.
  • Timeshift:

    • Now, the information is retrieved from the info.json file.
  • Ignore snapper/timeshift snapshot as soon as possible.

  • Show full path snapshot or only name:

    • Remove, this feature never worked correctly.
  • Probe informations from device:

    • Add the UUID of the root and boot subvolumes.
  • GRUB_BTRFS_PREFIXENTRY is remove.

  • Variables:

    • Rename some variables.
  • Header:

    • Update the header to reflect the changes.
  • Replace grub_script_check variable with GRUB_BTRFS_SCRIPT_CHECK, see config file.

  • Adds missing initrd

Config file:

  • GRUB_BTRFS_PREFIXENTRY:

    • Remove, no longer use.
  • GRUB_BTRFS_DISPLAY_PATH_SNAPSHOT:

    • Remove, no longer use.
  • GRUB_BTRFS_PREFIXENTRY:

    • Remove, no longer use.
  • GRUB_BTRFS_DISPLAY_PATH_SNAPSHOT:

    • Remove, no longer use.

Readme:

  • Update What does grub-btrfs v4.xx do section

    • Adds support for timeshift tags/comments.
  • Update Installation section

    • Update of dependencies required for manual installation.
    • Adds make help

v4.10.2

07 Oct 15:40
a790ff0
Compare
Choose a tag to compare

Refer to : v4.10

Miscellaneous:

  • Script:

    • Fixed: "Deactivate the script as soon as possible …"
      • "disable_script" function will no longer stop "grub-mkconfig" prematurely.
  • Readme:

    • Add Gentoo and OpenRC instructions

v4.10.1

26 Sep 17:09
b040822
Compare
Choose a tag to compare

Refer to : v4.10

Miscellaneous:

  • Script:
    • Create entries with matching version doesn't work properly. Fix #169

v4.10

24 Sep 14:00
8142691
Compare
Choose a tag to compare

Improvement:

  • Script:

    • Add filter to ignore snapper's snapshot "type or description" during run "grub-mkconfig" (#158) ...
    • Add possibility to boot without init(rd,ramfs) (#164) :
      • For a snapshot to be valid, it must contain a boot folder and a kernel from the official list
        (or have been added to the custom kernel list)
      • if a snapshot doesn't contain an init(rd,ramfs), it will be detected as valid.
      • Suppress script stop when an init is not found
    • Adds trap command on EXIT signal:
      • Now umount command will launch on EXIT signal.
      • Adds a function called by the trap on EXIT signal to unmount and delete the temporary folder.
        (That should be the end of multiple tmp.xxxxxxxxxx in /tmp)
        • If the command fails, retry every 2 seconds. After 10 attempts, it will stop and display a warning.
        • If the command is successful, "Succes" will be displayed.
      • Adds "grub-btrfs" as a prefix to the temporarie mount folder.
        (before = tmp.xxxxxxxxx , now = grub-btrfs.xxxxxxxxxx)
    • Rework the creation of the "grub-btrfs.cfg" file:
      • Before, the "grub-btrfs.cfg" file was deleted and then the new configuration was written.
        No backup was made.
      • Now, the new configuration will be written in a temporary file "grub-btrfs.new" and then analysed with the "grub_script_check" command before being finally written in the "grub-btrfs.cfg" file.
        If an error is detected, the "grub-btrfs.new" file will coexist with the old "grub-btrfs.cfg" file, if it exists.
  • Config file:

    • Add Two new variables:
      • "GRUB_BTRFS_IGNORE_SNAPPER_TYPE"
        Ignore specific type of snapper's snapshot during run "grub-mkconfig".
        Type = single, pre or post.

      • "GRUB_BTRFS_IGNORE_SNAPPER_DESCRIPTION"
        Ignore specific description of snapper's snapshot during run "grub-mkconfig".
        See Config file

Miscellaneous:

  • Script:

    • Removes double negation in file test operators
    • Remove redundant check
    • Deactivate the script as soon as possible …
      With these changes, the script will be disabled as soon as possible, if :
      • "GRUB_BTRFS_DISABLE" If this variable is set to "true"
      • "btrfs-progs isn't installed" This package is required to retrieve information from the btrfs filesystem.
      • "grub-mkconfig_lib couldn't be found" This library is required because the script depends on it.
      • "Root filesystem isn't btrfs" grub-btrfs currently checks only the btrfs snapshots present on the root partition.
    • Corrects printf format string
    • Update header installation section:
    • Deletes unused code:
      • Limit generation of menuentries if exceeds 250 has never been used.
        Uses "GRUB_BTRFS_LIMIT" (default 50) instead.
    • Write-protect user data
      • The script does not need write access to the data.
        Adds "ro" flags to provide protection against accidental writing.
  • Readme:

    • Update "Installation section":
      • Adds required dependencies
      • Indicates that the command "update-grub", is an alias to "grub-mkconfig" on Debian-like distributions.

v4.9

12 Apr 12:08
3433754
Compare
Choose a tag to compare

Improvement:

  • grub-btrfs.path:
    • 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.
      Refer #139 and #138 (comment) for further explanations.

Remember to modify your configuration accordingly.

Miscellaneous:

  • Makefile:

    • Make sure make is invoked with appropriate permissions (#146)
  • Readme :

    • Update "Automatically update grub" 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.

v4.8.1

28 Jan 13:10
2f22fd8
Compare
Choose a tag to compare

Miscellaneous:

  • Improves Makefile:
    • Adds a new make parameter INITCPIO:

      • Allows users to explicitely turn on inclusion of the hook
      • By default initcpio hooks are not installed, invoked make INITCPIO=true install to use them.
    • Install target:

      • mkinitcpio dependency is replaced by the new parameter INITCPIO
    • Uninstall target:

      • Use the new INITCPIO parameter to delete the hook folder.
        • This prevents some warnings being output when on a non-Archlinux system,
          without a previously installed initcpio hook, a make uninstall is performed.
    • Help target:

      • Include mkinitcpio hook (make parameter INITCPIO)
      • Redisign table :
        • the table is being expanded by a new column describing the type of
          data that each parameter may be assigned, like paths or boolean values.

v4.8

17 Jan 02:29
d68fdf5
Compare
Choose a tag to compare

Improvement:

  • Script:

    • Improves the rootflags option in the kernel command line:
    • Remove "rw" flag.
    • Adds a new config variable "GRUB_BTRFS_ROOTFLAGS" (#133)
      See config file section below for more infos.
  • Config file:

    • Adds a new config variable "GRUB_BTRFS_ROOTFLAGS" (#133)
      The new variable is used to include user-defined rootflags in the
      kernel command line of generated snapshot bootmenu entries.
      See config file for more infos.

Miscellaneous:

  • Improves systemd service:

    • grub-btrfs.service: remove unnecessary path for bash and grub-mkconfig command
  • Improves Makefile:

    • Added "uninstall" and "help" target to ".phony".

    • Install target:

      • Hook initcpio will be installed only on Arch Linux like distributions.
    • Uninstall target:

      • All commands are in silent mode.
      • "rmdir" command will not interrupt the uninstallation if the folder does not exist.
      • Remove "-r" option to "rm" command.
      • Fix a mistake in deleting the "readme" file.
      • Uninstalling the "grub-btrfs.cfg" file uses the "GRUB_BTRFS_GRUB_DIRNAME" variable.
      • Delete initcpio folder if not on Arch.
      • Delete "grub-btrfs" docs and licenses folders.
    • help target:

      • Add "help" target.
  • readme.md: add warning section to systemd service section

  • config file: Improves the description of the variable GRUB_BTRFS_MKCONFIG

v4.7.2

30 Dec 14:40
9408231
Compare
Choose a tag to compare

Miscellaneous:

  • grub-btrfs.service
    • Fix #127
      Replaces "GRUB_BTRFS_DIRNAME" variable to match with new variable "GRUB_BTRFS_GRUB_DIRNAME" in config file.