переход в новый корневой каталог после зависания pivot_root - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь запустить скрипт на удаленном компьютере (клиенте) с сервера с помощью команды.

ssh -v -t root@10.68.xxx.xxx "sh /tmp/flash.sh 'root@server:/bamboo-agent-home/xml-data/latest/eng_20190124040906.sdcard' 1>&2"

Файл «flash.sh» имеет следующее (для краткости я просто показываюкоманды, а не обработчики ошибок.)

ПРОБЛЕМА: скрипт запускается правильно, пока не достигнет команды после pivot_root.Он выводит эхо "переезд в новый корневой каталог" и просто зависает.Иногда переходит к перемещению монтировок и снова зависает.

У меня нет возможности отлаживать, потому что удаленный компьютер уже находится в смонтированном состоянии.и -v для ssh не выдает никаких результатов после зависания команды.

Любая помощь или предложения приветствуются.

MOUNT_DIR="/mnt/net"
BLOCK_MOUNT="/run/media/mmcblk1p1/"
OLDROOT="oldroot"
NOT_MOUNTED_ERROR=32

echo "unmounting $MOUNT_DIR and recreating this directory"
umount $MOUNT_DIR
rm -rf $MOUNT_DIR
mkdir $MOUNT_DIR
cd /
echo "stopping services"
sh /tst/test/testservice.sh  stop
echo "mounting remote rootfs from $REMOTE_MOUNT_PATH at $MOUNT_DIR"
sshfs -o ssh_command="ssh -i /home/root/.ssh/id_test_cpib" $REMOTE_MOUNT_PATH $MOUNT_DIR

sync

echo "waiting for 120 seconds for the system to be ready for rootfs change in case it is not"
sleep 120

cd $MOUNT_DIR/
mkdir -p $MOUNT_DIR/$OLDROOT

echo "changing rootfs to .$MOUNT_DIR/$OLDROOT"
/sbin/pivot_root . $OLDROOT/

echo "moving to new root directory"
ls -la /
cd /

echo "moving the mounts"
mount --move $OLDROOT/dev/ /dev
mount --move $OLDROOT/proc/ /proc
mount --move $OLDROOT/sys/ /sys
mount --move $OLDROOT/run/ /run
mount --move $OLDROOT/var/volatile /var/volatile/
...