URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 4705
[ Назад ]

Исходное сообщение
"Как правильно бэкапить систему если один раздел?"

Отправлено s_alex , 25-Мрт-21 14:25 
Добрый день.

На домашнем компьютере стоит Ubuntu и жесткий диск разбит на 3 раздела: swap, корневой и home. Для того чтобы бэкапить систему я при помощи CloneZilla записываю образ корневого раздела, а также копирую настройки программ из home, архивирую архиватором и кладу рядом с образом. Я пока новичек, изучаю систему и много эксперементирую с разными настройками. Если что-то происходит с системой не то, то я откатываю обратно образ корневого диска и копирую обратно настройки в home. При такой последовательности действий все мои документы, которые лежат в home, остаются в целостности и сохранности.

Теперь решил также поставить систему на ноут. Посколько там SSD небольшого размера, решил не разбивать на разделы и поставил все в один раздел. Как теперь правильно все это бэкапить? если я сделаю образ CloneZilla и восстановлю его потом, то пропадут документы в home.

Достаточно ли просто скопировать все файлы из раздела кроме папки home и настройки из home и обратно все скопировать? Будет ли система восстановлена при этом к первоначальному варианту? или нужно что-то еще сохранять (какие-то загрузочные данные и т.д.)?

Хотелось бы все это как-то автоматизировать. Можно ли как-то настроить Clonezilla чтобы он делал образ и потом восстанавливал все и не трогал при это документы или быть может есть еще какие-либо программы есть более удобные для данных целей?

Подскажите пожалуйста как делать бэкапы системы наиболее эффективно.


Содержание

Сообщения в этом обсуждении
"Как правильно бэкапить систему если один раздел?"
Отправлено universite , 25-Мрт-21 15:28 

> Хотелось бы все это как-то автоматизировать. Можно ли как-то настроить Clonezilla чтобы
> он делал образ и потом восстанавливал все и не трогал при
> это документы или быть может есть еще какие-либо программы есть более
> удобные для данных целей?

Clonezilla умеет бэкапить полностью весь диск, особенно, когда SSD маленького раздела.


"Как правильно бэкапить систему если один раздел?"
Отправлено s_alex , 25-Мрт-21 16:31 
> Clonezilla умеет бэкапить полностью весь диск, особенно, когда SSD маленького раздела.

Это понятно. Но в таком случае надо будет сначало перенести кудато свои файлы из документов, потом вернуть бэкап из образа, а потом файлы обратно скопировать. А можно ли это все автоматизировать? Или как-то настроить Clonezilla чтобы документы он не трогал при восстановлении из образа и они остались на месте?



"Как правильно бэкапить систему если один раздел?"
Отправлено And , 25-Мрт-21 18:50 
Разбить задачу на две части: бекап жёсткого диска на уровне блочного устройства - это CloneZilla и бэкап на уровне файлов - это BackInTime, Timeshift, Unison.

Для восстановления тоже будет два взаимодополняющих ворфлоу - на уровне блочного устройства с уничтожением прежней инфы и с накатыванием файлового бекапа поверх.

CloneZilla не предназначена для работы на уровне файлов, она для другого.


"Как правильно бэкапить систему если один раздел?"
Отправлено And , 25-Мрт-21 18:45 
Для экспериментов изучите Vagrant или/и Virtualbox CLI и отдельно Ansible:
https://www.vagrantup.com/
https://www.oracle.com/technical-resources/articles/it-infra...
https://www.ansible.com/

Экономит кучу сил при разворачивании лабораторных работ для опытов. Если понравится, то это м.б. профессия. Vagrant&Ansible - стандарт.

Возможен такой подход:

Back In Time - домашние папки и часть системных. И графический интерфейс и из ком.строки работает тоже. Можно скриптовать и можно в графике мышекликать. Видел в настройках поддержку SSH. Умеет шифровать бэкап.
Rsync и свой скрипт - системные директории и кэш пакетов пакетного менеджера.

Восстанавливать так:

Систему - установка с флешки, и накат всех пакетов бэкапленного кэша пакетов пакетного менеджера (это даст установленный Back In Time).
Домашние папки, системные папки - востанавливать из Back In Time.

Дальше комбинировать и скриптовать. Важно понимать, что бекап не является бекапом в момент его обновления или работы с ним. Т.е. по уму должно быть не менее двух независимых носителей бэкапа, и одновременно оба никогда не подключаются к системе, не участвуют одновременно в действиях. Ошибки, скачки напряжения и т.п. Есть важный принцип: система сама себя не бекапит, бекап всегда приходит снаружи сам. Принцип дома трудно соблюдаемый, принцип из коммерческих окружений, но это важный момент.

Есть настроенный из коробки Timeshift в составе Linux Mint (по смыслу и наполнению этот дистрибутив - Убунту без Snap). В т.ч. бекапит систему. Если дистрибутив подходит, то можно взять их готовую работу. В дистрибутиве есть шероховатости в настройках графического окружения, но не влияет на собственную, пользователя полезную работу.

