Hi Eric.
> Correct - that reads the first few bytes and looks for
> the xfs magic number.
I knew there was a sort-of simple way but I thought that
that function was out of booty's context (or something)
so that I couldn't call it directly. I'm glad I was wrong.
>>I'll try that if you wrote there and get back to you tomorrow.
>>Right now it's pretty late .. 0320. ouch... Yup, definately tomorrow.
>
> Great, thanks for doing all the work on this. Perhaps when you
> get it tidied up you can add this info to the Red Hat bugzilla
> bug tracking this problem?
How does this patch look?
I only tried it when the root was either XFS or EXT3 with no /boot
partition but I don't see why it wouldn't work in other cases.
If you think it's ok then I'll post it to that bugzilla entry.
Know the number of it (or have a link) ?
// Stefan
-- Attached file included as plaintext by Ecartis --
-- File: booty-xfs-workaround.patch
diff -urN booty-0.34-orig/bootloaderInfo.py booty-0.34/bootloaderInfo.py
--- booty-0.34-orig/bootloaderInfo.py 2004-03-16 19:16:51.000000000 +0100
+++ booty-0.34/bootloaderInfo.py 2004-04-09 03:47:13.000000000 +0200
@@ -818,6 +818,20 @@
isys.sync()
isys.sync()
+ # GRUB does a Bad Thing(TM) trying to read from the block
+ # device directly so we sort of have to force data to disk
+ # Note: It IS GRUB's fault, not XFS's fault.
+ import fsset
+ if fsset.isValidXFS(bootDev):
+ rhpl.executil.execWithRedirect( "/usr/sbin/xfs_freeze",
+ ["/usr/sbin/xfs_freeze", "-f", "/boot"],
+ stdout = "/dev/tty5", stderr = "/dev/tty5",
+ root = instRoot)
+ rhpl.executil.execWithRedirect( "/usr/sbin/xfs_freeze",
+ ["/usr/sbin/xfs_freeze", "-u", "/boot"],
+ stdout = "/dev/tty5", stderr = "/dev/tty5",
+ root = instRoot)
+
# really install the bootloader
p = os.pipe()
os.write(p[1], cmd + '\n')