Ubuntu

grub-install hangs with xfs root/boot

Reported by Debian Bug Importer on 2004-09-16
216
This bug affects 24 people
Affects Status Importance Assigned to Milestone
grub (Baltix)
Undecided
Unassigned
grub (Debian)
Fix Released
Unknown
grub (Ubuntu)
Low
Unassigned
Declined for Gutsy by Colin Watson
Hardy
Low
Unassigned
grub-installer (Ubuntu)
Undecided
Unassigned
Declined for Gutsy by Colin Watson
Hardy
Undecided
Unassigned
ubiquity (Ubuntu)
Undecided
Colin Watson
Declined for Gutsy by Colin Watson
Hardy
Undecided
Unassigned

Bug Description

Automatically imported from Debian bug report #243835 http://bugs.debian.org/243835

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Wed, 14 Apr 2004 20:40:19 -0400
From: Joey Hess <email address hidden>
To: Debian Bug Tracking System <email address hidden>
Subject: grub-install hangs with xfs root/boot

--OXfL5xGRrasGEqWY
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Package: grub
Version: 0.93+cvs20031021-8
Severity: normal
Tags: d-i

The debian installer can install a system with / or /boot on XFS. When
it tries to install grub on such a system, the grub-install run hangs,
seemingly forever. The last thing output is "Probing devices to guess
BIOS drives." The cpu is pegged too. This has been reproduced on more
than one machine, and I found something that looked like the same
problem on google. I've seen it with both the 2.4.25 and 2.6.5 kernels.

We have put a guard in d-i to deal with this, it warns users that XFS
/boot (or root) will not work with grub. This is not an ideal solution,
users want to use XFS for these partitions.

Note that often, if the hanging grub is killed, grub-install can be
re-run and it does not hang, and works. I don't know why, but this makes
reproducing the problem annoying; the best way is to do a new d-i install
each time. :-/

Ancedotally, people seem to think the problem happens if the XFS
filesystem is not synced to disk when grub accesses it directly.

I've tried a few things. I tried adding 3 calls to sync before each call
to $grub_shell, but it still hangs. I remounted the filesystem ro and
then back to rw before calling grub-install, on the theory this might
make xfs put it in a consistent state, but no luck, it still hung.

It would be nice if this could be fixed, or even worked around better
than it currently is.

--=20
see shy jo

--OXfL5xGRrasGEqWY
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAfdnzd8HHehbQuO8RAsVHAJ9f87H61PJS2kYwcNx1HyMpzcQyigCfc31C
YHl/HbZZUbVLVgV6NtMp874=
=Q1Bc
-----END PGP SIGNATURE-----

--OXfL5xGRrasGEqWY--

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Sat, 24 Apr 2004 12:49:51 -0400
From: Joey Hess <email address hidden>
To: Julien BLACHE <email address hidden>
Cc: <email address hidden>, <email address hidden>
Subject: Re: Bug#245632: Installation report, Poweredge 750 with Adaptec AACRAID

--MGYHOYXEY6WxJCY8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Julien BLACHE wrote:
> > https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=3D99284&action=
=3Dview
>=20
> That's the one I had in mind, it's actually something that should be
> done in the bootloader installer, or in grub-install.

It seems to me that this would need to be done in grub-install,
presumably the idea is to freeze the XFS filesystem after the grub files
are copied to it, and before grub is run, and both steps happen in
grub-install

> Anyway, it's the way to go, and approved by the XFS gurus.

Ok well, let's see what the grub gurus have to say.

--=20
see shy jo

--MGYHOYXEY6WxJCY8
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAipqvd8HHehbQuO8RAm9SAKDcimqWzTRhY6RFyr0AwUr3aobrzACgtvGS
jtaK9f8O+XmpMdGA7JIv0TQ=
=yLIu
-----END PGP SIGNATURE-----

--MGYHOYXEY6WxJCY8--

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Sat, 24 Apr 2004 19:02:37 +0200
From: Julien BLACHE <email address hidden>
To: Joey Hess <email address hidden>
Cc: <email address hidden>, <email address hidden>
Subject: Re: Bug#245632: Installation report, Poweredge 750 with Adaptec
 AACRAID

Joey Hess <email address hidden> wrote:

>> > https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=99284&action=view
>>
>> That's the one I had in mind, it's actually something that should be
>> done in the bootloader installer, or in grub-install.
>
> It seems to me that this would need to be done in grub-install,
> presumably the idea is to freeze the XFS filesystem after the grub files
> are copied to it, and before grub is run, and both steps happen in
> grub-install

You got the idea :)

JB.

--
 Julien BLACHE <email address hidden> | Debian, because code matters more
 Debian & GNU/Linux Developer | <http://www.debian.org>
 Public key available on <http://www.jblache.org> - KeyID: F5D6 5169
 GPG Fingerprint : 935A 79F1 C8B3 3521 FD62 7CC7 CD61 4FD7 F5D6 5169

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Fri, 30 Apr 2004 13:34:26 +0200
From: David =?iso-8859-1?Q?H=E4rdeman?= <david@2gen.com>
To: <email address hidden>
Subject: Reassign bug 239111

