Releases: Antynea/grub-btrfs
4.13
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
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
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.
- Now displays the following information in separate columns:
-
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}
- Remove
Config file:
-
GRUB_BTRFS_TITLE_FORMAT:
- Shows/Hides "date" "snapshot" "type" "description" in the Grub menu, custom order available.
Default: ("date" "snapshot" "type" "description")
- Shows/Hides "date" "snapshot" "type" "description" in the Grub menu, custom order available.
-
GRUB_BTRFS_IGNORE_SNAPPER_TYPE:
- Rename to GRUB_BTRFS_IGNORE_SNAPSHOT_TYPE
- Supports both timeshift and snapper tags/type.
- Rename to GRUB_BTRFS_IGNORE_SNAPSHOT_TYPE
-
GRUB_BTRFS_IGNORE_SNAPPER_DESCRIPTION:
- Rename to GRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION
- Supports both snapper and timeshift description/comments.
- Rename to GRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION
-
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 ...).
- Might be
- Make name of
-
GRUB_BTRFS_MKCONFIG_LIB:
- Make path of
grub-mkconfig_lib
file configurable.- Might be
/usr/share/grub2/grub-mkconfig_lib
on some systems (Opensuse ...)
- Might be
- Make path of
OpenRC support update:
- Adding an OpenRC deamon, see #178.
Makefile:
-
Install target:
- Adds two new parameters
SYSTEMD
andOPENRC
:- Allows users to explicitely turn on inclusion of the
systemd
orOpenRC
files. - By default
systemd
files are installed, invokedmake SYSTEMD=false OPENRC=true install
to installOpenRC
files instead.
- Allows users to explicitely turn on inclusion of the
- Adds two new parameters
-
Help target:
- Include
systemd
files (make parameter SYSTEMD). - Include
OpenRC
files (make parameter OPENRC).
- Include
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 withGRUB_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
v4.10.1
v4.10
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
- For a snapshot to be valid, it must contain a boot folder and a kernel from the official list
- 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.
- Before, the "grub-btrfs.cfg" file was deleted and then the new configuration was written.
-
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
-
- Add Two new variables:
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:
- Remove instructions
(Refer to the project website, installation section)
- Remove instructions
- Deletes unused code:
- Limit generation of menuentries if exceeds 250 has never been used.
Uses "GRUB_BTRFS_LIMIT" (default 50) instead.
- Limit generation of menuentries if exceeds 250 has never been used.
- Write-protect user data
- The script does not need write access to the data.
Adds "ro" flags to provide protection against accidental writing.
- The script does not need write access to the data.
-
Readme:
- Update "Installation section":
- Adds required dependencies
- Indicates that the command "update-grub", is an alias to "grub-mkconfig" on Debian-like distributions.
- Update "Installation section":
v4.9
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 activatedsystemctl enable grub-btrfs.path
,
it will be necessary to start the unit for monitoring to beginsystemctl start grub-btrfs.path
.
Refer #139 and #138 (comment) for further explanations.
- Allows the unit to start and stop automatically when the mount point is detected.
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
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
- mkinitcpio dependency is replaced by the new parameter
-
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, amake uninstall
is performed.
- This prevents some warnings being output when on a non-Archlinux system,
- Use the new
-
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.
- the table is being expanded by a new column describing the type of
- Include mkinitcpio hook (make parameter
-
v4.8
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:
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