- Резервное копирование Arch Linux
- Содержание
- Создание резервной копии
- Дополнительные параметры
- Пример создания резервной копии с дополнительными параметрами
- Восстановление системы из резервной копии
- System backup
- Contents
- Using Btrfs snapshots
- Using LVM snapshots
- Using rsync
- Using tar
- Using SquashFS
- Bootable backup
- Update the fstab
- Update the bootloader’s configuration file
- First boot
- Full system backup with tar
- Contents
- Boot with LiveCD
- Changing root
- Mount other partitions
- Exclude file
- Backup script
- Restoring
- Backup with parallel compression
- Synchronization and backup programs (Русский)
- Contents
- Введение в резервное копирование
- Синхронизация данных
- Легенда
- Таблица
- Инкрементное резервное копирование
- Одно устройство
- Инкременты на основе блоков данных
- Инкременты на основе файлов
- Сетевые решения
- Системы управления версиями
Резервное копирование Arch Linux
В данной статье описывается создание полной резервной копии Arch Linux с помощью tar, с возможностью создания зашифрованного архива, а так же последующее восстановление резервной копии.
Содержание
Создание резервной копии
Если вы используете последнюю версию Arch Linux, то у вас в системе уже установлены все необходимые компоненты. Если вы в этом не уверены, произведите их установку (обновление):
Сам процесс создания резервной копии выполняется одной командой:
При этом по указанному пути будет создан архив .tar.gz (lzma2), включающий в себя все файлы системы.
Дополнительные параметры
Для того, что бы изменить метод сжатия, используемый архиватором tar, можно использовать ключ «J» (lzma2) вместо «z» (gzip), при этом уменьшится объем архива, но увеличится время его создания.
Так же можно добавить ключ «v», для того, что бы tar отображал ход своей работы.
Если необходимо, что бы во время своей работы tar уступал ресурсы другим приложением, перед tar необходимо указать команду nice, при этом увеличится время создания архива.
Если из резервной копии необходимо исключить определенные файлы/папки, их необходимо добавить в секцию -exclude=<>.
Для добавления штампа времени в имя файла можно использовать регулярные выражения. Например,
Для создания шифрованного архива необходимо добавить блок
перед секцией создания файла. MyGpgUser — имя вашего предварительно сгенерированного ключа gpg.
Пример создания резервной копии с дополнительными параметрами
Все вышеприведенные параметры можно использовать вместе, например для создания полной резервной копии методом lzma2, с шифрованием архива, отображением прогресса, лояльностью процесса создания и временным штампом в имени файла будет использоваться команда:
где MyGpgUser — имя вашего предварительно сгенерированного ключа gpg.
Восстановление системы из резервной копии
Для восстановления системы из резервной копии скачайте последнюю версию Live CD с официального сайта, и загрузитесь с нее. Перейдите в каталог /mnt, в котором будут производиться все действия:
Теперь необходимо смонтировать разделы диска, на которые будет восстановлена система.
Смонтируйте основные разделы, как указано в статье Полная установка Arch Linux#Форматирование и монтирование или Полная установка Arch Linux#Форматирование и монтирование с шифрованием, в зависимости от того, использует ли система полное шифрование диска.
Внимание! Если у вас резервная копия системы, которая не использовала полное шифрование диска, но вы хотите использовать его сейчас и наоборот, произведите действия указанные в Полная установка Arch Linux#Включение дополнительных модулей ядра и Полная установка Arch Linux#Настройка загрузчика, добавив или удалив указанные настройки.
Так же, можно менять тип разметки диска, на котором будет восстановлена система, следуя инструкциям в Полная установка Arch Linux#Разметка диска
Смонтируйте системные разделы:
Далее, необходимо удалить старый и сгенерировать новый fstab:
Теперь необходимо перейти в сhroot:
И произвести сборку ядра, и установку загрузчика:
На этом восстановление системы закончено. Выйдите из окружения сhroot и перезагрузите систему:
Источник
System backup
It is important to regularly backup system and user data stored for example in /etc , /home , /root , /var and for server installations, also /srv .
Contents
Using Btrfs snapshots
Using LVM snapshots
Using rsync
Using tar
Using SquashFS
Bootable backup
Having a bootable backup can be useful in case the filesystem becomes corrupt or if an update breaks the system. The backup can also be used as a test bed for updates, with the testing repo enabled, etc. If you transferred the system to a different partition or drive and you want to boot it, the process is as simple as updating the backup’s /etc/fstab and your bootloader’s configuration file.
This section assumes that you backed up the system to another drive or partition, that your current bootloader is working fine, and that you want to boot from the backup as well.
Update the fstab
Without rebooting, edit the backup’s fstab by commenting out or removing any existing entries. Add one entry for the partition containing the backup like the example here:
Remember to use the proper device name and filesystem type.
Update the bootloader’s configuration file
For Syslinux, all you need to do is duplicate the current entry, except pointing to a different drive or partition.
For GRUB, it is recommended that you automatically re-generate the main configuration file. If you want to freshly install all GRUB files to somewhere other than /boot , such as /mnt/newroot/boot , use the —boot-directory flag.
Also verify the new menu entry in /boot/grub/grub.cfg . Make sure the UUID is matching the new partition, otherwise it could still boot the old system. Find the UUID of a partition with lsblk:
where /dev/sdXY is the desired partition (e.g. /dev/sdb3 ). To list the UUIDs of partitions GRUB thinks it can boot, use grep:
First boot
Reboot the computer and select the right entry in the bootloader. This will load the system for the first time. All peripherals should be detected and the empty folders in / will be populated.
Now you can re-edit /etc/fstab to add the previously removed partitions and mount points.
Источник
Full system backup with tar
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
This article will show you how to do a full system backup with tar.
Backing up with tar has the advantages of using compression that can help save disk space, and simplicity. The process only requires several steps, they are:
- Boot from a LiveCD
- Change root to the Linux install
- Mount additional (if any) partitions/drives
- Add exclusions
- Use the backup script to backup
To minimize downtime the backup can alternatively be performed on a running system using LVM snapshots, if all filesystems reside on LVM volumes.
Contents
Boot with LiveCD
Many Linux bootable CDs, USBs. have the ability to let you change root to your install. While changing root is not necessary to do a backup, it provides the ability to just run the script without need to transfer it to a temporary drive or having to locate it on the filesystem. The Live medium must be of the same architecture that your Linux install currently is (i.e. i686 or x86_64).
Changing root
First you should have a scripting environment set up on your current Linux install. If you do not know what that is, it means that you are able to execute any scripts that you may have as if they are regular programs. If you do not, see this article on how to do that. What you will need to do next is change root, to learn more about what changing root is, read this. When you change root, you do not need to mount any temporary file systems ( /proc , /sys , and /dev ). These temporary file systems get populated on boot and you actually do not want to backup them up because they can interfere with the normal (and necessary) population process which can change on any upgrade. To change root, you will need to mount your current Linux installs root partition. For example:
Use fdisk -l to discover you partitions and drives. Now chroot:
This example obviously uses bash but you can use other shells if available. Now you will be in your scripted environment (this is provided that you have your
/.bashrc sourced on entry):
Mount other partitions
Other partitions that you use (if any) will need to be mounted in their proper places (e.g. if you have a separate /home partition).
Exclude file
tar has the ability to ignore specified files and directories. The syntax is one definition per line. tar also has the capability to understand regular expressions (regexps). For example:
Backup script
Backing up with tar is straight-forward process. Here is a basic script that can do it and provides a couple checks. You will need to modify this script to define your backup location, and exclude file (if you have one), and then just run this command after you have chroot ed and mounted all your partitions.
Restoring
To restore from a previous backup, mount all relevant partitions, change the current working directory to the root directory, and execute
replacing backupfile with the backup archive. Removing all files that had been added since the backup was made must be done manually. Recreating the filesystem(s) is an easy way to do this.
Backup with parallel compression
To back up using parallel compression (SMP), use pbzip2 (Parallel bzip2):
Источник
Synchronization and backup programs (Русский)
Эта статья содержит список и сравнение программ для синхронизации данных между двумя и более местоположениями, а также программ с расширенными возможностями, например, инкрементным резервным копированием. Данные темы достаточно схожи между собой и, соответственно, описываются в одной статье.
Contents
Введение в резервное копирование
Создание резервных копий является необходимой мерой, поскольку ошибки, совершаемые людьми и машинами, могут приводить к повреждению данных; физические носители также разрушаются со временем и однажды перестают работать. Чтобы выбрать лучшую программу для своих нужд, нужно учесть следующие моменты:
- тип носителя данных, используемый для резервных копий: CD, DVD, удалённый сервер, внешний жёсткий диск и т.д.;
- планируемая частота создания резервных копий: ежедневно, еженедельно, ежемесячно и т.д.;
- возможности, ожидаемые от инструмента: сжатие, шифрование, обработка переименований и т.д.;
- планируемый метод восстановления резервных копий при необходимости.
Синхронизация данных
Эти приложения просто «зеркалируют» содержимое каталогов по нескольким местам. Тем не менее большинство из них позволяют сохранять и возвращать старые версии изменённых или удалённых файлов.
Легенда
Таблица
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
This article or section needs expansion.
Название | Пакет | Реализация | Delta transfer | Зашифрованная передача | Метаданные ФС | Возобновляемая | Переименования | Контроль версий | Передача изменений | Решение конфликтов | Мониторинг ФС | CLI | Другие интерфейсы | Лицензия | Другие платформы | Поддержка | Особенности |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FreeFileSync | freefilesyncAUR | C++ | ? | SFTP [1] | ? | ? | Да [2] | Да [3] | односторонняя / многосторонняя | Да | ? | Нет | Да | GPL | Windows, macOS | Да | |
git-annex | git-annex | Haskell, git | rsync [4] | rsync и другие [5] | Нет, но используются собственные, не относящиеся к ФС, метаданные [6] | Да [7] | Да, хранилище с адресацией по содержимому (content-addressable) | Да | многосторонняя; с удалёнными репозиториями [8] | переименование конфликтующих файлов [9] | Опционально, git-annex assistant | Да | git-annex assistant | GPLv3 | macOS, Android (beta), Windows (beta) | Да | Управление файлами с помощью git |
osync.sh | osyncAUR | Bash, основано на rsync | rsync | rsync | ? | Да | Нет | Да | двухсторонняя | сохраняет несколько версий файла [10] | опционально [11] | Да | Нет | BSD | Да | ||
rclone | rclone | Go | Нет [12] | ? | ? | ? | ? | ? | односторонняя [13] | ? | ? | Да | RcloneBrowser | MIT | *BSD, Plan9, Solaris, Windows, macOS | Да | Оптимизировано для работы с облачными хранилищами, поведение варьируется в зависимости от возможностей удалённого хранилища. |
rdiff-backup | rdiff-backup | Python, librsync | rsync | rsync | Да | ? | Нет | Да | односторонняя | Нет | Да | Нет | GPL | Win32 | ? | ||
Resilio Sync | rslsyncAUR | C++ | Да | Да | ? | Да | ? | Да | многосторонняя | ? | ? | Нет | Web | Проприетарная, freemium | FreeBSD, Windows, macOS, Android, iOS, Windows Phone, Amazon Kindle Fire | Да | P2P-синхронизация |
rsync | rsync | C | Да | SSH или собственный протокол | Да | Да | Нет |
| односторонняя | Нет | Да | Rsync (Русский)#Фронтенды | GPLv3 | Win32 | Да | Стандартный инструмент, доступный во всех дистрибутивах Linux. | |
SparkleShare [устаревшая ссылка 2021-05-17] | sparkleshare | C#, git | Да | AES-256 [15] | ? | ? | Да | Да | ? | ? | ? | Нет | Да | GPLv3 | Windows, macOS | Да | Может синхронизировать с любым Git-сервером через SSH. |
Syncany | syncanyAUR | Java | ? | ? | ? | ? | ? | ? | ? | ? | ? | Да | Да | GPLv3 | Нет [16] | ||
Syncthing | syncthing | Go | Да [17] | Да [18] | частично [19] | Да | ? | Да [20], старые версии перемещаются в архивный каталог | многосторонняя | переименовывает один файл [21] | Да | Да | Web, GTK | MPL v2 | BSD, Windows, macOS, Android, Kindle Paperwhite | Да | P2P-синхронизация |
Synkron | synkronAUR | C++ | ? | ? | ? | ? | ? | ? | многосторонняя | ? | ? | Нет | Qt | GPLv2 | Windows, macOS | No | |
taskd | taskd | C++, Python | Да | Да | ? | Да | ? | ? | многосторонняя | ? | Нет | Да | Нет | MIT | Android | Да | |
Unison | unison | OCaml | Да | Да | частично [22] | опционально [23] | Нет | Yes (Русский) [24] | двухсторонняя | Интерактивное | Нет | Да | GTK2 | GPL | FreeBSD, Windows, macOS, Android | Да [25] | |
Zaloha.sh | bash | Нет | Нет | Опционально | Нет | Нет | Нет | двухсторонняя | Интерактивное | Нет | Да | Нет | MIT | Windows под Cygwin | Да [26] | Небольшая и простая утилита |
Инкрементное резервное копирование
Приложения, которые могут создавать инкрементные резервные копии, запоминают и учитывают, какие данные были скопированы во время последнего запуска (так называемые «различия») и устраняют необходимость хранить дубликаты неизменённых данных. Восстановление данных к определённому моменту времени потребует размещения последней полной резервной копии и всех инкрементных резервных копий с того момента, когда предполагается, что они будут восстановлены. Этот вид резервных копий полезен для тех, кто делает их очень часто.
- Название: название приложения со ссылкой на ArchWiki или официальный сайт.
- Пакет: ссылка на пакет.
- Реализация: язык программирования, библиотеки или утилиты, на базе которых создано приложение.
- Сжатое хранилище: использование сжатия для хранилища резервных копий.
- Зашифрованное хранилище: использование шифрования для хранилища резервных копий.
- Delta transfer: передача только изменённых частей файла.
- Зашифрованная передача: передача данных зашифрованном виде по умолчанию при использовании сети.
- Метаданные ФС: сохранение прав доступа и атрибутов файловой системы.
- Лёгкий доступ: резервные копии хранятся на файловой системе или могут быть примонтированы для удобной работы с ними.
- Возобновляемая: возможность возобновления синхронизации в случае её прерывания.
- Многопоточная: резервное копирование может производиться, используя несколько потоков.
- Переименования: перемещённые/переименованные файлы определяются и не хранятся или не передаются дважды. Обычно это означает подсчёт контрольных сумм файлов или их частей.
- CLI: наличие у приложения интерфейса командной строки, что означает возможность использования в скриптах.
- Другие интерфейсы: наличие указанных пользовательских интерфейсов, например, GUI, TUI или web.
- Лицензия: лицензия серверного и клиентского приложения.
- Другие платформы: поддержка других операционных систем помимо Linux.
- Поддержка: поддерживается ли сейчас проект разработчиками.
- Особенности: заметки об особых функциях, которые выделяют приложение среди других.
Одно устройство
Эти приложения ориентированы на резервное копирование данных того устройства, на котором они установлены, хотя целевое место хранения копий может быть расположено на внешнем хранилище или другой системе.
Инкременты на основе блоков данных
This article or section needs expansion.
При изменении файла приложении сохраняют только изменившиеся части в следующем снимке. В отличие от инкрементов на основе файлов, они более экономно расходуют место, особенно когда есть большие файлы с малыми изменениями; с другой стороны, такие резервные копии могут быть прочитаны только тем приложением, которое их создало, так как исходные файлы должны быть реконструированы по сохранённым в копии различиям между версиями.
Название | Пакет | Реализация | Сжатое хранилище | Зашифрованное хранилище | Delta transfer | Зашифрованная передача | Метаданные ФС | Лёгкий доступ | Возобновляемая | Многопоточная | Переименования | CLI | Другие интерфейсы | Лицензия | Другие платформы | Поддержка | Особенности |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Areca Backup | areca AUR | Java | Zip, Zip64 | AES128, AES256 | Да | Да | Да | Нет | Только приостановка | Нет [27] | Нет | Да | Да | GPLv2 | Windows | Да | |
BorgBackup | borg borg-bin AUR [ссылка недействительна: package not found] | Python, C (Cython) | lz4, zlib, lzma, zstd | AES256 | Да | SSH | Да [28] | Да [29] | Да [30] | Нет [31] | Да | Да | third party | BSD | *BSD, macOS, Windows (Cygwin / WSL)[32] | Да | Дедубликация на основе переменной длинны блоков данных; поддерживает как локальные, так и удалённые хранилища резервных копий (с помощью SSH). |
bup | bup bup-git AUR | C, Python, git | Да | Нет | Да | Да | Недостаточно проработанная поддержка | Да [33] | Продолжение с того места, где вы остановились [34] | Нет | Да | Да | bups AUR | GPLv2 | NetBSD, Windows, macOS | Да | Формат хранения данных, аналогичный git. |
Duplicacy | duplicacy AUR duplicacy-cli-bin-git AUR duplicacy-git AUR | Go | Да | Да | Да | Да | Да | Да [35] | Да [36] | Да [37] | Да [38] | Да | duplicacy-web AUR | Собственная | FreeBSD, macOS, Windows | Да | |
Duplicati | duplicati-latest AUR | C# | Да | Да | Да | Да | Да | Нет | Только приостановка | Да [39] | Нет | Да | Да | LGPL | Windows, macOS | Да | |
Duplicity | duplicity | librsync | gzip | gpg | Да | Да | ? | Нет | Да | Нет | Нет | Да | Yes | GPL | Да | ||
Kup Backup System | kup | rsync, bup front-end | Да | Да | Да | Да | Недостаточно проработанная поддержка | Да | Нет | ? | Да | bup | Qt | GPLv2 | Да | ||
obnam | obnam AUR | Python | Да | GnuPG | Да | Да | ? | Да | Сохранение каждые 100MB | ? | ? | Да | Нет | GPLv3 | Нет | ||
restic | restic restic-git AUR | Go | Нет [40] | AES-256 [41] | Да | Да | Да [42] | Да [43] | Да [44] | Да [45] | Да | Да | Нет [46] | BSD | OpenBSD, Windows, macOS | Да | Имеет встроенную или основанную на rclone поддержку различных облачных хранилищ. |
ZBackup | zbackup AUR | C++ | LZMA, LZO | AES | Да | Да | ? | Планируется [47] | Нет | ? | С помощью tar | Да | Нет | GPLv2 | Нет | Репозиторий состоит из неизменяемых файлов. |
Инкременты на основе файлов
This article or section needs expansion.
Когда файл изменяется, эти приложения сохраняют новую его версию полностью в следующем снимке. В отличие от инкрементов на основе фрагментов, они менее экономно расходую место, особенно когда есть большие файлы с малыми изменениями; с другой стороны, зачастую такие резервные копии могут быть открыты без использования создавшего их приложения.
- Жёсткие ссылки: хранение неизменённых файлов в виде жёстких ссылок на предыдущие версии.
Название | Пакет | Реализация | Сжатое хранилище | Зашифрованное хранилище | Delta transfer | Зашифрованная передача | Метаданные ФС | Лёгкий доступ | Возобновляемая | Переименования | Жёсткие ссылки | CLI | Другие интерфейсы | Лицензия | Другие платформы | Поддержка | Особенности |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Back In Time | backintimeAUR | Python, rsync, diff | Нет | Нет | rsync | rsync | rsync | Да | Нет | Нет | Да [48] [устаревшая ссылка 2020-08-06] | Да | Qt | GPLv2 | Да | ||
DAR (Disk ARchive) | darAUR | C++ | Специальный формат архивов | Да | Да | Да | ? | ? | ? | ? | Нет [49] | Да | darguiAUR | GPL | FreeBSD, NetBSD, Windows, macOS | Да | |
Link-Backup | link-backupAUR | Python 2 | Нет | Нет | ? | SSH | ? | ? | Да | Да | Нет [50] | Да | Нет | MIT | Нет | Утилита копирует себя на сервер. | |
rdup | rdupAUR | C | tar.gz | gpg, blowfish и другие | ? | ? | ? | Да | ? | Нет | Да | Да | Нет | GPLv3 | Да [51] | Набор утилит командной строки. | |
rsnapshot | rsnapshot | rsync | Нет | Нет | Да | Да | ? | ? | ? | ? | Да [52] | Да | Нет | GPLv2 | Win32 | Да [53] | |
sbackup | sbackupAUR | Python | gzip, bzip2 | Нет | ? | SSH | ? | Нет | Нет | Нет | Нет | Нет | GTK | GPLv3 | Нет | ||
TimeShift | timeshiftAUR | rsync | Нет | Нет | rsync | rsync | ? | ? | ? | ? | Да | Да | GTK | GPLv3 | Создано для резервного копирования систем на выбранные устройства. | Да [54] |
Сетевые решения
This article or section needs expansion.
Эти приложения были разработаны для централизованного архивирования данных с нескольких машин, соединённых по сети, с использованием клиент-серверной модели. В целом они более сложны в развёртывании в сравнении с реализациями для одного устройства.
- Направление: Pull: сессия архивирования инициализируется сервером. Push: сессия архивирования инициализируется клиентом.
- Тип инкремента: стратегия уменьшения дублирования данных для экономии места (помимо сжатия).
- на основе файлов: при изменении файла в новом снимке сохраняется новая версия целиком.
- с жёсткими ссылками: хранение неизменённых файлов в виде жёстких ссылок на предыдущие версии.
- на основе блоков данных: при изменении файла в снимке хранятся только изменённые части.
- на основе файлов: при изменении файла в новом снимке сохраняется новая версия целиком.
Название | Пакет | Реализация | Направление | Сжатое хранилище | Зашифрованное хранилище | Delta transfer | Зашифрованная передача | Метаданные ФС | Лёгкий доступ | Возобновляемая | Переименования | Тип инкремента | CLI | Другие интерфейсы | Лицензия | Другие платформы | Поддержка | Особенности |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BackupPC | backuppc | Perl | Pull | Да | Нет | Да | Да | Да | Нет | Да | ? | На основе файлов, c жёсткими ссылками [55] | Нет | Web | GPLv2 | Любые (нет необходимости в клиенте) | Да | Идентичные файлы резервных копий одного или более клиентов хранятся только в одном экземпляре. |
Bacula | bacula* в AUR (Русский) | C++ | Pull | Да | Да | ? | Да | ? | ? | Да | ? | На основе файлов [56] | Да | GUI, Web | AGPLv3 | Windows, macOS | Да | |
Bareos | bareos* в AUR (Русский) | C++ (Bacula fork) | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | AGPLv3 | Да | ||
burp | burp-backupAUR | librsync | Push | Да | Да | Да | Да | Да | ? | Да | ? | На основе блоков данных [57] | Да | burp-ui | AGPLv3 | Windows, macOS | Да | |
SafeKeep | safekeepAUR | rdiff-backup | Pull | Нет | Нет | ? | Да | ? | ? | ? | ? | На основе блоков данных [58] | Да | Да | GPL | Нет | Утилита интегрируется с LVM и базами данных для создание постоянных резервных копий. Также поддерживается регулирование пропускной способности канала. | |
Synbak [устаревшая ссылка 2020-08-06] | synbak | Надстройка над несколькими утилитами | ? | Да | Нет | Да | Да | Да | ? | ? | ? | ? | Нет | Web | GPLv3 | Да | Совмещает несколько способов резервного копирования. | |
UrBackup | urbackup* в AUR (Русский) | C++ | Pull | Нет | Нет | Да | Только при сетевой передачи данных | Да | Да | Да | Да | На основе файлов, c жёсткими и символьными ссылками ссылки[59]/CoW-снимки на основе блоков данных[60] | Да (client) | GUI, Web | AGPLv3+ | Windows, macOS | Да | Идентичные файлы резервных копий одного или более клиентов хранятся только в одном экземпляре. Поддерживается интеграция с LVM, dattobd и btrfs для создания снимков ФС. |
Системы управления версиями
Хотя системы управления версиями чаще всего используются для исходного кода, они могут хранить любые файлы.
Источник