reassign 239111 grub
retitle 239111 Freeze when installing GRUB on XFS boot partition
tags 239111 +d-i
merge 239111 243835
thanks

Debian Bug Importer (debzilla) wrote :

Message-Id: <email address hidden>
Date: Mon, 3 May 2004 20:04:33 -0400
From: Joey Hess <email address hidden>
To: <email address hidden>
Subject: reassign 246111 to grub, merging 239111 246111

# Automatically generated email from bts, devscripts version 2.7.95.1
reassign 246111 grub
merge 239111 246111

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Thu, 17 Jun 2004 23:11:45 +0200
From: martin f krafft <email address hidden>
To: <email address hidden>
Cc: <email address hidden>, <email address hidden>,
 <email address hidden>
Subject: Re: your mail

--0OAP2g/MAC+5xKAE
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

tags 239111 + patch
tags 246111 + patch
tags 243835 + patch
thanks

> 4. When grub installs, it displays a notice that it may take a long
> time in text mode. I think this should also be displayed by d-i
> so as to not confuse users.
>=20
> 5. Grub actually doesn't install. It hangs at 50% of 'grub-install
> (hd0)'. The console says it's probing BIOS drives. And it has
> been for 20 minutes...
>=20
> NOTE: This seems to be related to XFS and is a known bug in Grub.
> Killing grub-install from the console and restarting it from the
> menu does the trick.

The following patch seems to fix this by calling sync just before
invoking the grub shell:

--- grub-install.orig 2004-06-17 23:05:52.000000000 +0200
+++ grub-install 2004-06-17 23:11:20.000000000 +0200
@@ -446,6 +446,10 @@
 # Create a safe temporary file.
 test -n "$mklog" && log_file=3D`$mklog`
=20
+# Sync the filesystem to help XFS (and possibly others) to find the
+# stageX files (see Debian bugs #239111, #246111, #243835)
+/bin/sync
+
 # Now perform the installation.
 $grub_shell --batch $no_floppy --device-map=3D$device_map <<EOF >$log_file
 root $root_drive

Cheers,

