This is the same issue I reported yesterday to GRUB bug mailing list. I'll just copy'n'paste the email: GRUB has a segfault issue that comes up, when using XFS as the filesystem for the boot directory and GRUB has been compiled without writable string support. With current GCC versions writable string support is disabled by default and -fwritable-string is deprecated. Programs should not assume that constant strings, which are stored in the text area of the program, are writable. The following three lines from stage2/fsys_xfs.c contain the statements that causes GRUB to segfault: Line 337 static char *usual[2] = {".", ".."}; Line 339 char *name = usual[0]; Line 405 name[namelen] = 0; First we declare usual to contain two constant strings. Then we assign one of them to name and later we (might) try to write to one character of the string. Please find attached a patch against current CVS that transforms usual into an array of characters, so that writing to them is safe.
Created attachment 57568 [details, diff] grub-xfs-writable-strings.patch
Patch has been accepted by upstream developers and I added it to our package. I consider this fix important because it breaks fresh install on xfs filesystems.
*** Bug 96095 has been marked as a duplicate of this bug. ***
*** Bug 97571 has been marked as a duplicate of this bug. ***