---
# System prepended metadata

title: Практическая работа. Система резервного копирования *Timeshift*.
tags: [лабы по Debian 11]

---

# Практическая работа. Система резервного копирования *Timeshift*.

###### tags: `лабы по Debian 11`

### Цель работы
* научиться выполнять backup ФС с помощью утилиты timeshift

### Немного теории

#### Timeshift - программа для автоматического периодического создания копий системы (снимков/snapshots).

Timeshift предназначен прежде всего для создания снимков системных файлов и настроек. Пользовательские данные по умолчанию не архивируются поэтому в случае сбоя системы, восстанавливаются системные файлы, а данные пользователей остаются в актуальном состоянии (конечно, если они не были повреждены).

Резервные копии не могут быть восстановлены на уровне отдельных файлов, восстановление всегда происходит в полном объеме настроек Timeshift.

Timeshift поддерживает 2 алгоритма резервного копирования - RSYNC и BTRFS.

#### Особенности режима RSYNC:
> `timeshift --create --rsync` или `timeshift --create`, т.к. дефолтно стоит режим RSYNC.
* снимки создаются путём копирования системных файлов при помощи rsync и создания жёстких ссылок на неизмененные файлы из предыдущего снимка;
* все файлы копируются при создании первого снимка. Последующие снимки являются инкрементальными. Неизменные файлы будут связаны с предыдущим снимком, если он доступен;
* создание первого снимка может занять до 10 минут;
* системный раздел может быть отформатирован в любой файловой системе. Резервный раздел может быть отформатирован в любой файловой системе Linux, поддерживающей жесткие ссылки. Сохранение снимков на несистемный или внешний диск позволяет восстановить систему, даже если системный диск повреждён;
* можно задать исключения для файлов и каталогов для экономии дискового пространства;
* систему необходимо перезагрузить после восстановления снимка.

#### Особенности режима BTRFS:
> `timeshift --create --btrfs` 
* снимки создаются с использованием встроенных средств файловой системы BTRFS;
* снимки создаются и восстанавливаются мгновенно (создание снимков — это атомарная транзакция на уровне файловой системы);
* снимки восстанавливаются путём замены системных подразделов. Поскольку файлы никогда не копируются, не удаляются и не перезаписываются, риск потери данных отсутствует. Существующая система сохраняется как новый снимок после восстановления;
* снимки сохраняются на том же диске, с которого они созданы (системном диске). Хранение на других дисках не поддерживается. Если системный диск выйдет из строя, снимки, хранящиеся на нём, будут потеряны вместе с системой;
* нет возможности исключать файлы и каталоги;
* размер снимков BTRFS изначально равен нулю. При изменении системных файлов, данные записываются в новые блоки данных, которые занимают дисковое пространство (копирование при записи). Файлы в снимке продолжают указывать на исходные блоки данных;
* ОС должна быть установлена на раздел BTRFS с разбивкой на подразделы @ и @home. Другие виды разделов не поддерживаются;
* снимки можно восстановить без немедленной перезагрузки запущенной системы.


#### Функции программы / синтаксис
```
timeshift --create [options] # создать снимок
timeshift --restore [options] # восстановить систему
timeshift --delete [options] # удалить снимок
timeshift --list [options] # вывести список снимков
```
```
Создание снимков:
    --create - создать снимок
    --commets "string" - добавить комментарий к создаваемому снимку
    --tags {O,B,H,D,W,M} - указать уровень снимка
        O - дефолтное значение
        B - при загрузке системы
        H - ежечасно
        D - ежедневно
        W - еженедельно
        M - ежемесячно
```
```
Восстановление:
    --restore - восстановить систему со снимка
    --clone - клонировать текущую систему
    --snapshot "name" - восстановить систему с указанного снимка
    --grub "device" - установить загрузчик GRUB2 на выбранное устройство
    --skip-grub - пропустить установку GRUB2
```
```
Удаление:
    --delete - удалить снимок
    --delete-all - удалить все снимки
```

---

## Резервирование файловой системы с помощью timeshift.

#### 1. Устанавливаем утилиту timeshift

`apt install timeshift`

