From c956349da7c1ffec6f1bac84624fb73090a03ecf Mon Sep 17 00:00:00 2001 From: Liangbin Lian Date: Tue, 20 Feb 2024 11:52:20 +0800 Subject: [PATCH] target/x86: support custom grub hook --- .../x86/64/base-files/lib/upgrade/keep.d/grub | 2 ++ .../x86/64/base-files/usr/sbin/update-grub | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 target/linux/x86/64/base-files/lib/upgrade/keep.d/grub create mode 100755 target/linux/x86/64/base-files/usr/sbin/update-grub diff --git a/target/linux/x86/64/base-files/lib/upgrade/keep.d/grub b/target/linux/x86/64/base-files/lib/upgrade/keep.d/grub new file mode 100644 index 0000000000..316b93c0f4 --- /dev/null +++ b/target/linux/x86/64/base-files/lib/upgrade/keep.d/grub @@ -0,0 +1,2 @@ +/boot/grub/grub.ext.cfg +/boot/grub/grubenv \ No newline at end of file diff --git a/target/linux/x86/64/base-files/usr/sbin/update-grub b/target/linux/x86/64/base-files/usr/sbin/update-grub new file mode 100755 index 0000000000..ff783bf4ff --- /dev/null +++ b/target/linux/x86/64/base-files/usr/sbin/update-grub @@ -0,0 +1,20 @@ +#!/bin/sh + +GRUB_CFG=/boot/grub/grub.ext.cfg + +merge_cfg() { + local cfgfile + echo "# Merged /etc/grub.cfg.d/*.cfg" + echo "# WARNING: Do not edit this file by tools other than update-grub!!!" + ls /etc/grub.cfg.d/*.cfg | while read; do + cfgfile="$REPLY" + echo "# $cfgfile" + cat "$cfgfile" + echo + done +} + +exec 512>/var/lock/update-grub.lock +flock 512 || exit 1 + +merge_cfg >$GRUB_CFG