diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c index 8f691e0..7476f5a 100644 --- a/grub-core/loader/i386/bsd.c +++ b/grub-core/loader/i386/bsd.c @@ -415,7 +415,10 @@ grub_freebsd_add_meta_module (const char *filename, const char *type, grub_addr_t addr, grub_uint32_t size) { const char *name; - name = grub_strrchr (filename, '/'); + /* Don't strip the full path, some FreeBSD functionality, such + * as kldstat(2) / dtrace, rely on this. Instead we only need to remove + * any ZFS dataset information first. */ + name = grub_strrchr (filename, '@'); if (name) name++; else