Есть файлы устройств. Например, /dev/* Есть файловые системы ядра в /proc и т.д. Их не бэкапят. Это сложность при скриптовании. Есть тема шифрования. Сильно всё усложняет.

Простой способ: можно оценить настройки Back In Time из коробки, подрихтовать исключения, направить Back In Time на корень ФС. Запускать по крон из ком.строки. В момент бекапа выкачивать в кеш установленные руками пакеты (список пакетов можно получать из логов и статусов пакетов у Apt, например; это вопрос скриптования, весь кеш за всю историю хранить можно, но это немало). Иметь две системных флешки с дистрибутивом актульной версии для установки с нуля.

Есть инструмент Unison. Интересная штука. Можно оценить в качестве дополнения к остальному, для домашних папок.

Но, советую, посмотреть в сторону Vagrant&Ansible. Это правильный способ "проверять настройки".


"Как правильно бэкапить систему если один раздел?"
Отправлено And , 25-Мрт-21 18:54 
Есть совсем простой способ для экспериментов: VirtualBox + его встроенные возможности снэпшотов виртуалки. Но не обеспечит защиты от ошибки применения на конечной системе.

Есть нюанс: для разворачивания снепшота нужно свободного места вплоть до полного размера восстанавляваемой ВМ. Не обязательно, но в пределе именно так можно попасть в ловушку с отсутвием свободного места. Вагрант с Ансибл удобнее для таких целей.


"Как правильно бэкапить систему если один раздел?"
Отправлено And , 25-Мрт-21 18:57 
Ещё есть нюанс. Дешёвые или старые SSD могут изнашиваться неприятно быстрее, если за раз весь диск перезаписывать.

"Как правильно бэкапить систему если один раздел?"
Отправлено Аноним , 29-Мрт-21 13:32 
Скрипты.

Бекапить надо разделы в режиме только для чтения

dd делает бекап целого раздела

В Unix критически важны атрибуты файлов! При бекапе должны корректно восстанавливается все атрибуты файлов!!!

sync

cp -u -R --preserve=all ...

rsync -p -E -A -X -o -g ...

tar --acls --xattr --same-owner ...

Как быть с разделом в режиме записи?

Если база данных, то надо использовать ее родные инструменты для бекапе.


"Как правильно бэкапить систему если один раздел?"
Отправлено Field Name , 07-Апр-21 14:31 
> Как быть с разделом в режиме записи?

LVM snapshot решает вопрос. Но это может быть слишком сложно для домашних применений. Создать снэпшот, забекапить снэпшот, удалить снэпшот. Нужно свободное место на время бекапа, по объёму большее или равное равное объёму инфы на накопителе, который поменяется за время бекапа. Нужно ли в двойне - надо проверять. Бывают системы и реализации, когда для удаления снепшота нужно свободного места в по размеру снэпа (но, вроде, это не про LVM).


"Как правильно бэкапить систему если один раздел?"
Отправлено backitnow , 17-Май-21 20:09 
> Добрый день.
> На домашнем компьютере стоит Ubuntu и жесткий диск разбит на 3 раздела
> Подскажите пожалуйста как делать бэкапы системы наиболее эффективно.

Удобна для этого ф.сист. btrfs - лёгкая, делает снапшот за доли секунды, а его уже хоть копируешь, хоть сжимаешь (к примеру pbzip2) куда хочешь (можешь и гуишками пользоваться).

Пусть sda1 - раздел системы с btrfs, а там 2 подтома - корень и home:
/dev/sda1 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=256,subvol=/@)
/dev/sda1 on /home type btrfs (rw,relatime,ssd,space_cache,subvolid=257,subvol=/@home)

btrfs su cre /.snapshots ---- это создание подтома для снимков ФС

--- начало --- прототип скрипта, который сделает снимки корня и хома
#!/bin/bash

SNAPNAMEROOT='snap-u2004-root'
SNAPNAMEHOME='snap-u2004-home'
DATENOW=`date +%F_%Hh%Mm%Ss`

echo 'Какие есть снимки в "/.snapshots":'
btrfs sub list /.snapshots

echo 'Удаляем их...'
btrfs sub del --commit-after /.snapshots/${SNAPNAMEROOT}_*
btrfs sub del --commit-after /.snapshots/${SNAPNAMEHOME}_*

echo 'Создаём новые снимки подтомов...'
btrfs sub snap -r / /.snapshots/${SNAPNAMEROOT}_${DATENOW}
btrfs sub snap -r /home /.snapshots/${SNAPNAMEHOME}_${DATENOW}
# с -r снимки создаются только с флагом "только для чтения",
# теперь их можно пересылать командой 'send', если надо

echo 'Синхронизация, если хочешь...'
btrfs filesystem sync
echo 'Done!'

------ end

#############################
# Снять запрет записи со снимка так:
#btrfs prop set /mnt/new/root/@ ro false
#############################

А можно теперь пожать снимок в архив:

########################################################################################
SNAPSH="/snap-c7root"
DESTDIR="/mnt/SAMSA"
echo "Start compress $SNAPSH at: $DATEIS" > time.txt
btrfs send /.snapshots/$SNAPSH | pbzip2 --fast -vc > "$DESTDIR"/"$SNAPSH.btrfs.pbz2"
echo "Stop compress $SNAPSH at: `date +%F_%Hh%Mm%Ss`" >> time.txt
########################################################################################

или переслать к черту на кулички:
btrfs send /.snapshots/snap-c7root | btrfs receive /run/media/vasya/C7R128

Короче, хорошая ФС - всё быстро бекапится, не замораживает систему, пакуется параллельно на всех ядрах и т.д.