Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #/bin/bash
- # -----------------------------------------------------------------------------
- # mise à jour de openwrt sur cubieboard
- # execution à une date, création d'un répertoire à cette date, téléchargement
- # des fichiers, copies des fichiers.
- # -----------------------------------------------------------------------------
- # par R. Suinot <[email protected]>
- # le 10 fevrier 2014
- # rev° 26 mai 2014
- # rev° 14 juil 2014
- # rev° 15 juil 2014
- # rev° 13 sept 2014
- # rev° 20 sept 2014
- # rev° 22 avril 2015
- # -----------------------------------------------------------------------------
- #
- #------------ Formatages de textes -----------------
- NORMAL="\e[0m"
- GRAS="\e[1m"
- ROUGE="\e[31m"
- # ---------------------------------------------------
- BASE=`pwd`
- rep=$BASE"/"$(date +%d%m%Y)
- SAUVG=$rep"/sauvegarde_configurations"
- ETC=$SAUVG"/etc"
- USR=$SAUVG"/usr"
- LIB=$SAUVG"/lib"
- ROOT=$SAUVG"/root"
- # PARTITION="/dev/sdc"
- PARTITION="/dev/mmcblk0"
- # PARTITION_BOOT="/dev/sdc1"
- PARTITION_BOOT="/dev/mmcblk0p1"
- # PARTITION_ROOT="/dev/sdc2"
- PARTITION_ROOT="/dev/mmcblk0p2"
- DEST="/mnt"
- dest_kmod="/mnt/root/"
- config="/mnt/etc/config/"
- adresse="http://downloads.openwrt.org/snapshots/trunk/sunxi/generic"
- # adresse="ftp://bo.mirror.garr.it/pub/1/openwrt/snapshots/trunk/sunxi/generic"
- # Vous devez être root pour executer ce script!!!
- if [ $(whoami) != "root" ]; then
- echo -e $GRAS
- echo "Vous devez executer ce script sous l'utilisateur Root."
- echo "Use 'sudo $0' then enter your password when prompted."
- echo -e $NORMAL
- exit 1
- fi
- if [ -b "$PARTITION_BOOT" ]
- then
- echo "présence de $PARTITION_BOOT sur la carte sd."
- if [ -b "$PARTITION_ROOT" ]
- then
- echo "présence de $PARTITION_ROOT sur la carte sd."
- else
- echo -e $ROUGE
- echo "Pas de périphérique $PARTITION_ROOT (racine)"
- echo " Corrigez le problème et recommencez. Merci."
- echo -e $NORMAL
- exit 1
- fi
- else
- echo -e $ROUGE
- echo " Pas de périphérique $PARTITION_BOOT (boot)"
- echo " Corrigez le problème et recommencez. Merci."
- echo -e $NORMAL
- exit 1
- fi
- if [[ ! ( -d "$rep" ) ]]
- then
- read -p "création du répertoire local $rep (y/n)?" REPLY
- if [ $REPLY != "y" ]; then
- echo "Exiting..."
- exit 1
- else
- mkdir $rep
- cd $rep
- mkdir $SAUVG
- fi
- else
- cd $rep
- fi
- # avant de lancer les download, on récupère les configurations sur la carte $PARTITION_ROOT
- if mount | grep $PARTITION_ROOT > /dev/null; then
- tmp=$(mount | grep $PARTITION_ROOT | awk {'print $3'})
- umount $tmp
- fi
- echo " => montage $PARTITION_ROOT $DEST"
- echo "mount $PARTITION_ROOT $DEST"
- mount $PARTITION_ROOT $DEST
- mkdir $ETC
- echo " ==> copie des fichiers et repertoires:"
- echo " ==> /etc/config "
- cp -R /mnt/etc/config/ $ETC
- echo " ==> /etc/crontabs "
- cp -R /mnt/etc/crontabs/ $ETC
- echo " ==> /etc/samba "
- cp -R /mnt/etc/samba/ $ETC
- echo " ==> /lib/firmware "
- mkdir $LIB
- cp -R /mnt/lib/firmware/ $LIB
- echo " ==> /etc/profile "
- cp /mnt/etc/profile $ETC
- echo " ==> /etc/rc.local "
- cp /mnt/etc/rc.local $ETC
- echo " ==> /etc/passwd "
- cp /mnt/etc/passwd $ETC
- echo " ==> /etc/shadow "
- cp /mnt/etc/shadow $ETC
- echo " ==> /etc/group "
- cp /mnt/etc/group $ETC
- echo " ==> /usr/local/ "
- mkdir -p $USR
- cp -R /mnt/usr/local/ $USR
- echo " ==> /root "
- mkdir $ROOT
- cp -R /mnt/root/* $ROOT
- echo " ==> demontage $DEST"
- umount $DEST
- # wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/uboot-sunxi-Cubieboard/openwrt-sunxi-Cubieboard-boot.scr
- wget $adresse"/uboot-sunxi-Cubieboard/openwrt-sunxi-Cubieboard-boot.scr"
- # wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/uboot-sunxi-Cubieboard/openwrt-sunxi-Cubieboard-uEnv.txt
- wget $adresse"/uboot-sunxi-Cubieboard/openwrt-sunxi-Cubieboard-uEnv.txt"
- # wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/uboot-sunxi-Cubieboard/openwrt-sunxi-Cubieboard-u-boot-with-spl.bin
- wget $adresse"/uboot-sunxi-Cubieboard/openwrt-sunxi-Cubieboard-u-boot-with-spl.bin"
- # wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/md5sums
- wget $adresse"/md5sums"
- # wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/openwrt-sunxi-uImage
- wget $adresse"/openwrt-sunxi-uImage"
- # wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/openwrt-sunxi-root.ext4
- wget $adresse"/openwrt-sunxi-root.ext4"
- # wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/sun4i-a10-cubieboard.dtb
- wget $adresse"/sun4i-a10-cubieboard.dtb"
- # ---------------------------------------------------------------------------------------------------------
- echo " ==> resize de la PARTITION root ..."
- resize2fs openwrt-sunxi-root.ext4 240M
- echo " ==> resize terminée!"
- echo " "
- echo -e $GRAS
- echo "All completed downloads... "
- read -p "Arreter ici (y/n)?" REPLY
- echo -e $NORMAL
- if [ $REPLY == "y" ]; then
- echo "Exiting..."
- exit 1
- fi
- echo -e $GRAS
- echo " ==> application du boot avec spl?"
- read -p "(y/n)?" REPLY
- if [ $REPLY == "y" ]; then
- echo "dd if=openwrt-sunxi-Cubieboard-u-boot-with-spl.bin of=$PARTITION bs=1024 seek=8"
- dd if=openwrt-sunxi-Cubieboard-u-boot-with-spl.bin of=$PARTITION bs=1024 seek=8
- fi
- echo -e $NORMAL
- if mount | grep $PARTITION_BOOT > /dev/null; then
- tmp=$(mount | grep $PARTITION_BOOT | awk {'print $3'})
- umount $tmp
- fi
- echo -e $GRAS
- echo " ==> mount $PARTITION_BOOT "
- read -p "(y/n)?" REPLY
- if [ $REPLY == "y" ]; then
- mkfs.vfat $PARTITION_BOOT
- mount -t vfat $PARTITION_BOOT $DEST
- fi
- echo -e $NORMAL
- echo -e $GRAS
- echo " ==> write boot.scr "
- read -p "(y/n)?" REPLY
- if [ $REPLY == "y" ]; then
- echo "cp openwrt-sunxi-Cubieboard-boot.scr $DEST/boot.scr "
- cp openwrt-sunxi-Cubieboard-boot.scr $DEST/boot.scr
- fi
- echo -e $NORMAL
- echo -e $GRAS
- echo " ==> write uEnv.txt "
- read -p "(y/n)?" REPLY
- if [ $REPLY == "y" ]; then
- cp openwrt-sunxi-Cubieboard-uEnv.txt $DEST/uEnv.txt
- fi
- echo -e $NORMAL
- echo -e $GRAS
- echo " ==> write uImage "
- read -p "(y/n)?" REPLY
- if [ $REPLY == "y" ]; then
- cp openwrt-sunxi-uImage $DEST/uImage
- fi
- echo -e $NORMAL
- echo -e $GRAS
- echo " ==> write dtb "
- read -p "(y/n)?" REPLY
- if [ $REPLY == "y" ]; then
- cp sun4i-a10-cubieboard.dtb $DEST/dtb
- fi
- echo -e $NORMAL
- echo -e $GRAS
- echo " ==> umount $PARTITION_BOOT "
- read -p "(y/n)?" REPLY
- if [ $REPLY == "y" ]; then
- umount $DEST
- fi
- echo -e $NORMAL
- if mount | grep $PARTITION_ROOT > /dev/null; then
- tmp=$(mount | grep $PARTITION_ROOT | awk {'print $3'})
- umount $tmp
- fi
- echo -e $ROUGE
- echo "ATTENTION: prochaine action = ecriture de la PARTITION root."
- echo "CELA VA ECRASER CONPLETEMENT L'ANCIENNE PARTITION !!! "
- read -p "Arreter la (y) ou Ecrire quand même (n)?" REPLY
- echo -e $NORMAL
- if [ $REPLY != "y" ]; then
- echo " ==> ecriture de openwrt-sunxi-root.ext4 ... please wait..."
- echo "dd if=openwrt-sunxi-root.ext4 of=$PARTITION_ROOT bs=128k"
- dd if=openwrt-sunxi-root.ext4 of=$PARTITION_ROOT bs=128k
- echo "ok!"
- fi
- sync
- echo " => montage $PARTITION_ROOT $DEST"
- mount $PARTITION_ROOT $DEST
- cd $SAUVG
- echo " ==> recopie des fichiers dans root ..."
- echo "cp -R root/* /mnt/root/"
- cp -r root/* /mnt/root/
- echo " ==> recopie des fichiers de configurations ..."
- echo "cp -R etc/* /mnt/etc/"
- cp -R etc/* /mnt/etc/
- echo " ==> recopie du répertoire lib ..."
- cp -R lib/* /mnt/lib/
- echo " ==> recopie du répertoire usr ..."
- cp -R usr/* /mnt/usr/
- mkdir /mnt/home
- # avant de terminer on va ecrire le fichier indiquant qu'il faut finir la mise à jour au prochain redemarrage
- touch /mnt/etc/mise_a_jour
- echo " création du fichier indiquant qu'on vent de faire une mise à jour complete"
- echo " ==> touch /mnt/etc/mise_a_jour"
- echo " ==> demontage $DEST"
- umount $DEST
- sync
- echo -e $GRAS$ROUGE
- echo "Correction de la PARTITION $PARTITION_ROOT? "
- read -p "(y/n)?" REPLY
- echo -e $NORMAL
- if [ $REPLY == "y" ]; then
- e2fsck -f -y -v -C 0 $PARTITION_ROOT
- echo " "
- fi
- echo -e $GRAS$ROUGE
- echo "Vérification de la partiton et agrandissement? "
- read -p "(y/n)?" REPLY
- echo -e $NORMAL
- if [ $REPLY == "y" ]; then
- resize2fs -p $PARTITION_ROOT
- echo " "
- fi
- echo " Terminé."
- echo -e $GRAS
- echo " +---------------------------------------------+"
- echo " | Vous pouvez reprendre une activité normale. |"
- echo " +---------------------------------------------+"
- echo -e $NORMAL
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment