Description: Cope with btrfs / inside an encrypted block device If / is inside an encrypted block device, then grub-probe can't tell what its filesystem type is. Work around this. Author: alexeagar@gmail.com Bug-Ubuntu: https://bugs.launchpad.net/bugs/757631 Forwarded: no Last-Update: 2011-06-15 Index: b/util/grub.d/10_linux.in =================================================================== --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -56,7 +56,8 @@ LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} fi -if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ]; then +if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ] \ + || [ "x`stat -f --printf=%T /`" = xbtrfs ]; then rootsubvol="`make_system_path_relative_to_its_root /`" rootsubvol="${rootsubvol#/}" if [ "x${rootsubvol}" != x ]; then Index: b/util/grub.d/20_linux_xen.in =================================================================== --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -56,7 +56,8 @@ LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} fi -if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ]; then +if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ] \ + || [ "x`stat -f --printf=%T /`" = xbtrfs ]; then rootsubvol="`make_system_path_relative_to_its_root /`" rootsubvol="${rootsubvol#/}" if [ "x${rootsubvol}" != x ]; then