拷贝系统盘的脚本

发表于:2007-06-09来源:作者:点击数: 标签:
[这个贴子最后由jxbcpp在2002/11/2610:30pm编辑] 这个脚本用于把当前系统盘复制到指定的某个硬盘(两个硬盘需一样大小,否则自习修改脚本吧) #!/bin/sh #programedbyjxbcpp,QQ:589210 iftest$#-lt1 then echo\tUsage:$0DestDisk echo\tExample:Ifyouw ant t

[这个贴子最后由jxbcpp在 2002/11/26 10:30pm 编辑]

这个脚本用于把当前系统盘复制到指定的某个硬盘(两个硬盘需一样大小,否则自习修改脚本吧)

#!/bin/sh
#programed by jxbcpp,QQ:589210

if test $# -lt  1
then
echo "\tUsage:$0 DestDisk"
echo "\tExample: If you want to make a mirror disk c0t1d0 of boot disk"
echo "       You can use: $0 c0t1d0"
exit
fi

SourDisk=`df -k /|tail -1|awk -F'/' '{print $4}'|awk -F's' '{print $1}'`
DestDisk=$1

answer=`/usr/bin/ckyorn -d n -p "Do you want to mirror disk $SourDisk to $DestDisk?[Y/N]"`

if [ ! $answer = Y -a ! $answer = y ] 
then
exit
fi

if [ $SourDisk = $DestDisk ]
then
        echo "\t***********************************************"
        echo "\t\tDestDisk cann't be system disk!"
        echo "\t***********************************************"
        exit
fi

echo "\nCopy partition table..."
prtvtoc /dev/rdsk/${SourDisk}s2 |fmthard -s - /dev/rdsk/${DestDisk}s2
if test $? -ne 0
then
echo "\t***********************************************"
echo "\t\tTwo Disks must be the same size!"
echo "\t***********************************************"
exit
fi
echo "\t***********************************************"
echo "\t\tCopy partition table Sucessfully!"
echo "\t***********************************************"

SWAP=`grep swap /etc/vfstab|grep dev|awk '{print $1}'`
prtvtoc /dev/rdsk/${SourDisk}s2|grep -v "^*" |awk '{print $1}' >/tmp/.asdfg

success=0

while read DD
do
if [ $DD -eq 2 ]
then
continue
fi

if [ /dev/dsk/${SourDisk}s${DD} = $SWAP ]
then
continue
fi

echo "\n\nDump /dev/dsk/${SourDisk}s${DD}"

mkdir /tmp/$DD
echo y|newfs /dev/rdsk/${DestDisk}s${DD}
if [ $? -ne 0 ]
then
echo "\t***********************************************"
echo "\t\tNewfs error!"
echo "\t***********************************************"
success=1
exit
fi

mount /dev/dsk/${DestDisk}s${DD} /tmp/$DD
ufsdump 0f - /dev/dsk/${SourDisk}s${DD}|(cd  /tmp/$DD; ufsrestore -rf - 
rm /tmp/$DD/restoresymtable

if [ $DD -eq 0 ]
then
touch /tmp/0/reconfigure
fi

umount /tmp/${DD}
rmdir /tmp/${DD}

echo "\t***********************************************"
echo "\t\tDump /dev/dsk/${SourDisk}s${DD} Successfully!"
echo "\t***********************************************"

done < /tmp/.asdfg

if [ $success -eq 0 ]
then
installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/${DestDisk}s0
echo "\t***********************************************"
echo "\t\tMirror Sucessfully!" 
echo "\t***********************************************"
fi


 daemonix 回复于:2002-11-26 22:31:54
瓦,高人

 sunmarmot 回复于:2002-11-26 23:10:41
[这个贴子最后由sunmarmot在 2002/11/28 03:23pm 编辑]

又发现一个老大!!!!

根据老大的指点,偶把偶晚上问的关于如何使用这个.sh帖出来

你现在的系统盘是c1t0d0,想在c1t1d0上做备份
则运行:
CopyBootDisk.sh c1t1d0
万一你的系统盘坏了,就可以把这个盘插到c1t0d0的位置,系统就可以用了

hohohohoh~~~~~~~~~又多了把刷子

 liuqinghe 回复于:2002-11-27 16:34:12
真牛b

 YT 回复于:2002-11-27 21:08:47
好,支持!

 sunmarmot 回复于:2002-11-28 16:53:57
实验ing,期待ing。。。。。。。。。。

原文转自:http://www.ltesting.net