Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:backup [2012/05/07 02:01] |
wiki:backup [2016/04/25 01:18] (текущий) [Создание архива] |
||
---|---|---|---|
Строка 44: | Строка 44: | ||
Теперь можно приступить к созданию архива. Чтобы создать архив с gzip-сжатием, выполните | Теперь можно приступить к созданию архива. Чтобы создать архив с gzip-сжатием, выполните | ||
- | <code>sudo tar -cvzpf /mnt/backup/ubuntu-sda1.tar.gz /mnt/root</code> | + | <code>sudo tar -cvzpf -C /mnt/root /mnt/backup/ubuntu-sda1.tar.gz .</code> |
(Ключ ''-p'' включает сохранение владельцев и прав доступа для файлов ((для суперпользователя этот режим активирован по умолчанию, так что его использование, вообще-то, не обязательно))) | (Ключ ''-p'' включает сохранение владельцев и прав доступа для файлов ((для суперпользователя этот режим активирован по умолчанию, так что его использование, вообще-то, не обязательно))) | ||
Строка 106: | Строка 106: | ||
Теперь можно распаковать содержимое архива на место | Теперь можно распаковать содержимое архива на место | ||
- | <code>sudo tar --same-owner -xvpf /mnt/backup/ubuntu-2010-10-07.tar.bz2 -C /mnt/root</code> | + | <code>sudo tar --same-owner -xvpf /mnt/backup/ubuntu-2010-10-07.tar.bz2 -C /mnt/root/</code> |
//(ключ ''-C'' задает каталог, в который нужно распаковать файлы. ключ ''%%--%%same-owner'' сохраняет владельцев файлов при распаковке)// | //(ключ ''-C'' задает каталог, в который нужно распаковать файлы. ключ ''%%--%%same-owner'' сохраняет владельцев файлов при распаковке)// | ||
Строка 164: | Строка 164: | ||
<code>sudo mount /dev/sdXY /mnt/root</code> | <code>sudo mount /dev/sdXY /mnt/root</code> | ||
- | Теперь мы применим одну хитрость - прочистим свободное место от старого мусора (остатков удаленных файлов), перезаписав его нулевыми (пустыми) байтами. Эта операция не обязательна, но может заметно помочь при сжатии образа. Если сжимать образ не требуется, то следующие четыре команды вам не нужны. | + | Теперь мы применим одну хитрость - прочистим свободное место от старого мусора (остатков удаленных файлов), перезаписав его нулевыми (пустыми) байтами. Эта операция не обязательна, но может заметно помочь при сжатии образа. Если сжимать образ не требуется, то следующие две команды вам не нужны. |
- | <code>sudo mount /dev/sdXY /mnt/backup | + | <code>sudo dd if=/dev/zero of=/mnt/root/zero bs=4M</code> |
- | sudo dd if=/dev/zero of=/mnt/root/zero bs=4M</code> | + | |
//(Опция ''if'' задает входной файл, в данном случае это ''/dev/zero'' - псевдоустройство, генерирующее поток нулевых байтов; опция ''of'' - выходной файл, в которые записываются наши данные; ''bs'' задает размер блока, т.е. количество информации, считываемой/записываемой за один раз - в данном случае это 4МБ)// | //(Опция ''if'' задает входной файл, в данном случае это ''/dev/zero'' - псевдоустройство, генерирующее поток нулевых байтов; опция ''of'' - выходной файл, в которые записываются наши данные; ''bs'' задает размер блока, т.е. количество информации, считываемой/записываемой за один раз - в данном случае это 4МБ)// | ||
Строка 178: | Строка 177: | ||
<code>sudo umount /mnt/root</code> | <code>sudo umount /mnt/root</code> | ||
- | Все, можно приступать к процессу | + | Все, можно приступать к процессу. |
+ | Монтируем тот раздел, куда будем сохранять бэкап | ||
+ | <code>sudo mount /dev/sdXY /mnt/backup</code> | ||
+ | Выполняем операцию, по созданию бэкапа | ||
<code>sudo dd if=/dev/sdXY bs=1M conv=noerror | gzip -c > /mnt/backup/root.dd.gz</code> | <code>sudo dd if=/dev/sdXY bs=1M conv=noerror | gzip -c > /mnt/backup/root.dd.gz</code> | ||
Строка 214: | Строка 216: | ||
Теперь вернитесь на вкладку/консоль с dd - там вы увидите информацию об объеме скопированных данных и скорости записи. | Теперь вернитесь на вкладку/консоль с dd - там вы увидите информацию об объеме скопированных данных и скорости записи. | ||
- | Если вы хотите видеть вывод данных о работе dd постоянно (через определенные промежутки времени), то во второй консоле следует ввыполнить: | + | Если вы хотите видеть вывод данных о работе dd постоянно (через определенные промежутки времени), то во второй консоли следует ввыполнить: |
<code>sudo watch -n2 killall -SIGUSR1 dd</code> | <code>sudo watch -n2 killall -SIGUSR1 dd</code> | ||
в параметре ''-n2'' — ''2'' означает выполнять команду каждые две секунды. | в параметре ''-n2'' — ''2'' означает выполнять команду каждые две секунды. | ||
Строка 224: | Строка 226: | ||
<code>sudo umount /mnt/backup</code> | <code>sudo umount /mnt/backup</code> | ||
- | |||
==== Восстановление раздела из образа ==== | ==== Восстановление раздела из образа ==== | ||
Строка 238: | Строка 239: | ||
Собственно, можно приступать (дополнительных манипуляций вроде форматирования раздела в данном случае не требуется) | Собственно, можно приступать (дополнительных манипуляций вроде форматирования раздела в данном случае не требуется) | ||
- | <code>gzip -dc /mnt/root.dd.gz | dd of=/dev/sdXY bs=1M conv=noerror</code> | + | <code>gzip -dc /mnt/root.dd.gz | sudo dd of=/dev/sdXY bs=1M conv=noerror</code> |
Или же для несжатого образа | Или же для несжатого образа | ||
Строка 519: | Строка 520: | ||
<note tip> | <note tip> | ||
- | Помимо стандартного gzip-сжатия squashfs также поддерживает lzo и lzma. Правда, для этого потребуются некоторые дополнительные манипуляции. Кому интересно - обращайтесь: [[user>dimas000]] | + | Помимо стандартного gzip-сжатия squashfs также поддерживает другие алгоритмы, список которых можно увидеть, выполнив ''mksquashfs %%--%%help''. Имейте в виду, что поддержка lzma, lzo, xz может отсутствовать в более старых версиях squashfs-tools (идущих в составе старых LiveCD, например). Кроме того, для монтирования таких образов потребуется относительно свежее ядро с поддержкой squashfs соответствующих алгоритмов сжатия (например, см. ''CONFIG_SQUASHFS_XZ=y'') |
Кроме этого, можно создать образ и без сжатия - для этого используйте ''mksquashfs'' с опцией ''-noD'' | Кроме этого, можно создать образ и без сжатия - для этого используйте ''mksquashfs'' с опцией ''-noD'' | ||
Строка 590: | Строка 591: | ||
Подобно ''cp'', ''rsync'' работает с файлами, а не с блочными устройствами. Особенность ''rsync'' в том, что он не копирует файлы, которые уже есть в точке назначения. По умолчанию он проверяет размер и время изменения файлов, но можно проверять и хэш (обычно это делается, когда нужна повышенная безопасность). | Подобно ''cp'', ''rsync'' работает с файлами, а не с блочными устройствами. Особенность ''rsync'' в том, что он не копирует файлы, которые уже есть в точке назначения. По умолчанию он проверяет размер и время изменения файлов, но можно проверять и хэш (обычно это делается, когда нужна повышенная безопасность). | ||
+ | |||
+ | ==== Простое использование ==== | ||
Синтаксис ''rsync'' подобен ''cp'': | Синтаксис ''rsync'' подобен ''cp'': | ||
Строка 600: | Строка 603: | ||
"Умное" копирование позволяет сократить время простоя системы. Запускаем ''rsync'' прямо на работающей системе, данные в которой постоянно изменяется, ''rsync'' копирует данные, скажем, в течение нескольких часов. Затем переводим систему в read-only, снова запускаем ''rsync'', теперь он копирует только те файлы, которые изменились за эти несколько часов. Через несколько минут мы имеем полную копию исходной ФС. Время простоя при этом сократилось на порядок по сравнению с оффлайн-копированием. А в некоторых случаях будет достаточно и одного онлайн-копирования без перевода системы в read-only. | "Умное" копирование позволяет сократить время простоя системы. Запускаем ''rsync'' прямо на работающей системе, данные в которой постоянно изменяется, ''rsync'' копирует данные, скажем, в течение нескольких часов. Затем переводим систему в read-only, снова запускаем ''rsync'', теперь он копирует только те файлы, которые изменились за эти несколько часов. Через несколько минут мы имеем полную копию исходной ФС. Время простоя при этом сократилось на порядок по сравнению с оффлайн-копированием. А в некоторых случаях будет достаточно и одного онлайн-копирования без перевода системы в read-only. | ||
+ | |||
+ | ==== Сохранение предыдущих копий ==== | ||
+ | |||
+ | Строго говоря rsync не является средством резервного копирования -- это средство синхронизации. Это важно при создании регулярных копий, поскольку, если какой либо важный файл был удалён в рабочем каталоге источнике -- rsync удалит его и в резервной копии. Для повышения сохранности данных целесообразно сохранять старые резервные копии. Однако простое сохранение нескольких копий потребует много памяти на жёстком диске. Если копии имеют много одинаковых файлов, то это приводит к ненужной избыточности. Эту проблему позволяет решить использование жёстких ссылок. | ||
+ | |||
+ | Суть состоит в том, что в современных файловых системах (в том числе Ext4) адресация файла производится в два этапа: имя файла указывает на уникальный номер файла (индексный дескриптор или i-node), а этому номеру сопоставлены сами данные. Любое имя файла это, по факту, жёсткая ссылка на этот номер. Следовательно, файл (набор данных) может иметь несколько имён и быть разных каталогах, а это позволяет устранить избыточность в случае необходимости дублирования файлов (ведь жёсткая ссылка занимает мало памяти). Сами данные не удаляются до тех пор пока не будет запрошено удаление последней жёсткой ссылки. | ||
+ | |||
+ | Существенное ограничение состоит в том, что жёсткие ссылки возможны только в пределах одной файловой системы. | ||
+ | |||
+ | Синхронизация содержимого каталога для текущей резервной копии с каталогом источником: | ||
+ | <code bash> | ||
+ | rsync \ | ||
+ | --archive \ # сохранять всю дополнительную информацию о файлах | ||
+ | --delete --delete-excluded \ # удаление из резервной копии несуществующих в источнике и исключённых файлов | ||
+ | --progress \ # выводить информацию о прогрессе передачи | ||
+ | "/home/user/Files/" \ # каталог источник | ||
+ | "/backup/latest/" \ # каталог для текущей резервной копии | ||
+ | --exclude='/Public/' # исключение ненужных каталогов | ||
+ | </code> | ||
+ | В каталоге «''/backup/latest/''» будет создана копия всех необходимых файлов и каталогов из источника и удалено всё лишнее. | ||
+ | |||
+ | Создание ещё одной текущей резервной копии без избыточности: | ||
+ | <code bash> | ||
+ | cp \ | ||
+ | --archive \ # сохранять всю дополнительную информацию о файлах | ||
+ | --link \ # использовать жёсткие ссылки для файлов - устранение избыточности | ||
+ | "/backup/latest/" \ # источником является полученная выше текущая резервная копия | ||
+ | "/backup/$(date +%Y-%m-%d_%H-%M-%S)/" # пункт назначения - каталог с датой в имени для удобства (см. man date) | ||
+ | </code> | ||
+ | |||
+ | При следующем создании резервной копии rsync удалит в каталоге «''/backup/latest/''» файлы которые были удалены/исключены/изменены в каталоге источнике (измененные файлы сначала удаляются, а затем записывается новая версия). Однако удалены будут лишь имена файлов (те же жёсткие ссылки), сами файлы (данные) сохранены, поскольку на них были созданы жёсткие ссылки в соседнем каталоге командой «cp». | ||
===== Прочие инструменты ===== | ===== Прочие инструменты ===== | ||
Строка 615: | Строка 649: | ||
* [[http://clonezilla.org/|сайт проекта]] | * [[http://clonezilla.org/|сайт проекта]] | ||
- | * [[http://clonezilla.org/download/sourceforge/|страница загрузки]] | + | * [[http://clonezilla.org/downloads.php|страница загрузки]] |
* [[http://drbl.org/faq/|FAQ (часто задаваемые вопросы)]] | * [[http://drbl.org/faq/|FAQ (часто задаваемые вопросы)]] | ||
* [[http://clonezilla.org/related_article/|документация и руководства (англ.)]] | * [[http://clonezilla.org/related_article/|документация и руководства (англ.)]] | ||
Строка 625: | Строка 659: | ||
==== Parted Magic ==== | ==== Parted Magic ==== | ||
- | [[http://partedmagic.com|Parted Magic]] - еще один отличный дистрибутив, содержащий целую коллекцию средств для бэкапа и восстановления информации, работы с дисками и разделами, а также восстановления утерянных данных. Он поддерживает множество ФС, [[wiki:lvm|LVM2]] и [[wpru>RAID]] (как аппаратный, так и программный) и содержит в себе таки средства как [[http://www.fsarchiver.org|fsarchiver]], [[wpru>GParted]], вышеупомянтый Clonezilla, и все, что потребуется для описанных в этой статье способов. Кроме того, в состав дистрибутива входит веб-браузер и некоторое другое дополнительное ПО. Дистрибутив переведен на несколько языков, включая русский, и имеет полноценный графический интерфейс. | + | [[http://partedmagic.com|Parted Magic]] - еще один отличный, но __платный__ дистрибутив, содержащий целую коллекцию средств для бэкапа и восстановления информации, работы с дисками и разделами, а также восстановления утерянных данных. Он поддерживает множество ФС, [[wiki:lvm|LVM2]] и [[wpru>RAID]] (как аппаратный, так и программный) и содержит в себе таки средства как [[http://www.fsarchiver.org|fsarchiver]], [[wpru>GParted]], вышеупомянтый Clonezilla, и все, что потребуется для описанных в этой статье способов. Кроме того, в состав дистрибутива входит веб-браузер и некоторое другое дополнительное ПО. Дистрибутив переведен на несколько языков, включая русский, и имеет полноценный графический интерфейс. |
* [[http://partedmagic.com|сайт проекта]] | * [[http://partedmagic.com|сайт проекта]] | ||
- | * [[http://partedmagic.com/doku.php?id=programs|список доступных программ]] | ||
- | * [[http://partedmagic.com/doku.php?id=screenshots|скриншоты]] | ||
- | * [[http://partedmagic.com/doku.php?id=downloads|страница загрузки]] | ||
- | * [[http://sourceforge.net/projects/partedmagic/|страница проекта на SourceForge]] | ||
+ | ==== LParted ==== | ||
+ | [[http://lparted.bezpieka.org/|LParted]] - полнофункциональный LiveCD, предназначенный в первую очередь для работы с разделами жестких дисков (HDD), безвозвратного удаления или восстановления данных и тестирования оборудования. Основан LiveCD на Lubuntu Linux. LParted является функциональным аналогом Parted Magic. | ||
+ | |||
+ | | ||
<note> | <note> | ||
FIXME сюда бы добавить про SystemRescueCD и прочие | FIXME сюда бы добавить про SystemRescueCD и прочие | ||
Строка 645: | Строка 679: | ||
===== Ссылки ===== | ===== Ссылки ===== | ||
+ | * [[http://forum.ubuntu.ru/index.php?topic=192844.0|Обсуждение статьи на форуме]] | ||
* [[http://forum.ubuntu.ru/index.php?topic=47437.0|обсуждение различных способов резервного копирования на форуме]] | * [[http://forum.ubuntu.ru/index.php?topic=47437.0|обсуждение различных способов резервного копирования на форуме]] | ||
+ | * [[https://help.ubuntu.com/community/BackupYourSystem|Бэкап системы (англ.)]] | ||
* FIXME побольше ссылок сюда! на статьи всякие разные и прочия | * FIXME побольше ссылок сюда! на статьи всякие разные и прочия | ||
- | + | {{topic> backup}} | |
- | {{tag> администрирование безопасность backup консоль система можно_улучшить}} | + | <style float-right>[[terms:теги#как_узнать_какой_тег_соответствует_той_или_иной_категории|тэг: backup]]</style> |
+ | {{tag> администрирование безопасность backup консоль можно_улучшить Индексная_статья}} |