--=20
Please do not CC me when replying to lists; I read them!
=20
 .''`. martin f. krafft <email address hidden>
: :' : proud Debian developer, admin, and user
`. `'`
  `- Debian - when you have better things to do than fixing a system
=20
Invalid/expired PGP subkeys? Use subkeys.pgp.net as keyserver!

--0OAP2g/MAC+5xKAE
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFA0gkRIgvIgzMMSnURArtEAJ9c03+HMEwGiMxWDHIYURhX4c2wYgCgpR/k
36hk3kuEct+3WOkaxeGV450=
=Qfnn
-----END PGP SIGNATURE-----

--0OAP2g/MAC+5xKAE--

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Fri, 18 Jun 2004 11:10:38 +0200
From: Bastian Blank <email address hidden>
To: martin f krafft <email address hidden>, <email address hidden>
Cc: <email address hidden>, <email address hidden>,
 <email address hidden>
Subject: Re: Bug#254919: your mail

--1LKvkjL3sHcu1TtY
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Jun 17, 2004 at 11:11:45PM +0200, martin f krafft wrote:
> +# Sync the filesystem to help XFS (and possibly others) to find the
> +# stageX files (see Debian bugs #239111, #246111, #243835)
> +/bin/sync

Never use absolute paths.

Bastian

--=20
Live long and prosper.
  -- Spock, "Amok Time", stardate 3372.7

--1LKvkjL3sHcu1TtY
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iEYEARECAAYFAkDSsY4ACgkQnw66O/MvCNEqkgCcCzs/BgqD0ajD6wN+RPrBChZn
vwoAoKz9zYYJZ2DfwX3cBCFNHvk+x7Sb
=F55s
-----END PGP SIGNATURE-----

--1LKvkjL3sHcu1TtY--

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Fri, 18 Jun 2004 10:36:26 -0500
From: Steve Langasek <email address hidden>
To: Bastian Blank <email address hidden>, <email address hidden>
Cc: <email address hidden>, <email address hidden>,
 <email address hidden>
Subject: Re: Bug#254919: your mail

--3MwIy2ne0vdjdPXF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Jun 18, 2004 at 11:10:38AM +0200, Bastian Blank wrote:
> On Thu, Jun 17, 2004 at 11:11:45PM +0200, martin f krafft wrote:
> > +# Sync the filesystem to help XFS (and possibly others) to find the
> > +# stageX files (see Debian bugs #239111, #246111, #243835)
> > +/bin/sync

> Never use absolute paths.

It is also questionable whether sync is sufficient to get the data on
disk into a state where grub can make use of it. The necessary command
seems to be xfs_freeze, as previously discussed on-list.

--=20
Steve Langasek
postmodern programmer

--3MwIy2ne0vdjdPXF
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFA0wv5KN6ufymYLloRAqBwAKCjObIWUDSpYkwNRo9dJITvz7+1xwCfQDLD
sOEFCP15JeWz+I83K1ImlMU=
=feAP
-----END PGP SIGNATURE-----

--3MwIy2ne0vdjdPXF--

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Wed, 23 Jun 2004 20:33:56 +0200
From: Robert Millan <email address hidden>
To: Steve Langasek <email address hidden>, <email address hidden>
Subject: Re: Bug#239111: Bug#254919: your mail

tags 239111 confirmed
thanks

On Fri, Jun 18, 2004 at 10:36:26AM -0500, Steve Langasek wrote:
> On Fri, Jun 18, 2004 at 11:10:38AM +0200, Bastian Blank wrote:
> > On Thu, Jun 17, 2004 at 11:11:45PM +0200, martin f krafft wrote:
> > > +# Sync the filesystem to help XFS (and possibly others) to find the
> > > +# stageX files (see Debian bugs #239111, #246111, #243835)
> > > +/bin/sync
>
> > Never use absolute paths.
>
> It is also questionable whether sync is sufficient to get the data on
> disk into a state where grub can make use of it. The necessary command
> seems to be xfs_freeze, as previously discussed on-list.

That means we should call "sync" and then call "xfs_freeze" if it is found
in path, right?

--
Robert Millan

"[..] but the delight and pride of Aule is in the deed of making, and in the
thing made, and neither in possession nor in his own mastery; wherefore he
gives and hoards not, and is free from care, passing ever on to some new work."

 -- J.R.R.T., Ainulindale (Silmarillion)

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Thu, 24 Jun 2004 08:52:06 +0200
From: Robert Millan <email address hidden>
To: <email address hidden>
Subject: upstream

tags 239111 moreinfo
tags 239111 - confirmed
tags 239111 upstream
thanks

--
Robert Millan

"[..] but the delight and pride of Aule is in the deed of making, and in the
thing made, and neither in possession nor in his own mastery; wherefore he
gives and hoards not, and is free from care, passing ever on to some new work."

 -- J.R.R.T., Ainulindale (Silmarillion)

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Thu, 24 Jun 2004 16:20:19 +0200
From: Robert Millan <email address hidden>
To: Joey Hess <email address hidden>
Cc: <email address hidden>
Subject: Re: Bug#239111: Bug#254919: your mail

tags 239111 - moreinfo
thanks

On Thu, Jun 24, 2004 at 01:37:04AM -0400, Joey Hess wrote:
> >
> > That means we should call "sync" and then call "xfs_freeze" if it is found
> > in path, right?
>
> You should check to see if the filesystem containing boot/grub is an
> XFS filesystem. If so, run xfs_freeze -f on the mount point of that
> filesystem before running grub, and then xfs_freeze -u afterwards. A
> sync before the freeze will not solve the problem (in my testing) but
> can't hurt.

Ok. Thanks Joey.

--
Robert Millan

"[..] but the delight and pride of Aule is in the deed of making, and in the
thing made, and neither in possession nor in his own mastery; wherefore he
gives and hoards not, and is free from care, passing ever on to some new work."

 -- J.R.R.T., Ainulindale (Silmarillion)

Debian Bug Importer (debzilla) wrote :

Message-Id: <email address hidden>
Date: Mon, 26 Jul 2004 18:02:12 -0400
From: Robert Millan <email address hidden>
To: <email address hidden>
Subject: Bug#239111: fixed in grub 0.95+cvs20040624-7

Source: grub
Source-Version: 0.95+cvs20040624-7

We believe that the bug you reported is fixed in the latest version of
grub, which is due to be installed in the Debian FTP archive:

grub-disk_0.95+cvs20040624-7_all.deb
  to pool/main/g/grub/grub-disk_0.95+cvs20040624-7_all.deb
grub-doc_0.95+cvs20040624-7_all.deb
  to pool/main/g/grub/grub-doc_0.95+cvs20040624-7_all.deb
grub_0.95+cvs20040624-7.diff.gz
  to pool/main/g/grub/grub_0.95+cvs20040624-7.diff.gz
grub_0.95+cvs20040624-7.dsc
  to pool/main/g/grub/grub_0.95+cvs20040624-7.dsc
grub_0.95+cvs20040624-7_i386.deb
  to pool/main/g/grub/grub_0.95+cvs20040624-7_i386.deb

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to <email address hidden>,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Robert Millan <email address hidden> (supplier of updated grub package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing <email address hidden>)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Mon, 26 Jul 2004 23:39:43 +0200
Source: grub
Binary: grub-disk grub grub-doc
Architecture: source i386 all
Version: 0.95+cvs20040624-7
Distribution: unstable
Urgency: low
Maintainer: Grub Maintainers <email address hidden>
Changed-By: Robert Millan <email address hidden>
Description:
 grub - GRand Unified Bootloader
 grub-disk - GRUB bootable disk image
 grub-doc - Documentation for GRand Unified Bootloader
Closes: 239111 261447 261570
Changes:
 grub (0.95+cvs20040624-7) unstable; urgency=low
 .
   * patches/xfs_freeze.diff: New. Fix grub-install for XFS. (Closes: #239111)
   * update-grub: s/local tmp//g. Thanks again, David. (Closes: #261570)
   * patches/raid_cciss.diff: New. Support for CCISS devices. (Closes: #261447)
   * Use type-handling to auto-generate dpkg archlist for i386 cpus.
     - control.in: New. Set 'Architecture: @i386@' and add type-handling to
       Build-Depends.
     - rules: Auto-generate debian/control in clean target.
Files:
 9ecc6a0fede724c8ad247ce8230875ec 857 admin optional grub_0.95+cvs20040624-7.dsc
 4256f9d5f1f6dc4f593925826af04dfd 53203 admin optional grub_0.95+cvs20040624-7.diff.gz
 1c34fb89807fb51fe1fa35cf8116863a 348762 admin optional grub_0.95+cvs20040624-7_i386.deb
 e6878cb78f5c8c2e1800e330cffcf4b5 226464 admin optional grub-disk_0.95+cvs20040624-7_all.deb
 49e59bf4d82798334d3d59ba317164a3 259142 doc optional grub-doc_0.95+cvs20040624-7_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBBXzdC19io6rUCv8RAs89AJ4sKpKGMlMypKgZ5XwtxuVizGrr3QCfWp73
FXfT9xAfiT9p5NlYhNT6do8=
=pidC
-----END PGP SIGNATURE-----

Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Mon, 9 Aug 2004 16:27:18 +0100
From: Euan MacGregor <email address hidden>
To: <email address hidden>
Cc: <email address hidden>, <email address hidden>
Subject: Not fixed when I tested it

reopen 239111
thanks

(Side note: the version that claims to have fixed it wasn't present with
the release candidate version of d-i, so this was using a sid snapshot image
from 20040807)

When trying to install Debian with an XFS root partion, it still hangs when
running grub-intall.

Thanks,

Euan.

Matt Zimmerman (mdz) wrote :

*** Bug 8039 has been marked as a duplicate of this bug. ***

Matt Zimmerman (mdz) wrote :

Colin, what's our best Warty strategy for this bug? If a fix is not forthcoming
from Debian, perhaps we should advise against XFS for root/boot, as is currently
done with JFS

Daniel Stone (daniels) wrote :

Last I saw, xfs_{freeze,unfreeze,io} needed to be included in the xfsprogs udeb,
and GRUB subsequently modified to use that. I'm happy to claim this bug if we
still want it fixed for Warty.

Colin Watson (cjwatson) wrote :

As far as Daniel Silverstone and I could determine, xfs_freeze -f followed by
xfs_freeze -u is not sufficient; we did try doing this in grub-install, and it
still hung. It may work sometimes, but it doesn't break the race condition.

I think the right answer for Warty is to totally refuse to put /boot on XFS. As
a rule, people seem to ignore the warning.

Stewart Smith (stewart) wrote :

Working with the XFS guys - <email address hidden> has the right people on it -
is probably a good idea.

It would be nice to have XFS support working for Warty :)

(one thing to remember is to NOT allow a boot block to be written on an xfs
PARTITION, as XFS does not leave 512bytes for a boot block. i.e. install into
/dev/hda not /dev/hda1)

Colin Watson (cjwatson) wrote :

We have SEVEN DAYS until the release candidate. :-) There's a limit to how
clever we can afford to be here, especially when Debian has already given up and
punted to lilo for XFS.

Note that XFS support does work in Warty; you just have to have something else
for /boot.

Colin Watson (cjwatson) wrote :

Actually, to be honest on another reading I don't see how the existing warning
when you try to do this isn't clear:

  Your root filesystem is an XFS filesystem. This is likely to cause problems
with the GRUB bootloader used by default with this installer; you might
experience problems installing or booting GRUB.

  You should use a small /boot partition with another filesystem, such as ext3.

  Use unrecommended XFS boot filesystem?

I'm not saying it's not a bug, but I think we can consider it not
release-critical. Matt?

Matt Zimmerman (mdz) wrote :

I didn't realize there was already a warning in this case. Definitely not
release-critical.

The latest d-i RC claims to have a fix for this, however, no?

Matt Zimmerman (mdz) wrote :

(In reply to comment #21)
> I didn't realize there was already a warning in this case. Definitely not
> release-critical.
>
> The latest d-i RC claims to have a fix for this, however, no?

(caught up on other comments, noticed you already answered this)

Matt Zimmerman (mdz) wrote :

If you want to turn this warning into a fatal error for Warty, that seems fine to me

Matt Zimmerman (mdz) wrote :

Is this indeed fixed in more recent d-i? Or is it still flaky?

Colin Watson (cjwatson) wrote :

Recent d-i works around the problem by falling back automatically to lilo for
XFS. I wouldn't call this a fix as such.

Colin was going to look at this one (d-i)

Mantas Kriaučiūnas (mantas) wrote :

Are you sure, that lilo or grub could be installed into root/boot partition with
xfs filesystem ?

Could you look at official XFS FAQ -
http://oss.sgi.com/projects/xfs/faq.html#lilowork

Q: Does LILO work with XFS?

This depends on where you install LILO.

Yes, for MBR (Master Boot Record) installations.

No, for root partition installations because the XFS superblock is written at
block zero, where LILO would be installed. This is to maintain compatibility
with the IRIX on-disk format, and will not be changed.

Colin Watson (cjwatson) wrote :

*** Bug 16073 has been marked as a duplicate of this bug. ***

Colin Watson (cjwatson) wrote :

*** Bug 20509 has been marked as a duplicate of this bug. ***

Debian Bug Importer (debzilla) wrote :

Message-Id: <email address hidden>
Date: Mon, 25 Apr 2005 13:10:25 -0600
From: David Everly <email address hidden>
To: <email address hidden>
Subject: tagging 239111

# Automatically generated email from bts, devscripts version 2.8.14
tags 239111 + patch

Debian Bug Importer (debzilla) wrote :

Message-Id: <email address hidden>
Date: Mon, 25 Apr 2005 21:11:11 -0600
From: David Everly <email address hidden>
To: <email address hidden>
Subject: tagging 239111

# Automatically generated email from bts, devscripts version 2.8.14
tags 239111 - patch

Debian Bug Importer (debzilla) wrote :
Download full text (4.5 KiB)

Message-ID: <email address hidden>
Date: Fri, 29 Apr 2005 11:37:44 -0600
From: David Everly <email address hidden>
To: <email address hidden>, <email address hidden>, <email address hidden>, <email address hidden>
Subject: new version of xfs_freeze.diff

--0lnxQi9hkpPO77W3
Content-Type: multipart/mixed; boundary="8GpibOaaTibBMecb"
Content-Disposition: inline

--8GpibOaaTibBMecb
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

tags 239111 + patch
tags 246111 + patch
tags 243835 + patch
thanks

I'm attaching a new version of xfs_freeze.diff which can replace the
current one in the sarge version of grub (debian/patches).

For xfs, in theory it is only needed to run 'xfs_freeze -f' followed
immediately by 'xfs_freeze -u'. This is because xfs_freeze is not
supposed to return until disk I/O is complete. However, this is
currently not the case with kernel-image-2.6.8-2-686 2.6.8-13:

   http://bugs.debian.org/306966

So this patch defaults to a 20 second sleep (which is what consistently
works on my systems), but has a new option (--sync-sleep) to customize
the sleep time.

In any case, the existing approach which tries to freeze, run a grub
shell, and then unfreeze really needs to be corrected, since it will
ALWAYS hang a system that is a single XFS partition for everything.

--=20
Encrypted Mail Preferred:
    Key ID: 8527B9AF
    Key Fingerprint: E1B6 40B6 B73F 695E 0D3B 644E 6427 DD74 8527 B9AF
    Information: http://www.gnupg.org/
                                                                           =
    =20
ASCII ribbon campaign:
() against HTML email
/\ against Microsoft attachments
    Information: http://www.expita.com/nomime.html

--8GpibOaaTibBMecb
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="xfs_freeze.diff"
Content-Transfer-Encoding: quoted-printable

--- svn.old/util/grub-install.in 2005-04-25 11:47:21.000000000 -0600
+++ svn/util/grub-install.in 2005-04-29 10:01:11.978324529 -0600
@@ -40,6 +40,7 @@
 no_floppy=3D
 force_lba=3D
 recheck=3Dno
+sync_sleep=3D20
 debug=3Dno
=20
 # look for secure tempfile creation wrappers on this platform
@@ -70,6 +71,8 @@
   --force-lba force GRUB to use LBA mode even for a buggy
                           BIOS
   --recheck probe a device map even if it already exists
+ --sync-sleep number of seconds to sleep while trying to
+ sync XFS
=20
 INSTALL_DEVICE can be a GRUB device name or a system device filename.
=20
@@ -81,6 +84,20 @@
 EOF
 }
=20
+# Usage: xfs_hack
+# Routine to flush xfs filesystem log (sync doesn't do this)
+# sleep is needed to give time for the log to be flushed
+xfs_hack () {
+ sync
+ if which xfs_freeze >/dev/null ; then
+ echo "Trying to sync filesystem, do not interrupt until complete."
+ xfs_freeze -f ${grubdir} 2>/dev/null
+ sleep $sync_sleep
+ xfs_freeze -u ${grubdir} 2>/dev/null
+ echo "Trying to sync filesystem is complete."
+ fi
+}
+
 # Usage: convert os_device
 # Convert an OS device to the corresponding GRUB drive.
 # This part is OS-speci...

Read more...

Debian Bug Importer (debzilla) wrote :

Message-Id: <email address hidden>
Date: Mon, 13 Jun 2005 10:38:45 +0200
From: Jan De Luyck <email address hidden>
To: Debian Bug Tracking System <email address hidden>
Subject: grub: patch works

Package: grub
Version: 0.95+cvs20040624-17
Followup-For: Bug #243835

The patch supplied by David Everly works perfectly, any idea when this might be introduced into mainline GRUB? I got bitten by the bug when trying to get it installed on my pure-XFS system.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.12-rc6
Locale: LANG=C, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)

Versions of packages grub depends on:
ii libc6 2.3.2.ds1-22 GNU C Library: Shared libraries an
ii libncurses5 5.4-5 Shared libraries for terminal hand

-- no debconf information

Debian Bug Importer (debzilla) wrote :

Message-Id: <email address hidden>
Date: Tue, 21 Jun 2005 06:32:18 -0600
From: David Everly <email address hidden>
To: <email address hidden>
Subject: merging 239111 243835 246111 309218

# Automatically generated email from bts, devscripts version 2.8.14
merge 239111 243835 246111 309218

Debian Bug Importer (debzilla) wrote :
Download full text (3.7 KiB)

Message-ID: <email address hidden>
Date: Tue, 21 Jun 2005 07:03:05 -0600
From: David Everly <email address hidden>
To: <email address hidden>, <email address hidden>, <email address hidden>,
 <email address hidden>
Subject: updated xfs_freeze.diff (--help output improved)

--Tu8ztk+XgTAiG9Id
Content-Type: multipart/mixed; boundary="54ZiyWcDhi/7bWb8"
Content-Disposition: inline

--54ZiyWcDhi/7bWb8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Here is an updated xfs_freeze.diff

It is the same as the previous version, except the output of --help
is a little better.
--=20
Encrypted Mail Preferred:
    Key ID: 8527B9AF
    Key Fingerprint: E1B6 40B6 B73F 695E 0D3B 644E 6427 DD74 8527 B9AF
    Information: http://www.gnupg.org/
                                                                           =
    =20
ASCII ribbon campaign:
() against HTML email
/\ against Microsoft attachments
    Information: http://www.expita.com/nomime.html

--54ZiyWcDhi/7bWb8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="xfs_freeze.diff"
Content-Transfer-Encoding: quoted-printable

--- grub-install 2005-04-25 11:47:21.000000000 -0600
+++ grub-install 2005-04-29 10:01:11.978324529 -0600
@@ -40,6 +40,7 @@
 no_floppy=3D
 force_lba=3D
 recheck=3Dno
+sync_sleep=3D20
 debug=3Dno
=20
 # look for secure tempfile creation wrappers on this platform
@@ -70,6 +71,8 @@
   --force-lba force GRUB to use LBA mode even for a buggy
                           BIOS
   --recheck probe a device map even if it already exists
+ --sync-sleep=3DSECONDS number of seconds to sleep while trying to
+ sync XFS
=20
 INSTALL_DEVICE can be a GRUB device name or a system device filename.
=20
@@ -81,6 +84,20 @@
 EOF
 }
=20
+# Usage: xfs_hack
+# Routine to flush xfs filesystem log (sync doesn't do this)
+# sleep is needed to give time for the log to be flushed
+xfs_hack () {
+ sync
+ if which xfs_freeze >/dev/null ; then
+ echo "Trying to sync filesystem, do not interrupt until complete."
+ xfs_freeze -f ${grubdir} 2>/dev/null
+ sleep $sync_sleep
+ xfs_freeze -u ${grubdir} 2>/dev/null
+ echo "Trying to sync filesystem is complete."
+ fi
+}
+
 # Usage: convert os_device
 # Convert an OS device to the corresponding GRUB drive.
 # This part is OS-specific.
@@ -247,6 +264,8 @@
  force_lba=3D"--force-lba" ;;
     --recheck)
  recheck=3Dyes ;;
+ --sync-sleep=3D*)
+ sync_sleep=3D`echo "$option" | sed 's/--sync-sleep=3D//'` ;;
     # This is an undocumented feature...
     --debug)
  debug=3Dyes ;;
@@ -336,6 +355,7 @@
     # Create a safe temporary file.
     test -n "$mklog" && log_file=3D`$mklog`
=20
+ xfs_hack
     $grub_shell --batch $no_floppy --device-map=3D$device_map <<EOF >$log_=
file
 quit
 EOF
@@ -414,6 +434,7 @@
     ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do
     cp -f $file ${grubdir} || exit 1
 done
+xfs_hack
=20
 # Make a default file.
 ${grub_set_default} --root-directory=3D${rootdir} default
@@ -451,6 +472,7 @@
 test -n "$mklog" && log_file=3...

Read more...

Matt Zimmerman (mdz) wrote :

Colin, is this old bug still relevant?

Carthik Sharma (carthik) wrote :

Changing to Needs Info since mdz asked a question of Colin Watson.

Changed in grub:
status: Unconfirmed → Needs Info
Colin Watson (cjwatson) wrote :

Yes, as far as I know this old bug is still relevant.

Carthik, in future, "Needs Info" is used for when we need info from a reporter, not for when somebody asks a question of the assignee.

Changed in grub:
status: Needs Info → Confirmed
Yves Glodt (yglodt) wrote :

After trying to migrate my dapper from ext3 to xfs I was confronted with this
bug... it is still reproducible in a fully updated dapper.

Pascal de Bruijn (pmjdebruijn) wrote :

I tried this with Dapper-Alternate-6.06.1, and XFS still doesn't work with GRUB out of the box. 'grub-install' failed.

However, the following strategy did work (on the shell):

#mount -t proc procfs /target/proc
#mount -o bind /dev /target/dev
#chroot /target /bin/bash
#source /etc/profile
# grub
grub> root (hd0,0)
grub> setup (hd0)

Now I have XFS and GRUB running just fine. I have XFS on all my filesystems (boot, root and home).

Rocco Stanzione (trappist) wrote :

I haven't tested, but xfs_freeze.diff is present in the Edgy package. Can someone test this on Edgy?

Changed in grub:
status: Confirmed → Needs Info
Pascal de Bruijn (pmjdebruijn) wrote :

Well Edgy Knot 3 still suffers from this, I'll try beta 1 shortly.

Rocco Stanzione (trappist) wrote :

Does bug #72733 confirm this?

Rouben (rouben) wrote :

Several duplicate bugs confirm this bug. Changing status to "Confirmed" under Ubuntu.

Changed in grub:
status: Needs Info → Confirmed
John Aasen (jaasen) wrote :

I have got /boot in an xfs partition and have been able to install grub.

The grub-install script did not complete and stayed in a D+ mode as reported by ps.
This seemed to be caused by the xfs_freeze performed
if xfs_freeze -f ${grubdir} ; then xfs_frozen=true ; fi

My workaround was to run the following from a console window:
sudo xfs_freeze -u /boot

Then the grub_install completed successfully, and grub has worked perfectly since.

Colin Watson (cjwatson) on 2007-04-20
Changed in grub:
assignee: kamion → nobody
trollord (trollenlord) wrote :

This is still valid for Feisty.

Pascal de Bruijn (pmjdebruijn) wrote :

The Gutsy live cd also does not allow XFS /boot.

This really should get fixed! Especially if we want to be taken seriously in enterprise environments.

Andreas Peer (andipeer) wrote :

This bug still exists in Gutsy. On XFS, lilo is installed by default.

Colin Watson (cjwatson) wrote :

This bug does not need further comments confirming its continued existence. I expect that it will continue to exist for some time yet, because it arises from a fundamental design issue on the part of XFS (it skates close to the edge of what POSIX permits, and thereby makes it impossible for grub-install to reliably force data out to disk such that its subsequent raw disk reads will work). I have heard that GRUB 2 may resolve this by not needing to know the sector number for stage 1.5, but I wouldn't hold your breath just yet. When we switch to GRUB 2 (not for Hardy), we will revisit this bug and see if it still exists.

I do not see that this prevents Ubuntu being "taken seriously in enterprise environments". I have yet to encounter an enterprise environment that required /boot to be on XFS.

Colin Watson (cjwatson) wrote :

I'm afraid this isn't going to change for Hardy.

Changed in grub:
status: Confirmed → Won't Fix

following site helped me to install grub: http://anti.teamidiot.de/nei/2006/10/debian_grubinstall_freeze_on_x/

i wanted to switch from lilo to grub so this is what i did to install grub
when ubuntu starts i logged in two of the consoles (strg+alt+F1 and F2)
in the first console i started "sudo install-grub /dev/sda"
when it hangs now i switched to the second console and typed: "sudo xfs_freeze -u ." repeat it until grub-install finishes on the first console!

it works now!

Colin Watson (cjwatson) on 2009-01-23
Changed in grub:
status: Confirmed → Unknown
Colin Watson (cjwatson) wrote :

I've updated the Debian bug link to one with much more detail. It appears that:

  * the original problem I ran into when trying to use xfs_freeze -f / xfs_freeze -u as a sequence point to force data to be written such that it would be readable by grub was fixed by the XFS developers upstream around Linux 2.6.19/20 (there's some speculation about exactly when)
  * grub-install has now been fixed in Debian to avoid writing data to the filesystem while it is frozen, which is the cause of the lockups addressed by the link in the previous comment
  * Frans Pop has verified that a machine previously unable to install grub on XFS during installation now can

Therefore, I plan to merge this all into Jaunty and see how it goes!

Changed in grub-installer:
status: New → Won't Fix
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package grub - 0.97-29ubuntu48

---------------
grub (0.97-29ubuntu48) jaunty; urgency=low

  [ Loic Minier ]
  * New patch, clear_esc_message, clears the "Press `ESC'" message when
    leaving this loop: at least a newline needs to be output for upcoming
    messages to be started on the first column, so it's easiest to simply
    clear the line completely as the message isn't needed anymore.

  [ Colin Watson ]
  * Cherry-pick from Debian, fixing LP: #8058 (not merging yet due to some
    revision control awkwardness):
    - patches/xfs_freeze.diff: Replace with a new patch, which thaws XFS
      inmediately after freezing it. (Closes: #239111, #243835, #246111,
      #309218, #425367) hopefully for good this time. Thanks everyone who
      sent their feedback, too many to list them here.

 -- Colin Watson <email address hidden> Fri, 23 Jan 2009 13:04:54 +0000

Changed in grub:
status: Confirmed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package grub-installer - 1.36ubuntu1

---------------
grub-installer (1.36ubuntu1) jaunty; urgency=low

  * Resynchronise with Debian (XFS change fixes LP: #8058). Remaining
    changes:
    - Show the grub menu and raise the menu timeout if other operating
      systems are installed.
    - Ask grub-installer/only_debian at medium priority.
    - Remove splash boot parameter unless debian-installer/framebuffer=true.
    - If / or /boot are on a removable device, install GRUB there by
      default.
    - Only mount /target/proc if it isn't already mounted.
    - Support setting OVERRIDE_UNSUPPORTED_OS in the environment to force
      grub-installer to use its default MBR selection method despite there
      being unsupported operating systems on the disk.
    - Unless grub-installer/make_active is preseeded to false, mark the
      partition to which GRUB is being installed as bootable, or failing
      that the first available primary partition on the disk to which GRUB
      is being installed.
    - Support grub-installer/bootdev_directory preseeding to make use of the
      relative path feature of grub4dos, so that we can point grub4dos at
      part of a disk for Wubi. Setting this disables normal grub
      installation, but still generates a device.map; it also hides the
      menu.
    - Only support grub-installer/grub2_instead_of_grub_legacy by preseeding
      for now.
    - Handle cases where /boot is bind-mounted.
    - Add another guard against calling 'udevadm info' with an empty device
      name.
    - Add support for writing an MBR on each disk in an mdadm-managed RAID
      providing /boot.
    - Properly make use of output from os-prober to configure the booting of
      other operating systems on dmraid arrays. Attempt to guess where in
      the device map the array belongs, by substituting the first drive in
      the dmraid array for the dmraid array device node itself, and removing
      any reference to other member disks of the array.
    - Add support for lpia.
    - Handle /boot being on a virtio device.
    - Set a sensible default boot device when /cdrom is not iso9660, as this
      is probably a USB install and (hd0) does not make sense when
      installing from a removable disk.
    - Use rootnoverify rather than root when chain-loading Microsoft
      operating systems.
    - 'dmraid -c -s' changed its output format; cope with both old and new.

grub-installer (1.36) unstable; urgency=low

  * Allow to install grub when /boot is on XFS. Since version 0.97-47lenny2
    grub supports XFS so it can be installed without hanging grub-installer.

 -- Colin Watson <email address hidden> Fri, 23 Jan 2009 13:19:18 +0000

Changed in grub-installer:
status: New → Fix Released
Colin Watson (cjwatson) on 2009-01-23
Changed in ubiquity:
status: New → Won't Fix
assignee: nobody → kamion
status: New → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubiquity - 1.11.5

---------------
ubiquity (1.11.5) jaunty; urgency=low

  [ Evan Dandrea ]
  * Full screen the window when in ONLY_UBIQUITY mode. The extra screen
    real estate makes the timezone map, among other widgets, easier to
    use.
  * Modified the keyboard setup page to produce a more visually obvious
    suggestion.
  * Automatic update of included source packages: grub-installer
    1.36ubuntu1, localechooser 2.09ubuntu1, user-setup 1.23ubuntu8.

  [ Mario Limonciello ]
  * Adjust logic for detecting incomplete language support. Just
    because a package doesn't "exist" doesn't mean that language support
    isn't all there. Some packages don't yet provide language-support-XY
    packages. (LP: #290398)

  [ Colin Watson ]
  * Remove old XFS-on-/boot validation, no longer needed now that
    grub-install has been fixed (LP: #8058).
  * Default hostname to 'oem-laptop' or 'oem-desktop' as appropriate in OEM
    mode, to allow OEM installations to be fully preseeded (thanks, Twisted
    Lincoln, Inc.; LP: #321341).

 -- Evan Dandrea <email address hidden> Wed, 28 Jan 2009 17:00:46 +0000

Changed in ubiquity:
status: Fix Committed → Fix Released
Changed in grub:
status: Unknown → Fix Released
Tarmo Aidantausta (bleadof) wrote :

Is this going to be released for Intrepid? I just installed it and wouldn't want to reinstall just to repartition /boot as ext3. :P

Colin Watson (cjwatson) wrote :

No, I doubt we will be updating Intrepid for this; it would take a lot of QA to make sure we hadn't broken grub for other people, and we won't be releasing updated installation images for Intrepid anyway. Sorry. Jaunty will be released soon, and you could use the beta ...

This is still happening for me in Jaunty. Seems that there's no workaround in the installer as the busybox consoles don't seem to know what xfs_freeze is.

The Installer was CRASHED just before FINISHING the Installation !

Changed in grub (Ubuntu):
assignee: nobody → Doubl'Dee (dragonsfurymawashy)
Phillip Susi (psusi) on 2014-03-04
Changed in grub (Ubuntu):
assignee: Doubl'Dee (dragonsfurymawashy) → nobody
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.