代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/grub2 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
From d371c69fed702b24a9025309c5773abddc18d3d3 Mon Sep 17 00:00:00 2001
From: Christian Glombek <lorbus@fedoraproject.org>
Date: Tue, 2 Apr 2019 16:22:21 +0200
Subject: [PATCH 169/220] grub.d: Split out boot success reset from menu auto
hide script
Also rename fallback and menu auto hide script to be executed
before and after boot success reset script.
In menu auto hide script, rename last_boot_ok var to menu_hide_ok
---
Makefile.util.def | 14 ++++++++---
util/grub.d/01_fallback_counting.in | 22 -----------------
util/grub.d/01_menu_auto_hide.in | 48 ------------------------------------
util/grub.d/08_fallback_counting.in | 24 ++++++++++++++++++
util/grub.d/10_reset_boot_success.in | 25 +++++++++++++++++++
util/grub.d/12_menu_auto_hide.in | 35 ++++++++++++++++++++++++++
6 files changed, 94 insertions(+), 74 deletions(-)
delete mode 100644 util/grub.d/01_fallback_counting.in
delete mode 100644 util/grub.d/01_menu_auto_hide.in
create mode 100644 util/grub.d/08_fallback_counting.in
create mode 100644 util/grub.d/10_reset_boot_success.in
create mode 100644 util/grub.d/12_menu_auto_hide.in
diff --git a/Makefile.util.def b/Makefile.util.def
index 2019ebd..1fa92ca 100644
--- a/Makefile.util.def
+++ b/Makefile.util.def
@@ -458,14 +458,14 @@ script = {
};
script = {
- name = '01_fallback_counting';
- common = util/grub.d/01_fallback_counting.in;
+ name = '08_fallback_counting';
+ common = util/grub.d/08_fallback_counting.in;
installdir = grubconf;
};
script = {
- name = '01_menu_auto_hide';
- common = util/grub.d/01_menu_auto_hide.in;
+ name = '12_menu_auto_hide';
+ common = util/grub.d/12_menu_auto_hide.in;
installdir = grubconf;
};
@@ -525,6 +525,12 @@ script = {
};
script = {
+ name = '10_reset_boot_success';
+ common = util/grub.d/10_reset_boot_success.in;
+ installdir = grubconf;
+};
+
+script = {
name = '10_xnu';
common = util/grub.d/10_xnu.in;
installdir = grubconf;
diff --git a/util/grub.d/01_fallback_counting.in b/util/grub.d/01_fallback_counting.in
deleted file mode 100644
index be0e770..0000000
--- a/util/grub.d/01_fallback_counting.in
+++ /dev/null
@@ -1,22 +0,0 @@
-#! /bin/sh -e
-
-# Boot Counting
-# The boot_counter env var can be used to count down boot attempts after an
-# OSTree upgrade and choose the rollback deployment when 0 is reached. Both
-# boot_counter and boot_success need to be (re-)set from userspace.
-cat << EOF
-insmod increment
-# Check if boot_counter exists and boot_success=0 to activate this behaviour.
-if [ -n "\${boot_counter}" -a "\${boot_success}" = "0" ]; then
- # if countdown has ended, choose to boot rollback deployment (default=1 on
- # OSTree-based systems)
- if [ "\${boot_counter}" = "0" -o "\${boot_counter}" = "-1" ]; then
- set default=1
- set boot_counter=-1
- # otherwise decrement boot_counter
- else
- decrement boot_counter
- fi
- save_env boot_counter
-fi
-EOF
diff --git a/util/grub.d/01_menu_auto_hide.in b/util/grub.d/01_menu_auto_hide.in
deleted file mode 100644
index ad17587..0000000
--- a/util/grub.d/01_menu_auto_hide.in
+++ /dev/null
@@ -1,48 +0,0 @@
-#! /bin/sh
-
-# Disable / skip generating menu-auto-hide config parts on serial terminals
-for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
- case "$x" in
- serial*)
- exit 0
- ;;
- esac
-done
-
-cat << EOF
-if [ "\${boot_success}" = "1" -o "\${boot_indeterminate}" = "1" ]; then
- set last_boot_ok=1
-else
- set last_boot_ok=0
-fi
-
-# Reset boot_indeterminate after a successful boot
-if [ "\${boot_success}" = "1" ] ; then
- set boot_indeterminate=0
-# Avoid boot_indeterminate causing the menu to be hidden more then once
-elif [ "\${boot_indeterminate}" = "1" ]; then
- set boot_indeterminate=2
-fi
-set boot_success=0
-save_env boot_success boot_indeterminate
-
-if [ x\$feature_timeout_style = xy ] ; then
- if [ "\${menu_show_once}" ]; then
- unset menu_show_once
- save_env menu_show_once
- set timeout_style=menu
- set timeout=60
- elif [ "\${menu_auto_hide}" -a "\${last_boot_ok}" = "1" ]; then
- set orig_timeout_style=\${timeout_style}
- set orig_timeout=\${timeout}
- if [ "\${fastboot}" = "1" ]; then
- # timeout_style=menu + timeout=0 avoids the countdown code keypress check
- set timeout_style=menu
- set timeout=0
- else
- set timeout_style=hidden
- set timeout=1
- fi
- fi
-fi
-EOF
diff --git a/util/grub.d/08_fallback_counting.in b/util/grub.d/08_fallback_counting.in
new file mode 100644
index 0000000..2e2c3ff
--- /dev/null
+++ b/util/grub.d/08_fallback_counting.in
@@ -0,0 +1,24 @@
+#! /bin/sh -e
+# Fallback Countdown
+#
+# This snippet depends on 10_reset_boot_success and needs to be kept in sync.
+#
+# The boot_counter env var can be used to count down boot attempts after an
+# OSTree upgrade and choose the rollback deployment when 0 is reached.
+# Both boot_counter=X and boot_success=1 need to be set from userspace.
+cat << EOF
+insmod increment
+# Check if boot_counter exists and boot_success=0 to activate this behaviour.
+if [ -n "\${boot_counter}" -a "\${boot_success}" = "0" ]; then
+ # if countdown has ended, choose to boot rollback deployment,
+ # i.e. default=1 on OSTree-based systems.
+ if [ "\${boot_counter}" = "0" -o "\${boot_counter}" = "-1" ]; then
+ set default=1
+ set boot_counter=-1
+ # otherwise decrement boot_counter
+ else
+ decrement boot_counter
+ fi
+ save_env boot_counter
+fi
+EOF
diff --git a/util/grub.d/10_reset_boot_success.in b/util/grub.d/10_reset_boot_success.in
new file mode 100644
index 0000000..6c88d93
--- /dev/null
+++ b/util/grub.d/10_reset_boot_success.in
@@ -0,0 +1,25 @@
+#! /bin/sh -e
+# Reset Boot Success
+#
+# The 08_fallback_counting and 12_menu_auto_hide snippets rely on this one
+# and need to be kept in sync.
+#
+# The boot_success var needs to be set to 1 from userspace to mark a boot successful.
+cat << EOF
+insmod increment
+# Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry
+if [ "\${boot_success}" = "1" -o "\${boot_indeterminate}" = "1" ]; then
+ set menu_hide_ok=1
+else
+ set menu_hide_ok=0
+fi
+# Reset boot_indeterminate after a successful boot, increment otherwise
+if [ "\${boot_success}" = "1" ] ; then
+ set boot_indeterminate=0
+else
+ increment boot_indeterminate
+fi
+# Reset boot_success for current boot
+set boot_success=0
+save_env boot_success boot_indeterminate
+EOF
diff --git a/util/grub.d/12_menu_auto_hide.in b/util/grub.d/12_menu_auto_hide.in
new file mode 100644
index 0000000..6a7c0fa
--- /dev/null
+++ b/util/grub.d/12_menu_auto_hide.in
@@ -0,0 +1,35 @@
+#! /bin/sh
+# Menu Auto Hide
+#
+# This snippet depends on 10_reset_boot_success and needs to be kept in sync.
+#
+# Disable / skip generating menu-auto-hide config parts on serial terminals
+for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
+ case "$x" in
+ serial*)
+ exit 0
+ ;;
+ esac
+done
+
+cat << EOF
+if [ x\$feature_timeout_style = xy ] ; then
+ if [ "\${menu_show_once}" ]; then
+ unset menu_show_once
+ save_env menu_show_once
+ set timeout_style=menu
+ set timeout=60
+ elif [ "\${menu_auto_hide}" -a "\${menu_hide_ok}" = "1" ]; then
+ set orig_timeout_style=\${timeout_style}
+ set orig_timeout=\${timeout}
+ if [ "\${fastboot}" = "1" ]; then
+ # timeout_style=menu + timeout=0 avoids the countdown code keypress check
+ set timeout_style=menu
+ set timeout=0
+ else
+ set timeout_style=hidden
+ set timeout=1
+ fi
+ fi
+fi
+EOF
--
1.8.3.1
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。