我如何使用tar进行完全备份,并使用SSD上的系统和硬盘上的主机进行恢复?

我如何使用tar进行完全备份,并使用SSD上的系统和硬盘上的主机进行恢复?

现有的备份和恢复答案似乎不包括root和home位于不同设备上的情况

建议进行两次备份。 对于/ home,如果它们位于不同的分区上,则为1和/ 1。 如果你想要一个,你将不得不为这一个命令添加很多例外。 例:

 sudo su cd / tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system / tar -cvpzf backuphome.tar.gz --one-file-system /home/ 

将备份你的root并排除所有挂载的分区,比如/ media(你不想备份外部设备(你真的没有)),你绝对不想备份像/ dev或/ proc这样的东西。 / home转到另一个备份。

在上面的方法中,备份存储在/中。 将它存储在外部媒体上是更好的选择; 然后,您可以将目录放在backup.tar.gz前面,并从第1个命令中删除--exclude=...

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

  • –one-file-system – 不要在不同的文件系统上包含文件。 如果您希望其他文件系统(例如/ home分区或安装在/ media备份中的外部介质),您需要单独备份它们,或省略此标志。 如果省略此标志,则需要添加几个–exclude =参数以避免您不想要的文件系统。 这些将是root中的/ 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 

我没有在tar命令前面使用sudo ,因为你会收到有关权限的错误消息(因为root拥有的文件)。