Вступление
Итак, я решил себе сделать отказоустойчивый домашний сервер, где одно из условий его существования будет автоматическое резервное копирование диска с системой (SSD) на другой диск-бэкап (HDD).
Что я хочу?
Ситуация которую я себе представляю, и которую я сэмулировал на виртуальной машине:
- сохранить или дождаться резервной копии диска с ОС на второй диск-бэкап
- заменить диск с ОС на пустой диск (якобы диск с ОС сломался)
- восстановить всю систему из резервной копии с диска-бэкапа на новенький пустой диск под систему
Что для этого надо?
Для реализации этого в реальной жизни нам понадобится:
- разумеется 2 диска
- установочная флешка с той системой, что стоит на диске с ОС
- Timeshift + возможность его установить на систему, которую мы установим с этой установочной флешки
Как архивировать систему?
Устанавливаем Timeshift. Установить можно с помощью команд
su-
apt-get update
apt-get install timeshift
или с помощью менеджера пакетов Synaptic (что я и выбрал).
Открываем его и обязательно выбираем RSYNC! (BTRFS не может делать резервные копии на другой диск). Также выбираем куда пойдёт бэкап (на какой диск).
Далее настройка расписания (как хотите) и архивировать ли домашние папки (думаю разберётесь).
Потом просто нажимаем создать в верхнем левом углу главного окна программы и бэкап начнёт создаваться!)
Что делаем дальше?
И вот предположим, что вы уже у разбитого диска с пропавшей операционной системой. Но у нас же есть резервная копия на другом диске! Как же её развернуть на новом, работающем диске? Поможет немножко гемороя и прямых ручек)
Этапы восстановления системы:
Этап 1 - установка системы с загрузочной флешки
Для начала нам нужно установить систему заново с загрузочной флешки. Если есть выбор что предустановить при установке, то нам нужен только графическое окружение и Timeshift.
В моём случае я эмулировал восстановление АЛЬТ Сервер.
Не забудьте в выборе дисков убрать галочки с ненужных, а оставить только под систему, чтобы не затереть случайно резервную копию!
Далее я использую разбиение диска по умолчанию, т.к. ранее так же устанавливал ОС на диск, который у нас предположительно сломан. Тут обратите внимание, что размеры разделов должны быть точно такие же как и были на старой системе! Потом после установки их можно будет расширить и делать всякое, но я не пробовал XD
Далее надо выбрать минимальную конфигурацию системы (доп софт), чтобы долго не ждать установки. Я просто выбрал графическое окружение MATE (Xorg выбрался сам после MATE).
Далее очень важный пункт - настроить учётные записи и имя ПК как было на прошлой системе! (что будет, если сделать других пользователей - я не проверял, но в процессе познания Timeshift я выбирал всегда новое имя ПК и у меня всё шло по пиз..., но скорее всего это было из-за другого)
Далее завершаем установку
Этап 2 - установка Timeshift
После установки нам надо установить Timeshift, т.к. в моём случае с АЛЬТ Сервер, он не установлен по умолчанию. После установки запускаем его из меню пуска.
При открытии Timeshift так же как и при создании резервной копии выбираем RSYNC, и тот же диск, а остальные настройки как хотите, они должны сохраниться при восстановлении и будут тоже делать резервные копии по параметрам.
Далее мы видим все резервные копии, которые у нас есть. В моём случае мне нужна последняя, где я архивировал всю систему (полная копия). Выбираем её и нажимаем "обзор". Откроется проводник, выйдите на раздел выше. Далее мы будем делать манипуляции с файлами в следующем этапе.
Этап 3 - геморой с UUID
Наша цель изменить UUID дисков в бэкапе на те, что сейчас в системе. Для этого нам надо отредактировать 3 файла. Вот их пути, и какие диски мы должны там указать, в моём случае на АЛЬТ Сервер:
- бэкап(дата)/info.json - раздел "/"
- бэкап(дата)/localhost/etc/fstab - все разделы на системном диске
- бэкап(дата)/localhost/etc/default/grub - раздел подкачки
info.json
Надо изменить uuid в строке "sys-uuid" на uuid раздела с корнем системы ("/").
Для того чтобы взять этот новый uuid запустите Gparted (тоже можно в пуске найти) и там выберите обязательно нужный диск и нужный раздел, зайдите в его свойства и uuid там будет написан.
/etc/fstab
Этот файл отвечает за автоматическое монтирование дисков при загрузке системы. Там тоже надо указать новые uuid дисков, чтобы система поняла с что делать.
UUID разделов так же можно посмотреть в Gparted. Какой диск куда можно посмотреть по пути монтирования, на скрине отмечу.
/etc/default/grub
Это сам загрузчик, в котором нам надо только указать swap (подкачку). Находится она в пункте "GRUB_CMDLINE_TIMEOUT_DEFAULT", но всё равно просто ищите в файле строку с uuid, и что выпадет - там и меняйте старый код на новый.
Этап 4 - восстановление
Для восстановления выберите бэкап над которым производились действия и нажмите восстановить. Потом всплывёт окно, где надо указать где находится раздел "/" (в моём случае это sda3). Посмотреть где этот раздел можно так же в Gparted. (другие настройки лучше не трогать, а оставить по умолчанию, т.к. получается залупа - мой опыт).
Ну всё, теперь просто нажимаем далее, дожидаемся промежуточного окна о статусе замены файлов, потом снова далее и ждём восстановления!
Особенности
В моём случае не восстановились избранные в меню пуск и настройки браузера. Не знаю почему так, но все службы и установленные библиотеки с софтом (насколько я смог это проверить, потому что установил всего лишь пару софтин и библиотек для проверки) восстановились))
Заключение
Таким образом я разобрался как можно сделать авто бэкап по расписанию, а потом развернуть его на новом диске))