Accepting request 906622 from home:michael-chang:branches:Base:System

- Fix error not a btrfs filesystem on s390x (bsc#1187645)
  * 80_suse_btrfs_snapshot

- Fix error gfxterm isn't found with multiple terminals (bsc#1187565)
  * grub2-fix-error-terminal-gfxterm-isn-t-found.patch

- Fix boot failure after kdump due to the content of grub.cfg is not
  completed with pending modificaton in xfs journal (bsc#1186975)
  * grub-install-force-journal-draining-to-ensure-data-i.patch
- Patch refreshed
  * grub2-mkconfig-default-entry-correction.patch

OBS-URL: https://build.opensuse.org/request/show/906622
OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=387
This commit is contained in:
Michael Chang 2021-07-16 08:23:34 +00:00 committed by Git OBS Bridge
parent a3bdb368a2
commit 8c8da55daa
5 changed files with 83 additions and 23 deletions

View File

@ -4,16 +4,22 @@ SNAPSHOTS="/.snapshots"
if [ "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" = "xtrue" ] &&
[ "x${GRUB_FS}" = "xbtrfs" ] &&
[ -d "${SNAPSHOTS}" ]; then
SNAPSHOT_RID=`btrfs inspect-internal rootid ${SNAPSHOTS}`
ROOT_RID=`btrfs inspect-internal rootid /`
if [ -n "${SNAPSHOT_RID}" -a "${SNAPSHOT_RID}" != "${ROOT_RID}" ]; then
SNAPSHOT_SUBVOL=`btrfs inspect-internal subvolid-resolve ${SNAPSHOT_RID} /`
ROOT_SUBVOL=`btrfs inspect-internal subvolid-resolve ${ROOT_RID} /`
INODE=`stat -c '%i' ${SNAPSHOTS}`
if [ "x${INODE}" = "x256" -a "x${ROOT_SUBVOL}${SNAPSHOTS}" != "x${SNAPSHOT_SUBVOL}" ]; then
echo "btrfs-mount-subvol (\$root) ${SNAPSHOTS} ${SNAPSHOT_SUBVOL}"
machine=`uname -m`
case "x$machine" in
xs390 | xs390x) : ;;
*)
SNAPSHOT_RID=`btrfs inspect-internal rootid ${SNAPSHOTS}`
ROOT_RID=`btrfs inspect-internal rootid /`
if [ -n "${SNAPSHOT_RID}" -a "${SNAPSHOT_RID}" != "${ROOT_RID}" ]; then
SNAPSHOT_SUBVOL=`btrfs inspect-internal subvolid-resolve ${SNAPSHOT_RID} /`
ROOT_SUBVOL=`btrfs inspect-internal subvolid-resolve ${ROOT_RID} /`
INODE=`stat -c '%i' ${SNAPSHOTS}`
if [ "x${INODE}" = "x256" -a "x${ROOT_SUBVOL}${SNAPSHOTS}" != "x${SNAPSHOT_SUBVOL}" ]; then
echo "btrfs-mount-subvol (\$root) ${SNAPSHOTS} ${SNAPSHOT_SUBVOL}"
fi
fi
fi
;;
esac
cat <<EOF
if [ -f "${SNAPSHOTS}/grub-snapshot.cfg" ]; then
source "${SNAPSHOTS}/grub-snapshot.cfg"

View File

