2015-12-16 26 views
0

我的情況是: 我在一個磁盤上安裝了兩個linux。 我安裝第一個在/ dev/sda1中,然後在/ dev/sda2中安裝第二個 然後我運行fisrt系統,我編寫了一個腳本在運行時更新第一個系統。如何通過一個磁盤中的另一個linux系統更新一個linux系統?

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 /斌/慶典--login

回答

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

的說明,請參見 this
相關問題