Как бы я использовал tar для полного резервного копирования и восстановления с системой на SSD и дома на HDD?
Как бы я использовал tar для полного резервного копирования и восстановления с системой на SSD и дома на HDD?
Существующие ответы по резервному копированию и восстановлению, по-видимому, не охватывают случай, когда root и home находятся на разных устройствах.
1 ответ
Рекомендуется сделать ДВА резервных копии. 1 для / и 1 для / home, если они находятся в другом разделе. Если вы хотите, вам нужно добавить много исключений для этой команды. Пример:
sudo su
cd /
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
tar -cvpzf backuphome.tar.gz --one-file-system /home/
создаст резервную копию вашего корневого каталога и исключит ВСЕ смонтированные разделы, например /media (вы не хотите делать резервные копии внешних устройств (вы действительно этого не делаете)), и вы абсолютно НЕ хотите создавать резервные копии чего-то вроде / dev или / proc. И / home переходит в другую резервную копию.
В вышеупомянутом методе резервная копия хранится в /. Лучше хранить его на внешнем носителе; Затем вы можете поместить каталог перед backup.tar.gz и удалить --exclude=...
из 1-й команды.
- backup.tar.gz это резервная копия.
--exclude
предотвратит резервное копирование фактической резервной копии.cvpzf: создавать, подробно, сохранять разрешения, сжимать, использовать файл.
--one-file-system - не включать файлы в другую файловую систему. Если вы хотите, чтобы другие файловые системы, такие как раздел / home, или внешний носитель, подключенный в / media, были зарезервированы, вам нужно либо создать их резервную копию отдельно, либо пропустить этот флаг. Если вы пропустите этот флаг, вам нужно будет добавить еще несколько аргументов --exclude=, чтобы избежать ненужных файловых систем. Это будут каталоги / proc, / sys, / mnt, / media, / run и / dev в корневом каталоге. / proc и / sys - это виртуальные файловые системы, которые предоставляют окна в переменные работающего ядра, поэтому вы не хотите создавать резервные копии или восстанавливать их. / dev - это tmpfs, содержимое которого динамически создается и удаляется с помощью udev, поэтому вы также не хотите создавать резервные копии или восстанавливать его. Аналогично, / run - это tmpfs, который содержит переменные в работающей системе, резервное копирование которых не требуется ( Source).
Так что... если вы действительно хотите "однострочник", это может выглядеть так:
cd /
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc
--exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys /
(Надеюсь, я получил все, что нужно исключить)
Восстановление будет
sudo su
cd /
tar xvzf backup.tar.gz
Я не пользовалась sudo
перед командой tar, так как вы получите сообщения об ошибках относительно прав доступа (из-за файлов, принадлежащих пользователю root).