@ -29,6 +29,10 @@ desired as reportedly having negative side effect. With this patch
applied, the boot falilure can no longer be reproduced with above
procedure.
v2:
Fix boot failure after kdump due to the content of grub.cfg is not
completed with pending modificaton in xfs journal (bsc#1186975)
Signed-off-by: Michael Chang <mchang@suse.com>
---
Makefile.util.def | 1 +
@ -196,3 +200,31 @@ Index: grub-2.06/util/grub-install.c
/*
* Either there are no platform specific code, or it didn't raise
* ponr. Raise it here, because usually this is already past point
Index: grub-2.06/util/grub-mkconfig.in
===================================================================
--- grub-2.06.orig/util/grub-mkconfig.in
+++ grub-2.06/util/grub-mkconfig.in
@@ -328,6 +328,15 @@ for i in "${grub_mkconfig_dir}"/* ; do
esac
done
+sync_fs_journal () {
+ if test "x$GRUB_DEVICE" = "x$GRUB_DEVICE_BOOT" &&
+ test "x$GRUB_FS" = "xxfs" -o "x$GRUB_FS" = "xext2" &&
+ test "x${grub_cfg}" != "x" -a "x`make_system_path_relative_to_its_root $grub_cfg`" = "x/boot/grub2/grub.cfg" &&
+ test -x /usr/sbin/fsfreeze; then
+ /usr/sbin/fsfreeze --freeze / && /usr/sbin/fsfreeze --unfreeze /
+ fi
+} >&2
+
if test "x${grub_cfg}" != "x" ; then
if ! ${grub_script_check} ${grub_cfg}.new; then
# TRANSLATORS: %s is replaced by filename
@@ -341,6 +350,7 @@ and /etc/grub.d/* files or please file a
# none of the children aborted with error, install the new grub.cfg
cat ${grub_cfg}.new > ${grub_cfg}
rm -f ${grub_cfg}.new
+ sync_fs_journal || true
fi
fi

View File

@ -10,24 +10,25 @@ If set GRUB_TERMINAL="gfxterm", the error message "terminal
'gfxterm' isn't found" will be logged to screen. This is caused
by GRUB_TERMINAL_INPUT erroneously set to gfxterm. This patch
fixes the issue by not setting it.
v2:
Fix error gfxterm isn't found with multiple terminals (bsc#1187565)
---
util/grub-mkconfig.in | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
Index: grub-2.02~beta2/util/grub-mkconfig.in
Index: grub-2.06/util/grub-mkconfig.in
===================================================================
--- grub-2.02~beta2.orig/util/grub-mkconfig.in
+++ grub-2.02~beta2/util/grub-mkconfig.in
@@ -150,7 +150,11 @@ fi
--- grub-2.06.orig/util/grub-mkconfig.in
+++ grub-2.06/util/grub-mkconfig.in
@@ -172,7 +172,8 @@ fi
# XXX: should this be deprecated at some point?
if [ "x${GRUB_TERMINAL}" != "x" ] ; then
- GRUB_TERMINAL_INPUT="${GRUB_TERMINAL}"
+# bnc#771393 - fix error: terminal 'gfxterm' isn't found.
+# by not specifying 'gfxterm' to GRUB_TERMINAL_INPUT
+ if [ "x${GRUB_TERMINAL}" != "xgfxterm" ]; then
+ GRUB_TERMINAL_INPUT="${GRUB_TERMINAL}"
+ fi
+# bnc#771393, bsc#1187565 - fix error: terminal 'gfxterm' isn't found.
+ GRUB_TERMINAL_INPUT="`echo ${GRUB_TERMINAL} | sed -e '/\bgfxterm\b/{s/\bconsole\b//g;s/\bgfxterm\b/console/}'`"
GRUB_TERMINAL_OUTPUT="${GRUB_TERMINAL}"
fi

View File

@ -1,8 +1,8 @@
Index: grub-2.06~rc1/util/grub-mkconfig.in
Index: grub-2.06/util/grub-mkconfig.in
===================================================================
--- grub-2.06~rc1.orig/util/grub-mkconfig.in
+++ grub-2.06~rc1/util/grub-mkconfig.in
@@ -347,6 +347,11 @@ and /etc/grub.d/* files or please file a
--- grub-2.06.orig/util/grub-mkconfig.in
+++ grub-2.06/util/grub-mkconfig.in
@@ -356,6 +356,11 @@ and /etc/grub.d/* files or please file a
# none of the children aborted with error, install the new grub.cfg
cat ${grub_cfg}.new > ${grub_cfg}
rm -f ${grub_cfg}.new
@ -11,6 +11,6 @@ Index: grub-2.06~rc1/util/grub-mkconfig.in
+ if test -x /usr/sbin/grub2-check-default; then
+ /usr/sbin/grub2-check-default >&2
+ fi
sync_fs_journal || true
fi
fi

View File

@ -1,3 +1,24 @@
-------------------------------------------------------------------
Mon Jun 28 10:14:26 UTC 2021 - Michael Chang <mchang@suse.com>
- Fix error not a btrfs filesystem on s390x (bsc#1187645)
* 80_suse_btrfs_snapshot
-------------------------------------------------------------------
Wed Jun 23 07:41:57 UTC 2021 - Michael Chang <mchang@suse.com>
- Fix error gfxterm isn't found with multiple terminals (bsc#1187565)
* grub2-fix-error-terminal-gfxterm-isn-t-found.patch
-------------------------------------------------------------------
Mon Jun 21 10:45:40 UTC 2021 - Michael Chang <mchang@suse.com>
- Fix boot failure after kdump due to the content of grub.cfg is not
completed with pending modificaton in xfs journal (bsc#1186975)
* grub-install-force-journal-draining-to-ensure-data-i.patch
- Patch refreshed
* grub2-mkconfig-default-entry-correction.patch
-------------------------------------------------------------------
Thu Jun 3 11:17:49 UTC 2021 - Michael Chang <mchang@suse.com>