From 4d4f958429d4a18518cca6801a416d59a1513255 Mon Sep 17 00:00:00 2001 From: longpanda Date: Thu, 5 May 2022 19:11:55 +0800 Subject: [PATCH] Fix the hardcoded dev/dm-0 --- .../ventoy/hook/blackPanther/ventoy-hook.sh | 2 +- .../hook/blackPanther/ventoy-inotifyd-hook.sh | 6 ++--- IMG/cpio/ventoy/hook/easystartup/disk_hook.sh | 5 +++- .../ventoy/hook/easystartup/ventoy-hook.sh | 2 +- IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh | 2 +- .../ventoy/hook/lunar/ventoy-inotifyd-hook.sh | 3 ++- .../hook/mageia/ventoy-inotifyd-hook.sh | 2 +- IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh | 17 +++++++++---- .../hook/openEuler/ventoy-inotifyd-hook.sh | 24 +++++++++++-------- .../ventoy/hook/openEuler/ventoy-make-link.sh | 17 +++++++++---- .../ventoy/hook/openEuler/ventoy-timeout.sh | 19 +++++++++++---- IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh | 5 +++- .../ventoy/hook/rhel7/ventoy-inotifyd-hook.sh | 9 +++++++ IMG/cpio/ventoy/hook/rhel7/ventoy-timeout.sh | 9 +++++++ 14 files changed, 88 insertions(+), 34 deletions(-) diff --git a/IMG/cpio/ventoy/hook/blackPanther/ventoy-hook.sh b/IMG/cpio/ventoy/hook/blackPanther/ventoy-hook.sh index bdcea43c..e3b19f40 100644 --- a/IMG/cpio/ventoy/hook/blackPanther/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/blackPanther/ventoy-hook.sh @@ -22,4 +22,4 @@ ventoy_set_inotify_script blackPanther/ventoy-inotifyd-hook.sh $BUSYBOX_PATH/cp -a $VTOY_PATH/hook/blackPanther/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/00-ventoy-inotifyd-start.sh -$SED "s#printf\(.*\)\$CMDLINE#printf\1 root=/dev/dm-0 \$CMDLINE root=/dev/dm-0#" -i /lib/dracut-lib.sh +$SED "s#printf\(.*\)\$CMDLINE#printf\1 root=/dev/ventoy \$CMDLINE root=/dev/ventoy#" -i /lib/dracut-lib.sh diff --git a/IMG/cpio/ventoy/hook/blackPanther/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/blackPanther/ventoy-inotifyd-hook.sh index 3b11f7ca..caa80d4c 100644 --- a/IMG/cpio/ventoy/hook/blackPanther/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/blackPanther/ventoy-inotifyd-hook.sh @@ -33,10 +33,8 @@ if is_inotify_ventoy_part $3; then $BUSYBOX_PATH/sh $VTOY_PATH/hook/default/udev_disk_hook.sh $3 noreplace blkdev_num_dev=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/') - if ! [ -e /dev/dm-0 ]; then - mknod -m 660 /dev/dm-0 b $blkdev_num_dev - fi - blackPanther-root /dev/dm-0 + mknod -m 660 /dev/ventoy b $blkdev_num_dev + blackPanther-root /dev/ventoy set_ventoy_hook_finish else diff --git a/IMG/cpio/ventoy/hook/easystartup/disk_hook.sh b/IMG/cpio/ventoy/hook/easystartup/disk_hook.sh index d9b3d48b..b6886882 100644 --- a/IMG/cpio/ventoy/hook/easystartup/disk_hook.sh +++ b/IMG/cpio/ventoy/hook/easystartup/disk_hook.sh @@ -78,6 +78,9 @@ fi ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace" -ln -s /dev/dm-0 /dev/root +blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/') +vtDM=$(ventoy_find_dm_id ${blkdev_num}) +cp -a /dev/$vtDM /dev/ventoy +ln -s /dev/$vtDM /dev/root PATH=$VTPATH_OLD diff --git a/IMG/cpio/ventoy/hook/easystartup/ventoy-hook.sh b/IMG/cpio/ventoy/hook/easystartup/ventoy-hook.sh index 39658c44..d18d9d52 100644 --- a/IMG/cpio/ventoy/hook/easystartup/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/easystartup/ventoy-hook.sh @@ -19,5 +19,5 @@ . $VTOY_PATH/hook/ventoy-os-lib.sh -$SED "s#^CDROM=.*#CDROM=/dev/dm-0#" -i /init +$SED "s#^CDROM=.*#CDROM=/dev/ventoy#" -i /init $BUSYBOX_PATH/cp -a $VTOY_PATH/hook/easystartup/ventoy-initqueue.sh /initqueue/ventoy.sh diff --git a/IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh b/IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh index 08e32d42..31744f6c 100644 --- a/IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh @@ -19,7 +19,7 @@ . $VTOY_PATH/hook/ventoy-os-lib.sh -$SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE root=/dev/dm-0#" -i /lib/dracut-lib.sh +$SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE root=/dev/ventoy#" -i /lib/dracut-lib.sh $BUSYBOX_PATH/rm -f /usr/lib/systemd/system-generators/systemd-fstab-generator /lib/systemd/system-generators/systemd-fstab-generator diff --git a/IMG/cpio/ventoy/hook/lunar/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/lunar/ventoy-inotifyd-hook.sh index da310136..2ddc1201 100644 --- a/IMG/cpio/ventoy/hook/lunar/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/lunar/ventoy-inotifyd-hook.sh @@ -35,7 +35,8 @@ if is_inotify_ventoy_part $3; then blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/') vtDM=$(ventoy_find_dm_id ${blkdev_num}) - mount -t iso9660 /dev/$vtDM /sysroot + cp -a /dev/$vtDM /dev/ventoy + mount -t iso9660 /dev/ventoy /sysroot set_ventoy_hook_finish else diff --git a/IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh index 226cbcad..61e50eff 100644 --- a/IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh @@ -59,7 +59,7 @@ if is_inotify_ventoy_part $3; then $BUSYBOX_PATH/cp -a $BUSYBOX_PATH/blkid /sbin/blkid $BUSYBOX_PATH/mkdir -p /dev/mapper ln -s /dev/$vtDM /dev/mapper/ventoy - /sbin/mgalive-root /dev/dm-0 + /sbin/mgalive-root /dev/$vtDM fi set_ventoy_hook_finish diff --git a/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh b/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh index 63bd4910..230eb636 100644 --- a/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh @@ -25,13 +25,19 @@ else for vtParam in $($CAT /proc/cmdline); do if echo $vtParam | $GREP -q 'inst.ks=hd:LABEL='; then vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}') - VTKS="inst.ks=hd:/dev/dm-0:$vtRawKs" + VTKS="inst.ks=hd:/dev/ventoy:$vtRawKs" break fi if echo $vtParam | $GREP -q '^ks=.*:/'; then vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}') - VTKS="ks=hd:/dev/dm-0:$vtRawKs" + VTKS="ks=hd:/dev/ventoy:$vtRawKs" + break + fi + + if echo $vtParam | $GREP -q '^inst.ks=.*:/'; then + vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}') + VTKS="inst.ks=hd:/dev/ventoy:$vtRawKs" break fi done @@ -54,9 +60,12 @@ if [ -f $VTOY_PATH/ventoy_persistent_map ]; then $BUSYBOX_PATH/rm -rf $VTOY_PATH/selinuxfs fi - echo "VTKS=$VTKS VTOVERLAY=$VTOVERLAY" >> $VTLOG +if [ -n "$vtRawKs" ]; then + echo "$vtRawKs" > $VTOY_PATH/ventoy_ks_rootpath +fi + if ls $VTOY_PATH | $GREP -q 'ventoy_dud[0-9]'; then for vtDud in $(ls $VTOY_PATH/ventoy_dud*); do vtInstDD="$vtInstDD inst.dd=file:$vtDud" @@ -64,7 +73,7 @@ if ls $VTOY_PATH | $GREP -q 'ventoy_dud[0-9]'; then fi echo "vtInstDD=$vtInstDD" >> $VTLOG -$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/ventoy $VTKS $VTOVERLAY $vtInstDD#" -i /lib/dracut-lib.sh ventoy_set_inotify_script openEuler/ventoy-inotifyd-hook.sh diff --git a/IMG/cpio/ventoy/hook/openEuler/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/openEuler/ventoy-inotifyd-hook.sh index 1da3a197..e0a9a0bb 100644 --- a/IMG/cpio/ventoy/hook/openEuler/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/openEuler/ventoy-inotifyd-hook.sh @@ -35,19 +35,23 @@ if is_inotify_ventoy_part $3; then $BUSYBOX_PATH/sh $VTOY_PATH/hook/default/udev_disk_hook.sh $3 - blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/') - vtDM=$(ventoy_find_dm_id ${blkdev_num}) - - if [ "$vtDM" = "dm-0" ]; then - vtlog "This is dm-0, OK ..." - else - vtlog "####### This is $vtDM ####### this is abnormal ..." - ventoy_swap_device /dev/dm-0 /dev/$vtDM + blkdev_num_mknod=$($VTOY_PATH/tool/dmsetup ls | $GREP ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/') + $BUSYBOX_PATH/mknod -m 660 /dev/ventoy b $blkdev_num_mknod + $BUSYBOX_PATH/modprobe isofs >/dev/null 2>&1 + vtlog "mknod /dev/ventoy $blkdev_num_mknod" + + if [ -f $VTOY_PATH/ventoy_ks_rootpath ]; then + vt_ks_rootpath=$(cat $VTOY_PATH/ventoy_ks_rootpath) + vtlog "ks rootpath <$vt_ks_rootpath>" + if [ -e /sbin/fetch-kickstart-disk ]; then + vtlog "fetch-kickstart-disk ..." + /sbin/fetch-kickstart-disk /dev/ventoy "$vt_ks_rootpath" + fi fi if [ -e /sbin/anaconda-diskroot ]; then - vtlog "set anaconda-diskroot ..." - /sbin/anaconda-diskroot /dev/dm-0 + vtlog "set anaconda-diskroot ..." + /sbin/anaconda-diskroot /dev/ventoy fi set_ventoy_hook_finish diff --git a/IMG/cpio/ventoy/hook/openEuler/ventoy-make-link.sh b/IMG/cpio/ventoy/hook/openEuler/ventoy-make-link.sh index 22a3dd4a..a6923361 100644 --- a/IMG/cpio/ventoy/hook/openEuler/ventoy-make-link.sh +++ b/IMG/cpio/ventoy/hook/openEuler/ventoy-make-link.sh @@ -19,17 +19,24 @@ . /ventoy/hook/ventoy-hook-lib.sh +if [ ! -e /dev/dm-0 ]; then + exit 0 +fi + +blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/') +vtDM=$(ventoy_find_dm_id ${blkdev_num}) + if ! [ -e /dev/mapper/ventoy ]; then - vtlog "link to /dev/mapper/ventoy" - ln -s /dev/dm-0 /dev/mapper/ventoy + vtlog "link /dev/$vtDM to /dev/mapper/ventoy" + ln -s /dev/$vtDM /dev/mapper/ventoy fi -VTLABEL=$($BUSYBOX_PATH/blkid /dev/dm-0 | $SED 's/.*LABEL="\([^"]*\)".*/\1/') +VTLABEL=$($BUSYBOX_PATH/blkid /dev/$vtDM | $SED 's/.*LABEL="\([^"]*\)".*/\1/') vtlog "VTLABEL=$VTLABEL" if [ -n "$VTLABEL" ]; then if ! [ -e "/dev/disk/by-label/$VTLABEL" ]; then - vtlog "link to /dev/disk/by-label/$VTLABEL" - ln -s /dev/dm-0 "/dev/disk/by-label/$VTLABEL" + vtlog "link /dev/$vtDM to /dev/disk/by-label/$VTLABEL" + ln -s /dev/$vtDM "/dev/disk/by-label/$VTLABEL" fi fi diff --git a/IMG/cpio/ventoy/hook/openEuler/ventoy-timeout.sh b/IMG/cpio/ventoy/hook/openEuler/ventoy-timeout.sh index 87ece3be..e0ca553c 100644 --- a/IMG/cpio/ventoy/hook/openEuler/ventoy-timeout.sh +++ b/IMG/cpio/ventoy/hook/openEuler/ventoy-timeout.sh @@ -23,12 +23,23 @@ vtlog "##### $0 $* ..." VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH -blkdev_num=$(dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/') -vtDM=$(ventoy_find_dm_id ${blkdev_num}) +if [ ! -e /dev/ventoy ]; then + blkdev_num_mknod=$(dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/') + mknod -m 660 /dev/ventoy b $blkdev_num_mknod +fi + +if [ -f $VTOY_PATH/ventoy_ks_rootpath ]; then + vt_ks_rootpath=$(cat $VTOY_PATH/ventoy_ks_rootpath) + vtlog "ks rootpath <$vt_ks_rootpath>" + if [ -e /sbin/fetch-kickstart-disk ]; then + vtlog "fetch-kickstart-disk ..." + /sbin/fetch-kickstart-disk /dev/ventoy "$vt_ks_rootpath" + fi +fi if [ -e /sbin/anaconda-diskroot ]; then - vtlog "set anaconda-diskroot ..." - /sbin/anaconda-diskroot /dev/dm-0 + vtlog "set anaconda-diskroot /dev/ventoy ..." + /sbin/anaconda-diskroot /dev/ventoy fi PATH=$VTPATH_OLD diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh index 2fb4a557..271c38a8 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh @@ -64,9 +64,12 @@ if [ -f $VTOY_PATH/ventoy_persistent_map ]; then $BUSYBOX_PATH/rm -rf $VTOY_PATH/selinuxfs fi - echo "VTKS=$VTKS VTOVERLAY=$VTOVERLAY" >> $VTLOG +if [ -n "$vtRawKs" ]; then + echo "$vtRawKs" > $VTOY_PATH/ventoy_ks_rootpath +fi + if ls $VTOY_PATH | $GREP -q 'ventoy_dud[0-9]'; then for vtDud in $(ls $VTOY_PATH/ventoy_dud*); do vtInstDD="$vtInstDD inst.dd=file:$vtDud" diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh index cf29264a..b4afbf74 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh @@ -54,6 +54,15 @@ if is_inotify_ventoy_part $3; then vtlog "$vtGenRulFile not exist..." fi + if [ -f $VTOY_PATH/ventoy_ks_rootpath ]; then + vt_ks_rootpath=$(cat $VTOY_PATH/ventoy_ks_rootpath) + vtlog "ks rootpath <$vt_ks_rootpath>" + if [ -e /sbin/fetch-kickstart-disk ]; then + vtlog "fetch-kickstart-disk ..." + /sbin/fetch-kickstart-disk /dev/ventoy "$vt_ks_rootpath" + fi + fi + if [ -e /sbin/anaconda-diskroot ]; then vtlog "set anaconda-diskroot ..." /sbin/anaconda-diskroot /dev/ventoy diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-timeout.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-timeout.sh index 8aac1690..e0ca553c 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-timeout.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-timeout.sh @@ -28,6 +28,15 @@ if [ ! -e /dev/ventoy ]; then mknod -m 660 /dev/ventoy b $blkdev_num_mknod fi +if [ -f $VTOY_PATH/ventoy_ks_rootpath ]; then + vt_ks_rootpath=$(cat $VTOY_PATH/ventoy_ks_rootpath) + vtlog "ks rootpath <$vt_ks_rootpath>" + if [ -e /sbin/fetch-kickstart-disk ]; then + vtlog "fetch-kickstart-disk ..." + /sbin/fetch-kickstart-disk /dev/ventoy "$vt_ks_rootpath" + fi +fi + if [ -e /sbin/anaconda-diskroot ]; then vtlog "set anaconda-diskroot /dev/ventoy ..." /sbin/anaconda-diskroot /dev/ventoy