Faire un recopie, rien de plus facile.
Mais le but de ce script bash repose sur l'identification de la carte micro SD et le montage de sa partition boot.
Je teste aussi les dates afin de ne pas faire une recopie si cela n'est pas nécessaire.
Code : Tout sélectionner
#!/bin/bash
UUID="2D91-464A"
FILE1="/mnt/boot/bootcode.bin"
FILE2="/boot/bootcode.bin"
clear
echo -e "\t\t*================================*"
echo -e "\t\t* *"
echo -e "\t\t* Recopie partition \"/boot\" *"
echo -e "\t\t* *"
echo -e "\t\t*================================*\n"
echo -e "\t\tUUID\t\t: $UUID\n"
# ======================================== #
# Vérification l'existence de la partition #
# ======================================== #
if [ -L "/dev/disk/by-uuid/$UUID" ]
then
DEVICE="$(blkid -U $UUID)"
DIRECTORY="$(lsblk -n -o MOUNTPOINT $DEVICE)"
echo -e "\t\tRépertoire\t: $DIRECTORY"
echo -e "\t\tPériphérique\t: $DEVICE\n"
if [ "$DIRECTORY" == "/mnt/boot" ]
then
echo -e "\t\t\e[31mPartition déjà montée\e[0m\n"
else
if [ "$DIRECTORY" != "" ]
then
echo -e "\t\t\e[32mPartition a démonter !\e[0m"
umount $DEVICE
if [[ $? == 0 ]]
then
echo -e "\t\t\e[32mPartition démontée\e[0m"
else
echo -e "\t\t\e[31mPartition non démontée\e[0m\n"
exit 3
fi
fi
mount -t vfat $DEVICE /mnt/boot
if [[ $? == 0 ]]
then
echo -e "\t\t\e[32mPartition a été montée\e[0m\n"
else
echo -e "\t\t\e[31mPartition non montée\e[0m\n"
exit 2
fi
# ====================== #
# Vérification des dates #
# ====================== #
DATE1=`date -r $FILE1 '+%Y-%m-%d %H:%M:%S'`
DATE2=`date -r $FILE2 '+%Y-%m-%d %H:%M:%S'`
echo -e "\t\tdate répertoire /mnt/boot : $DATE1"
echo -e "\t\tdate répertoire /boot : $DATE2\n"
if [[ "$DATE1" > "$DATE2" ]]
then
echo -e "\t\t\e[31mRecopie déjà effectuée !\e[0m\n"
else
# ============================================================================= #
# Recopie de la partition "/boot" du disque dur vers celle de la carte micro SD #
# ============================================================================= #
cd /mnt/boot
rm -Rf *
cd /boot
cp -Rf * /mnt/boot
echo -e "\t\t\e[32mCopie effectuée !\e[0m\n"
fi
fi
# ========================= #
# Démontage de la partition #
# ========================= #
echo -e "\t\t\e[32mPartition démontée\e[0m\n"
umount $DEVICE
else
echo -e "\t\t\e[32mLa carte Micro SD \"$UUID\" (carte N°3) n'est pas installée !\e[0m\n"
exit 1
fi
exit 0