sudo nano respaldo.sh
# podemos crear el archivo sin compromir
DAY=$(date +%A)
sudo dd if=/dev/mmcblk0 of=/home/pi/usb/Files/RPI4_backup-$DAY.img bs=4M status=progress
# podemos crear el archivo o asignando compresion con gzip
DAY=$(date +%A)
sudo dd if=/dev/mmcblk0 conv=sync,noerror bs=4M status=progress | gzip -c > /home/pi/usb/Files/RPI4_backup-$DAY.img.gz
#le cambiamos los permisos con chmod
chmod 777 respaldo.sh
#y si ahora quedemos calendarizar el proceso todos los dias a X hora podemos usar crontab
crontab -e
#en este caso el respaldo se ejecuta todos los dias a las 2 am
0 2 * * * /home/pi/./respaldo_rpi.sh
si deseamos truncar la unidad podemos obtener el tamaño maximo con fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk0p2 532480 15892479 15360000 7.3G 83 Linux
y aparecerá el tamaño del sector en mi caso 512 bytes.
Disk /dev/mmcblk0: 29.7 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x027fc595
#para hacer el respaldo
sudo dd if=/dev/mmcblk0 of=/usb/Files/RPI4_backup.img bs=4M status=progress
#ejemplo de como truncar
#truncate --size=$[(valor_de_End + 1)*512] imagen.img
truncate --size=$[(15360000 + 1)*512] /usb/Files/RPI4_backup.img
respaldo en otra unidad
#sudo dd if=/dev/mmcblk0 of=/usb/Files/RPI4_backup.img bs=4M status=progress
path1=/1tb_usb/Files/RPI4_backup.img #asignaNombre
sudo dd if=/dev/mmcblk0 of=$path1 bs=4M status=progress #generaRespaldoFull
sudo truncate --size=$[(15360000 + 1)*512] $path1 #truncaElRespaldo
mejora con pishrink
wget https://githubusercontent.com
chmod +x pishrink.sh
sudo mv pishrink.sh /usr/local/bin/pishrink
#!/bin/bash
# Configuración de rutas
RESPALDO_DIR="/usb500GB/Files"
RESPALDO_NOM="RPI4_backup.img"
PATH_FINAL="$RESPALDO_DIR/$RESPALDO_NOM"
echo "==========================================="
echo " Iniciando respaldo completo de Raspberry Pi"
echo "==========================================="
# 1. Ejecutar dd para crear la imagen completa de 32GB
echo "[1/2] Copiando tarjeta SD a $PATH_FINAL..."
sudo dd if=/dev/mmcblk0 of="$PATH_FINAL" bs=4M status=progress conv=fsync
# Verificar si dd terminó correctamente
if [ $? -eq 0 ]; then
echo -e "\n[OK] Copia base con dd finalizada con éxito."
echo "==========================================="
echo "[2/2] Iniciando optimización con PiShrink..."
echo "==========================================="
# 2. Ejecutar PiShrink sobre la imagen recién creada
sudo pishrink "$PATH_FINAL"
echo "==========================================="
echo " ¡Proceso completado con éxito!"
echo " Tu imagen optimizada está lista en: $PATH_FINAL"
echo "==========================================="
else
echo -e "\n[ERROR] El comando dd falló. Se cancela PiShrink."
exit 1
fi
No comments:
Post a Comment