我如何使用 tar 对 SSD 上的系统和 HDD 上的主页进行完整备份和恢复?

我如何使用 tar 对 SSD 上的系统和 HDD 上的主页进行完整备份和恢复?

我如何使用 tar 对 SSD 上的系统和 HDD 上的主页进行完整备份和恢复?

现有的备份和恢复答案似乎没有涵盖 root 和 home 位于不同设备的情况

答案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=...从第一个命令中删除。

  • backup.tar.gz 是备份。
  • --exclude将阻止实际备份的进行。
  • cvpzf:创建、详细、保留权限、压缩、使用文件。

  • --一个文件系统- 不要包含不同文件系统上的文件。如果您想要备份其他文件系统(例如 /home 分区或安装在 /media 中的外部媒体),则需要单独备份它们,或者忽略此标志。如果您忽略了此标志,则需要添加更多 --exclude= 参数以避免您不想要的文件系统。这些将是根目录中的 /proc、/sys、/mnt、/media、/run 和 /dev 目录。/proc 和 /sys 是虚拟文件系统,它们提供了查看正在运行的内核变量的窗口,因此您不需要尝试备份或恢复它们。/dev 是一个 tmpfs,其内容由 udev 动态创建和删除,因此您也不需要备份或恢复它。同样,/run 是一个 tmpfs,它保存了有关正在运行的系统且不需要备份的变量(来源)。


所以...如果你真的仍然想要一个“单行”,它可能看起来像这样:

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 所有)。

相关内容