![](https://i.imgur.com/DxwXVxg.png)

> Перед установкой следует обновить репозитории пакетного менеджера последовательным выполнением команд `sudo apt update` и `sudo apt upgrade`.

#### 2. Инициализируем создание снапшота файловой системы, расположенной на /dev/sda1

`timeshift --create --comments "First Backup" --tags D`

![](https://i.imgur.com/Wp6MApv.png)

#### 3. Запускаем режим восстановления для отката системы до сделанного снапшота.

`timeshift --restore`

![](https://i.imgur.com/BAYSmwF.png)

#### 4. Выбираем единственную запись снапшота.

`Enter snapshot number (a=Abort, p=Previous, n=Next): 0`

![](https://i.imgur.com/ctI0ebz.png)

#### 5. Переустанавливаем загрузчик на дефолтный раздел /dev/sda и ожидаем окончания работы программы.

`Re-install GRUB2 bootloader? (reccomended) (y/n): y`

![](https://i.imgur.com/8qNT9XJ.png)


![](https://i.imgur.com/LTDN0qD.png)


![](https://i.imgur.com/9htNaUK.png)


---

## Создание бэкапа c помощью timeshift и хранение на сетевом диске с помощью NFS.

### I) Установка и настройка NFS на сервере.

#### 1. Устанавливаем пакеты nfs-common и nfs-kernel-server.

`apt install nfs-kernel-server nfs-common -y`

![](https://i.imgur.com/v8KXqj4.png)

#### 2. Запускаем службу nfs-server и включаем её в автозагрузку.

`systemctl start nfs-server`
`systemctl enable nfs-server`

![](https://i.imgur.com/6zTNt4R.png)

#### 3. Создаем каталог /srv/nfs/share/.

`mkdir -p /srv/nfs/share/`

![](https://i.imgur.com/jmT7cxW.png)

#### 4. Открываем файл /etc/exports и дописываем строчку.

`nano /etc/exports`
`/srv/nfs/share/ 192.168.65.0/24(rw,no_root_squash)`
 
 ![](https://i.imgur.com/wKy3JUO.png)

#### 5. Перезапускаем службу nfs-server.

`systemctl restart nfs-server`

![](https://i.imgur.com/BrrLvvO.png)

---

### II) Установка и настройка NFS на клиенте.

#### 1. Устанавливаем пакет nfs-common.

`apt install nfs-common`

![](https://i.imgur.com/cV7MkFD.png)

#### 2. Создаем каталог /mnt/nfs/share/.

`mkdir -p /srv/nfs/share/`

![](https://i.imgur.com/KVd2QSv.png)

#### 3. Открываем файл `/etc/fstab` для автомонтирования раздела при загрузке системы.

`nano /etc/fstab`
`192.168.65.143:/srv/nfs/share/ /mnt/nfs/share/ nfs rw 0 1`

![](https://i.imgur.com/nWD8Lb7.png)

#### 4. Монтируем раздел к основной файловой системе.

`mount -a`

![](https://i.imgur.com/JzgIqLA.png)

---

### III) Создание бэкапа системы клиента и копирование бэкапа на сетевой диск.

#### 1. Установка утилиты timeshift.

`apt install timeshift -y`

![](https://i.imgur.com/KLTlSBW.png)

#### 2. Создание снимка с помощью timeshift.

`timeshift --create --rsync --comments "New Backup" --tags D`

![](https://i.imgur.com/0znoeLG.png)

#### 3. Копирование бэкапа на сетевой диск.

`cp -av /timeshift/ /mnt/nfs/share/`

![](https://i.imgur.com/6Jik4hV.png)

#### 4. Удаление бэкапа для проверки работоспособности хранения снимка на сетевом диске.

`rm -rf /timeshift/`

![](https://i.imgur.com/ICz9rc0.png)

---

### IV) Копирование снимка с сервера на клиент и восстановление системы с помощью timeshift.

#### 1. Копирование снимка с сетевого диска.

`cp -av /mnt/nfs/share/ /`

![](https://i.imgur.com/RwL5DcK.png)

#### 2. Восстановление системы с помощью timeshift.

`timeshift --restore`

![](https://i.imgur.com/WtMbvPX.png)

![](https://i.imgur.com/WTGdzLa.png)

![](https://i.imgur.com/R7jkYZh.png)


Вывод: в двнной практической работе в научились делать резервные копии файловых систем и реализовывать хранение на удаленном хранилище.