我需要将所有硬盘上的所有分区复制到外部硬盘上。
最好以一种以后可以使用文件的方式来执行此操作,即不在单个图像文件等中。
如何使用终端命令来实现这一点?
答案1
您可以使用:
cd /
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
解释:
c
- 创建一个新的备份存档。
v
- 详细模式,tar 会将其正在执行的操作打印到屏幕上。
p
- 保留存档中文件的权限,以便稍后恢复。
z
- 使用“gzip”压缩备份文件以使其更小。
f
- 指定存储备份的位置。
--exclude=/example/path
- 此模型后面的选项指示 tar 不要备份哪些目录。我们不想备份所有内容,因为有些目录包含起来并不多用。第一个排除规则指示 tar 不要备份自身,这对于避免操作过程中出现错误很重要。
--one-file-system
- 不要包含不同文件系统上的文件。
如果您想要备份其他文件系统(比如分区/home
或安装在 中的外部媒体)/media
,您要么需要单独备份它们,要么忽略此标志。如果您忽略了此标志,则需要添加更多--exclude=
参数以避免使用您不想要的文件系统。这些将是/proc
、/sy
s、、/mnt
和/media
根目录中的目录。/run
和是虚拟文件系统,它们提供查看正在运行的内核的变量的窗口,因此您不想尝试备份或恢复它们。是一个,其内容由 动态创建和删除,因此您也不想备份或恢复它。同样,是一个,它保存了有关正在运行的系统且不需要备份的变量。/dev
/proc
/sys
/dev
tmpfs
udev
/run
tmpfs