LINUX.ORG.RU

Бэкап корня на другой раздел

 , , ,


0

2

Всем привет! Задача: сделать копию системы на другой раздел (sda1).

lsblk                                                                                                                                                                                                                                       NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0 931,5G  0 disk 
├─sda1        8:1    0    10G  0 part 
├─sda2        8:2    0   920G  0 part /home/Al/data
└─sda3        8:3    0   1,5G  0 part /boot
nvme0n1     259:0    0 119,2G  0 disk 
└─nvme0n1p1 259:1    0 119,2G  0 part /

df -h /                                                                                                                                                                                                                                     
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/nvme0n1p1     117G         8,7G  103G            8% /

Сделал

mount / /mnt/root -o bind
mount /dev/sda1 /mnt/sda1
rsync -ax --info=progress2 --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/root/ /mnt/sda1
Rsync выдал ошибку, что места нет, начал разбираться, оказалось rsync обработал симлинки файлами (по ману опция -L), хотя у меня опция -a = -l, т.е. обрабатывать симлинки симлинками. Нагулил такую инфу, согласно которой rsync не умеет в симлинки https://www.baeldung.com/linux/rsync-copy-symlinks. Сделал
cp -a /mnt/root/* /mnt/sda1
Всё поместилось, но в следующий раз получается необходимо будет сделать
rm -rf /mnt/sda1/*
cp -a /mnt/root/* /mnt/sda1
Что мне кажется какой-то хренью. Научите делать правильный бэкап системы. До этого делал бэкапы tar-ом в файл, но сейчас изменилась вводная и я решил, что tar -C /mnt/root -cf - . | tar -C /mnt/sda1 -xvf - так себе идея и опять же нужен формат sda1 перед запуском.

★★★★

Вы определитесь, делаете ли вы бекап системы или файлов в /home.

Для обеих этих бекапов требуется различная периодичность, степень доступности.

Я для системы использую tar, а для файлов cp -a или cp -an, в зависимости от ситуации.

forest22
()

То что ты делаешь это не бекап а отстающее зеркало. У бекапа должно храниться несколько версий с некоторым интервалом (как минимум две - представь ситуацию что ты по ошибке что-то испортил за 5 минут до «бекапа» и понял это только после того как бекап уже сделался).

rsync -a нормально копирует симлинки и по твоей ссылке об этом тоже написано, но поскольку её автор то ли нуб, то ли пишет для нубов - то там куча запутывающей воды

Вместо списка exclude из всяких /dev /sys лучше напиши правильный список того что надо копировать.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Научите делать правильный бэкап системы

я в LiveCD своего дистра загружаюсь, монтирую через строку и под root корень, захожу в него, а дальше tar… что-то вида

tar --exclude='lost+found' --one-file-system -pvcJ
NK ★★★★★
()

таким же образом переносил систему с диска на диск уже несколько обновлений ноутбука симлинки обрабатываются правильно либо у тебя не правильный rsync либо ты что-то делаешь не так

anonymous
()
Ответ на: комментарий от Allakka

Бекап системы в 99% случаях делается скриптом и в этом случае никого не волнует сколько раз запускается rsync/tar.

Разделы (смонтированные ФС) бекапятся раздельно.

у rsync/tar копирование в пределах одной файловой системы легко реализуется опцией --one-file-system

В твоём случае делается 3 бекапа: / /home/Al/data /boot

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

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от Allakka

Термин тут - зеркало (mirror). А отстающее это его характеристика, не особо значимая (то что зеркалируется оно с запозданием). Бекап от зеркала отличается тем что он не перетирается каждый раз новыми данными. Ты легко можешь затереть свой «бекап»-зеркало испорченными данными, если вовремя не заметишь проблему. А с нормальным бекапом (хранить минимум две копии) шансы на это сильно снижаются.

firkax ★★★★★
()

Использую tar cvp --exclude-backups --one-file-system, ну и дальше куча --exclude=/lost+found, в конце /, и всё конвейром скармливаю архиватору.

Причём вполне себе работает на живой системе.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)