From 6cc400b8d4dea8e50491dddbd13cf87233c43d1a Mon Sep 17 00:00:00 2001 From: longpanda Date: Tue, 6 Apr 2021 14:28:34 +0800 Subject: [PATCH] experimental persistent support for Fedora (#791) --- IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh | 24 +++++++++++++++++--- IMG/cpio/ventoy/hook/rhel7/ventoy-overlay.sh | 21 +++++++++++++++++ 2 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 IMG/cpio/ventoy/hook/rhel7/ventoy-overlay.sh diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh index cff0f107..d3d7ab81 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh @@ -40,7 +40,25 @@ else done fi -echo "VTKS=$VTKS" >> $VTLOG +if [ -f $VTOY_PATH/ventoy_persistent_map ]; then + VTOVERLAY="rd.live.overlay=/dev/dm-1:/vtoyoverlayfs/overlayfs" + + if [ -e /sbin/dmsquash-live-root ]; then + echo "patch /sbin/dmsquash-live-root for persistent ..." >> $VTLOG + $SED "/mount.*devspec.*\/run\/initramfs\/overlayfs/a . /ventoy/hook/rhel7/ventoy-overlay.sh" -i /sbin/dmsquash-live-root + fi + + #close selinux + $BUSYBOX_PATH/mkdir -p $VTOY_PATH/selinuxfs + if $BUSYBOX_PATH/mount -t selinuxfs selinuxfs $VTOY_PATH/selinuxfs; then + echo 1 > $VTOY_PATH/selinuxfs/disable + $BUSYBOX_PATH/umount $VTOY_PATH/selinuxfs + fi + $BUSYBOX_PATH/rm -rf $VTOY_PATH/selinuxfs +fi + + +echo "VTKS=$VTKS VTOVERLAY=$VTOVERLAY" >> $VTLOG if ls $VTOY_PATH | $GREP -q 'ventoy_dud[0-9]'; then for vtDud in $(ls $VTOY_PATH/ventoy_dud*); do @@ -50,9 +68,9 @@ fi echo "vtInstDD=$vtInstDD" >> $VTLOG if $GREP -q 'root=live' /proc/cmdline; then - $SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE root=live:/dev/dm-0 $VTKS $vtInstDD#" -i /lib/dracut-lib.sh + $SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE root=live:/dev/dm-0 $VTKS $VTOVERLAY $vtInstDD#" -i /lib/dracut-lib.sh else - $SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE inst.stage2=hd:/dev/dm-0 $VTKS $vtInstDD#" -i /lib/dracut-lib.sh + $SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE inst.stage2=hd:/dev/dm-0 $VTKS $VTOVERLAY $vtInstDD#" -i /lib/dracut-lib.sh fi ventoy_set_inotify_script rhel7/ventoy-inotifyd-hook.sh diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-overlay.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-overlay.sh new file mode 100644 index 00000000..d8fe0799 --- /dev/null +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-overlay.sh @@ -0,0 +1,21 @@ +#!/bin/sh +#************************************************************************************ +# Copyright (c) 2020, 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 . +# +#************************************************************************************ + +[ -d /run/initramfs/overlayfs$pathspec ] || mkdir -p /run/initramfs/overlayfs$pathspec +[ -d /run/initramfs/overlayfs$pathspec/../ovlwork ] || mkdir -p /run/initramfs/overlayfs$pathspec/../ovlwork