Открытая платформа для создания заботливой квартиры

Для постоянного хранения в микрокомпьютерах используются SD-карты, ресурс которых ограничен. Некоторые карты могут проработать несколько лет, а некоторые - пару месяцев. Чтобы не настраивать "умный дом" каждый раз, когда появились ошибки в работе карты, организуйте периодическое резервное копирование.

Резервное копирование

Для создания и хранения резеврных копий удобно использовать внешний HDD, подключаемый по USB. Подключите диск к микрокомпьютеру и установите необходимые пакеты:

sudo -s
apt-get -y update && apt-get -y install ntfs-3g

Выясните название устройства для вашего HDD:

lsblk

Примонтируйте внешний диск к каталогу /backup:

mkdir /backup
mount -t ntfs-3g /dev/sda1 /backup -o rw,umask=0000

Загрузите и запустите скрипт, который выполнит резервное копирование SD-карты, на которой установлена операционная система и все файлы вашего "умного дома":

wget https://raw.githubusercontent.com/cutecare/rpi-home-assistant/master/backup.sh
chmod 775 backup.sh
nohup ./backup.sh /backup &

В результате работы скрипта получится образ, по размеру чуть больше, чем емкость SD-карты, с которой он был сделан. При восстановлении из резервной копии используйте большую по объему SD-карту, либо воспользуйтесь следующими инструкциями для уменьшения размера образа (процедура занимает продолжительное время):

wget https://raw.githubusercontent.com/cutecare/rpi-home-assistant/master/resize.sh
chmod 775 resize.sh
nohup ./resize.sh /backup/raspberrypi_backups/xxx.img &

Если хотите запускать резервное копирование по расписанию, то настройте cron:

echo "0 0 * * * root (umount /backup || true) && mount -t ntfs-3g /dev/sda1 /backup -o rw,umask=0000 && /home/pi/backup.sh /backup " >>  /etc/crontab
echo "" >>  /etc/crontab
service cron restart

Восстановление из резервной копии

При необходимости восстановить резервную копию на новую SD-карту используйте Linux виртуалку или приложение Etcher для Windows. На Linux выполните следующие команды:

umount /dev/mmcblk0
dd if=/media/backup/raspberrypi_backups/backup_20190104_152136.img of=/dev/mmcblk0