diff options
author | Wilken 'Akiko' Gottwalt | 2021-05-27 09:29:01 +0200 |
---|---|---|
committer | Wilken 'Akiko' Gottwalt | 2021-05-27 09:29:01 +0200 |
commit | 79b08b2af3a551bcc32dd469ef8b50666c581c14 (patch) | |
tree | a5fddf03bc13818aaac4fdeaf41f72ecead86e84 /grub-install_addsyncs.patch | |
parent | 7c7ee87e51afb0b166e93fc399d39cf5c0729717 (diff) | |
download | aur-79b08b2af3a551bcc32dd469ef8b50666c581c14.tar.gz |
updated version to last maintained debian version (77)
Current binutils 2.36+ introduces an odd bug that causes the stage1
and stage2 files to bloat to over 100 MiB. This is not fixed yet.
Diffstat (limited to 'grub-install_addsyncs.patch')
-rw-r--r-- | grub-install_addsyncs.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/grub-install_addsyncs.patch b/grub-install_addsyncs.patch new file mode 100644 index 000000000000..390c40c2db57 --- /dev/null +++ b/grub-install_addsyncs.patch @@ -0,0 +1,57 @@ + + Date: 2005-11-11 + Author: Otavio Salvador + Comment: Stolen from Fedora grub package. + Add syncs to ensure that filesystem cache are flushed. + + -- Original comment, below + +I just found another semi-critical bug, whose fix should really get +into 0.91. + +It turns out that "grub-install" doesn't have any "sync" calls to make +sure any filesystem caches are coherent with the raw devices they are +on top of... so if your filesystem waits to write out any data from the +copy command in the script to put the "stage1" and "stage2" in their +final location, you're hosed. + +I found this because it just bit me on one of my systems running stock +RedHat 7.2 with a large "stage2". + +The only script that is patched here is "grub-install". The others +don't appear to need it as they either unmount things first or don't +refer to devices. + +Hmm. Maybe the right fix is to make the "sync" system call when +starting the GRUB shell with a device map that refers to any real disks +or something like that. + + Erich Stefan Boleyn <erich@uruk.org> http://www.uruk.org/ +"Reality is truly stranger than fiction; Probably why fiction is so popular" + +Index: b/util/grub-install.in +=================================================================== +--- a/util/grub-install.in ++++ b/util/grub-install.in +@@ -384,6 +384,10 @@ + # Create a safe temporary file. + test -n "$mklog" && log_file=`$mklog` + ++ # Before all invocations of the grub shell, call sync to make sure ++ # the raw device is in sync with any bufferring in filesystems. ++ sync ++ + $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file + quit + EOF +@@ -509,6 +513,10 @@ + # Create a safe temporary file. + test -n "$mklog" && log_file=`$mklog` + ++# Before all invocations of the grub shell, call sync to make sure ++# the raw device is in sync with any bufferring in filesystems. ++sync ++ + # Now perform the installation. + $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file + root $root_drive |