Резервное копирование системы (BackUP / TAR)

Одним из наиболее популярных способов создания простейшего BackUP является архивация данных с помощью tar.

Сразу стоит отметить, что все операции BackUP стоит производить не «по-живому», т.е. не на работающей системе, а с liveCD или установленной на соседнем разделе/флэшке/usb-hdd системы. В случаях, когда простой в несколько минут критичен для системы, возможно копирование системы из-под самой себя, но при этом нужно учитывать некоторые дополнительные условия, которые в данной статье пока что не рассматриваются.

Вариант tar

Одним из наиболее популярных способов создания простейшего BackUP является архивация данных с помощью tar. Преимуществами данного способа являются возможность инкрементного бэкапа (добавления файлов в существующий архив, удаления или изменения таковых), возможность извлечения из архива отдельных файлов, а также присутствие tar практически в любой Linux-системе. 

Для начала создайте точки монтирования для корневого раздела и для раздела, на котором вы собираетесь создавать бэкап:

sudo mkdir /mnt/{root,backup}

Смонтируйте оба раздела. Для большей надежности можно смонтировать корневой раздел в режиме read-only (только для чтения), чтобы исключить вероятность случайного изменения данных.

sudo mount /dev/sdXY /mnt/root -o ro
sudo mount /dev/sdXY /mnt/backup

(Вместо «sdXY» используйте ваши значения для нужных разделов. определить их можно с помощью sudo fdisk -l или sudo blkid).

В случае, если вы используете отдельные разделы для /boot, /usr, /home и пр. и хотите включить их содержимое в бэкап, примонтируйте их в соответствующие папки.

sudo mount /dev/sdXY /mnt/root/usr -o ro
sudo mount /dev/sdXY /mnt/root/home -o ro

При необходимости создайте на бэкап-разделе папку, в которой вы хотите разместить архив, например...

sudo mkdir -p /mnt/backup/ubuntu/root

Теперь можно приступить к созданию архива. Чтобы создать архив с gzip-сжатием, выполните...

sudo tar -cvzpf -C /mnt/root /mnt/backup/ubuntu-sda1.tar.gz .

(Ключ -p включает сохранение владельцев и прав доступа для файлов).

Для bzip2-сжатия используйте...

sudo tar -cvjpf /mnt/backup/ubuntu-sda1.tar.bz2 /mnt/root

 Для lzma-сжатия...

sudo tar --lzma -cvpf /mnt/backup/ubuntu-sda1.tar.lzma /mnt/root

Аналогично для lzo-сжатия - ключ --lzop вместо --lzma (различные алгоритмы сжатия дают разный размер архива, а также отличаются по производительности ).

По завершении процесса отмонтируйте все смонтированные разделы...

sudo umount /mnt/root{/boot,/var,/home,} /mnt/backup

Восстановление из архива

Обратите внимание. Данный способ предполагает полный откат к состоянию на момент создания архива с заменой всех данных.

 Создайте точки монтирования для корневого раздела и раздела, на котором хранится ваш архив...

sudo mkdir /mnt/{root,backup}

Примонтируйте раздел с архивом-бэкапом...

sudo mount /dev/sdXY /mnt/backup -o ro

Отформатируйте корневой раздел в ту же (или другую) ФС. Если вы используете отдельные разделы для /usr, /boot и пр. и архивировали их, отформатируйте их тоже.

sudo mkfs.reiserfs -l "root" /dev/sdXY
sudo mkfs.ext2 -L "boot" /dev/sdXY
sudo mkfs.ext4 -L "home" /dev/sdXY

(если вы восстанавливаете систему на новый жесткий диск, разметьте его с помощью fdisk/gparted и отформатируйте разделы).

Некоторые файловые системы поддерживают задание UUID при форматировании. Это дает возможность создать ФС с таким же UUID, как у старой, что позволит избежать необходимости править fstab. Для ext2/3/4 UUID задается с помощью ключа -U, а еще больше упростить задачу можно командой вида...

sudo mkfs.ext4 -L "label" -U "$(sudo blkid -o value -s UUID /dev/sda1)" /dev/sda1

Для reiserfs это будет ключ -u, для reiser4 -U, для остальных см. man mkfs.тип.

Смонтируйте свежесозданные ФС 

sudo mount /dev/sdXY /mnt/root
sudo mount /dev/sdXY /mnt/root/home

Теперь можно распаковать содержимое архива на место...

sudo tar --same-owner -xvpf /mnt/backup/ubuntu-2010-10-07.tar.bz2 -C /mnt/root/

(ключ -C задает каталог, в который нужно распаковать файлы. ключ --same-owner сохраняет владельцев файлов при распаковке).

Если вы воспользовались советом выше и создали ФС тех же типов с теми же UUID - можете смело пропустить этот пункт. В противном случае вам придется исправить fstab в соответствии с произведенными изменениями. Откройте этот файл в любимом текстовом редакторе (например, nano) и замените UUID (и тип ФС, если форматировали что-либо в другую ФС) нужных разделов .

sudo nano /mnt/root/etc/fstab

Сохраните файл, выйдите из редактора и отмонтируйте все смонтированные разделы.

sudo umount /mnt/root{/var,/boot,} /mnt/backup

Если вы распаковывали BackUP на другой жесткий диск, не забудьте установить туда GRUB.


Как известно, «пользователи компьютера делятся на тех, кто делает бэкапы, и тех, кто будет их делать». 

 

Последние материалы