我的情况是: 我在一个磁盘上安装了两个linux。 我在/ dev / sda1中安装第一个,然后在/ dev / sda2中安装第二个 然后我运行fisrt系统,我写了一个脚本来运行时更新第一个系统。
cd /
mkdir newroot
mount /dev/sda2 /newroot
mount --bind /proc /newroot/proc/
mount --bind /sys /newroot/sys/
mount --bind /dev /newroot/dev/
mount --bind /run /newroot/run/
chroot /newroot /bin/bash --login
mkdir oldroot
mount /dev/sda1 oldroot
mount -o remount,rw /oldroot
rm -rf /oldroot/*
#but i can't rm the dev proc sys run
tar -xzpvf /newroot/update/sda1.tar.gz -C /oldroot/*
我的问题是我无法自动运行脚本,它会在
之后停止运行chroot / newroot / bin / bash --login
答案 0 :(得分:0)
要在chroot中执行的命令不能放在其他命令之后。您正在执行不同的bash,因此您必须为其提供新脚本。试试这个:
cd /
mkdir newroot
mount /dev/sda2 /newroot
mount --bind /proc /newroot/proc/
mount --bind /sys /newroot/sys/
mount --bind /dev /newroot/dev/
mount --bind /run /newroot/run/
chroot /newroot /bin/bash --login <<EOF
mkdir oldroot
mount /dev/sda1 oldroot
mount -o remount,rw /oldroot
rm -rf /oldroot/*
#but i can't rm the dev proc sys run
tar -xzpvf /newroot/update/sda1.tar.gz -C /oldroot/*
EOF
有关<<EOF