Timeshift и rsync

Отличная программа для создания backup-ов и восстановления системы: Timeshift. Данная утилита создает мгновенны снимки btrfs, а со стандартами ext работает через rsync. Установка: yay -S timeshift.

Интерфейс очень простой, главное правильно настроить исключения. Это нужно для того, чтобы вы не дампили большие и не нужные каталоги вашей системы, т.к. это экономит время и место на диске, а работоспособность сохраняется. В пример могу привести каталог virtualbox, мне например он в копии системы не нужен, в том числе и смонтированный диск /home/st/files, думаю вы поняли.

Вот мой список правил. Важно, правила исключений должны быть выше домашней директории, измените путем перетаскивания. Timeshift exclude

Существует и консольный вариант timeshift, вы можите сделать chroot вашу систему, смонтировать разделы и откатить версию. В help есть примеры, все просто. timeshift -h

Rsync, привет консоль :)

Terminal

Монтируем раздел для резервной копии, предварительно создайте каталог. mount /dev/sdb1 /dump

Копируем / в /dump с исключением, но с созданием нужных директорий.

1
rsync -aAXv --delete --delete-excluded --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/var/lib/pacman/sync/*","/var/cache/*","/var/tmp/*","/boot/*","/home/*"} /* /dump/

Скопировать систему полностью.

1
rsync -aAXv --delete --delete-excluded --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/var/lib/pacman/sync/*","/var/cache/*","/var/tmp/*"} /* /dump/
1
rsync -aAXv --delete --delete-excluded --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/var/lib/pacman/sync/*","/var/cache/*","/var/tmp/*","/home/*/.thumbnails/*","/home/*/.cache/*","/home/*/.local","/home/*/.gvfs/*","/home/*/files/*","/home/*/.var","/home/*/.npm","/home/*/.node-gyp","/home/*/.electron"} /* /run/media/st/dump/myarch/

Стоит заметить и исключить из /home, как пример ниже.

1
--exclude={"/home/*/.thumbnails/*","/home/*/.cache/mozilla/*","/home/*/.local/share/Trash/*","/home/*/.gvfs/*"}
1
rsync -aAXv --delete --delete-excluded --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/var/lib/pacman/sync/*","/var/cache/*","/var/tmp/*","/home/*/.thumbnails/*","/home/*/.cache/mozilla/*","/home/*/.local/share/Trash/*","/home/*/.gvfs/*"} /* /dump/

Исключите каталоги в которых смонтированы диски/разделы, если нужно. /home/st/files

Далее создаем архив.

1
2
cd /dump
tar -caf "/mnt/myarch.tar.xz" /dump/*

Или gz он быстрее.

1
2
3
cd /dump
tar -caf "/mnt/myarch.tar" /dump/*
gzip -9 "/mnt/myarch.tar"

Форматируем нужные разделы, с помощью gparted или руками.

1
2
3
4
mkfs.ext4 -L "root" /dev/sda5
mkfs.ext2 -L "boot" /dev/sda2
mkfs.ext4 -L "home" /dev/sda7
mkswap /dev/sda3

Загружаемся с live usb(или из этой системы), монтируем раздел root(dev/sda5), boot и др., если нужно.

1
2
3
4
5
6
7
mount /dev/sda5 /mnt
mount /dev/sda2 /mnt/boot
mount /dev/sda7 /mnt/home
swapon /dev/sda3
Создаем каталог и Монтируем раздел с архивом резервной копии.
mkdir /mnt/dump
mount /dev/sdb1 /mnt/dump

Переходим на смонтированный диск(куда восстанавливаем), распаковываем архив.

1
2
3
4
cd /mnt
tar xvJf /mnt/dump/myarch.tar.xz -С /mnt
или
tar xvzf /mnt/dump/myarch.tar.gz -С /mnt

Делаем chroot в новую систему.

1
arch-chroot /mnt /bin/zsh

или

1
chroot /mnt /bin/bash Debian подобных

Редактируем если нужно /etc/fstab, /etc/mkinitcpio.conf, создаем initramfs-образы.

1
2
mv /mnt/etc/fstab /mnt/etc/fstab.bak
genfstab -pU /mnt > /mnt/etc/fstab
1
mkinitcpio -p linux

Настройка ключей pacman.

1
2
pacman-key --init
pacman-key --populate archlinux

Обновляем меню загрузчика груб, os-prober(для поиска других ОС).

1
2
3
pacman -S os-prober
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

Выходим из chroot, размонтируем разделы и перезагружаемся уже в восстановленную систему!

1
2
3
4
5
6
umount /mnt/boot
umount /mnt/home
umount /mnt/dump
rmdir /mnt/dump
umount /mnt
reboot