From 5524a29d542ebd11469f078b4ad4b7a9a1d015f1 Mon Sep 17 00:00:00 2001 From: Alkene Pan Date: Wed, 26 Oct 2022 20:21:53 +0800 Subject: [PATCH] fix device mapping issue --- rasp/mount_script | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rasp/mount_script b/rasp/mount_script index c2748b06f..4790923d2 100755 --- a/rasp/mount_script +++ b/rasp/mount_script @@ -27,15 +27,17 @@ while read A B C SUBROOT MOUNT JUNK [ $MOUNT = $FILESYS ] # More sanity check! SUBPATH=$(echo $REALPATH | sed s,^$FILESYS,,) -DEVDEC=$(printf "%d %d" $(stat --format "0x%t 0x%T" $DEV)) +REALDEV=$(readlink --canonicalize $DEV) +DEVDEC=$(printf "%d %d" $(stat --format "0x%t 0x%T" $REALDEV)) run_command="$NSENTER_PATH --target $PID --mount --uts --ipc --net --pid -- /bin/sh -c" if [ `$run_command "export PATH=/usr/bin:/bin:/sbin;mount|grep $CONTPATH|wc -l"` -ne 0 ];then echo "container mount dir $CONTPATH is mounting!" exit 0 fi -$run_command "export PATH=/usr/bin:/bin:/sbin;[ -b $DEV ] ||mknod --mode 0600 $DEV b $DEVDEC" +$run_command "export PATH=/usr/bin:/bin:/sbin;mkdir -p $(dirname $REALDEV)" +$run_command "export PATH=/usr/bin:/bin:/sbin;[ -b $REALDEV ] ||mknod --mode 0600 $REALDEV b $DEVDEC" $run_command "export PATH=/usr/bin:/bin:/sbin;mkdir /tmpmnt" -$run_command "export PATH=/usr/bin:/bin:/sbin;mount $DEV /tmpmnt" +$run_command "export PATH=/usr/bin:/bin:/sbin;mount $REALDEV /tmpmnt" $run_command "export PATH=/usr/bin:/bin:/sbin;mkdir -p $CONTPATH" $run_command "export PATH=/usr/bin:/bin:/sbin;mount -o bind /tmpmnt/$SUBROOT/$SUBPATH $CONTPATH" $run_command "export PATH=/usr/bin:/bin:/sbin;umount /tmpmnt"