Я хотел бы иметь современный клон системы (Debian) GNU/Linux на внешнем HDD и, следовательно, иметь возможность заменить внутренний HDD на внешний HDD в любое время и запустить его в кратчайшие сроки. Поскольку система находится на ноутбуке, я не могу полагаться на аппаратное решение для зеркалирования.
Я хотел бы, чтобы процедура резервного копирования была максимально автоматической и беспроблемной. Например, она могла бы запускаться автоматически при выключении всякий раз, когда подключается внешний жесткий диск.
У меня уже есть внешний жесткий диск с клоном системных разделов.
Предостережение заключается в том, что раздел, на котором размещен/каталог зашифрован с помощью LUKS+dm-crypt, и я бы предпочел не вводить пароли снова для резервной копии.
Я мог бы автоматически монтировать внешний зашифрованный раздел перед выключением.
Существует ли готовое решение? Пожалуйста, отвечайте только в том случае, если оно есть, потому что если его нет, то я опубликую конкретный вопрос для реализации индивидуального решения.
Спасибо за внимание.
решение1
Резервное копирование будет намного быстрее, если вы сделаете резервную копию только того, что изменилось. Это нужно сделать на уровне файлов, с монтированными зашифрованными контейнерами, поскольку файлы содержат временную метку, которая позволяет инструменту резервного копирования пропускать файлы, которые не были изменены с момента последнего резервного копирования.
Чтобы скопировать файл,rsyncявляется инструментом выбора. Вам необходимо синхронизировать каждую файловую систему с соответствующей на внешнем жестком диске:
rsync -ax / /media/backup-hdd/root
Используйте выделенное имя блочного устройства и выделенную точку монтирования для каждого раздела, чтобы не полагаться на общие имена, такие как sdb1
и /media/sdb1
, которые могут быть другим диском. Это делается через udev; см.Автоматизация последовательности монтажных команд.
Чтобы запустить скрипт во время выключения, поместите его в /etc/init.d
и создайте символические ссылки на него в /etc/rc0.d
и /etc/rc6.d
(0 для выключения, 6 для перезагрузки) под названием S01my-backup
. Скрипту нужно будет сделать несколько вещей:
- Проверьте, смонтирован ли уже резервный диск (посмотрев точку монтирования в
/proc/mounts
). - Если резервный диск не смонтирован, проверьте его наличие (поиск блочного устройства в
/dev
). - Если резервного диска нет, либо откажитесь, либо предложите пользователю подключить его.
- Если зашифрованный том не смонтирован, вам нужно запросить у пользователя пароль. Как только зашифрованный том станет доступен, смонтируйте файловую систему(ы).
- Наконец, запустите
rsync
.
Если вы не хотите монтировать внешний зашифрованный том, вы можете скопировать зашифрованный том целиком. Хотя это просто, у этого есть серьезный недостаток: это очень-очень медленно, так как вам каждый раз приходится заново создавать образ всего диска. Кроме того, если это не удается в середине, вы получаете нечитаемую резервную копию — резервная копия становится правильно сформированной только после полного прохода. Вам также следует переключить исходное монтирование на режим только для чтения, иначе вы рискуете скопировать несогласованные данные.