From 602e8c7fdff11f14e5f19429251e38372ea84553 Mon Sep 17 00:00:00 2001 From: longpanda Date: Tue, 12 Jul 2022 17:13:49 +0800 Subject: [PATCH] Fix a bug when rhel based distribution has an external kickstart file. (#1717) --- .../ventoy/hook/openEuler/ventoy-autoexp.sh | 24 +++++++++++++++++++ IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh | 15 +++++++++++- IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh | 11 ++++++++- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 IMG/cpio/ventoy/hook/openEuler/ventoy-autoexp.sh diff --git a/IMG/cpio/ventoy/hook/openEuler/ventoy-autoexp.sh b/IMG/cpio/ventoy/hook/openEuler/ventoy-autoexp.sh new file mode 100644 index 00000000..661d4365 --- /dev/null +++ b/IMG/cpio/ventoy/hook/openEuler/ventoy-autoexp.sh @@ -0,0 +1,24 @@ +#!/bin/sh +#************************************************************************************ +# Copyright (c) 2022, longpanda +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +#************************************************************************************ + +if [ -f /run/install/ks.cfg ]; then + sh /ventoy/hook/default/auto_install_varexp.sh /run/install/ks.cfg +fi + +exit 0 diff --git a/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh b/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh index 230eb636..40d67d5d 100644 --- a/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh @@ -24,18 +24,21 @@ if [ -f $VTOY_PATH/autoinstall ]; then else for vtParam in $($CAT /proc/cmdline); do if echo $vtParam | $GREP -q 'inst.ks=hd:LABEL='; then + vtRawKsFull="$vtParam" vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}') VTKS="inst.ks=hd:/dev/ventoy:$vtRawKs" break fi if echo $vtParam | $GREP -q '^ks=.*:/'; then + vtRawKsFull="$vtParam" vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}') VTKS="ks=hd:/dev/ventoy:$vtRawKs" break fi if echo $vtParam | $GREP -q '^inst.ks=.*:/'; then + vtRawKsFull="$vtParam" vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}') VTKS="inst.ks=hd:/dev/ventoy:$vtRawKs" break @@ -63,7 +66,13 @@ fi echo "VTKS=$VTKS VTOVERLAY=$VTOVERLAY" >> $VTLOG if [ -n "$vtRawKs" ]; then - echo "$vtRawKs" > $VTOY_PATH/ventoy_ks_rootpath + if echo $vtRawKsFull | $EGREP -q "=http|=https|=ftp|=nfs|=hmc"; then + echo "vtRawKsFull=$vtRawKsFull no patch needed." >> $VTLOG + vtRawKs="" + VTKS="" + else + echo "$vtRawKs" > $VTOY_PATH/ventoy_ks_rootpath + fi fi if ls $VTOY_PATH | $GREP -q 'ventoy_dud[0-9]'; then @@ -98,3 +107,7 @@ if [ -f /usr/sbin/anaconda-diskroot ]; then $SED 's/^mount $dev $repodir/mount -oro $dev $repodir/' -i /usr/sbin/anaconda-diskroot fi + +if [ -f $VTOY_PATH/autoinstall ]; then + cp -a $VTOY_PATH/hook/openEuler/ventoy-autoexp.sh /lib/dracut/hooks/pre-mount/99-ventoy-autoexp.sh +fi diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh index a6e59d97..acd05ce7 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh @@ -27,18 +27,21 @@ if [ -f $VTOY_PATH/autoinstall ]; then else for vtParam in $($CAT /proc/cmdline); do if echo $vtParam | $GREP -q 'inst.ks=hd:LABEL='; then + vtRawKsFull="$vtParam" vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}') VTKS="inst.ks=hd:/dev/ventoy:$vtRawKs" break fi if echo $vtParam | $GREP -q '^ks=.*:/'; then + vtRawKsFull="$vtParam" vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}') VTKS="ks=hd:/dev/ventoy:$vtRawKs" break fi if echo $vtParam | $GREP -q '^inst.ks=.*:/'; then + vtRawKsFull="$vtParam" vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}') VTKS="inst.ks=hd:/dev/ventoy:$vtRawKs" break @@ -67,7 +70,13 @@ fi echo "VTKS=$VTKS VTOVERLAY=$VTOVERLAY" >> $VTLOG if [ -n "$vtRawKs" ]; then - echo "$vtRawKs" > $VTOY_PATH/ventoy_ks_rootpath + if echo $vtRawKsFull | $EGREP -q "=http|=https|=ftp|=nfs|=hmc"; then + echo "vtRawKsFull=$vtRawKsFull no patch needed." >> $VTLOG + vtRawKs="" + VTKS="" + else + echo "$vtRawKs" > $VTOY_PATH/ventoy_ks_rootpath + fi fi if ls $VTOY_PATH | $GREP -q 'ventoy_dud[0-9]'; then