Add support for the kernel being within a btrfs subvolume #226
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current release fails to find my kernel due to my use of btrfs.
On my system, "/boot" is within a subvolume named "@" (a fairly standard approach to btrfs filesystem layout) and GRUB mounts the btrfs partition at the top level, meaning that it sees the boot directory at "/@/boot"; the result is that
grep -Eo 'BOOT_IMAGE=[^ ]+returns "/@/boot/vmlinuz...". Once the system has booted however, the boot directory is found simply at "/boot", rather than "/@/boot", so the script currently reports that the kernel can't be found when running in live mode. This PR resolves this issue.While not the case on my system (and usually advised against as being unnecessary) some users may use a separate btrfs subvolume for their "/boot" directory (eg. "@boot"), so I've written my patch to also be able to handle these, relying on the existing code used to prepend "/boot".
Some other btrfs configurations are possible (eg. putting the root filesystem directly at the top level), but these should already be catered for by the existing code.