在root"/"中,要复制到外部存储卷,有没有适当的命令可以复制所有内容?

分享于 

3分钟阅读

ubuntu

  繁體

问题:

在升级操作系统之前,我想将/中的所有内容复制到外部硬盘上,以防出错,以下命令可以吗?


username@machine:/$ sudo cp -r . /media/username/TOSHIBA EXT/root_copy/




答案1:

我使用tar来备份需要的所有内容,"排除"我不需要的目录,运行 tar (options) BACKUP-FILENAME TARGET

sudo tar -cvpzf /media/username/TOSHIBA EXT/root_copy/root-copy.tar.gz --exclude='/mnt' --exclude='/run' --exclude='/proc' --exclude='/sys' --exclude='/media' --exclude='/dev' --exclude='/lost+found' --exclude='/tmp' --exclude='/boot' --exclude=".*lost+found" / 2> /root/tar-errors.txt

/media/username/TOSHIBA /EXT/root_copy/ 文件名为root-copy.tar.gz,它排除我在--exclude中提到的每个目录,最后,它转储/root/tar-errors.txt文件中发生的错误。

使用tar的另一个好处是,备份文件是一个"压缩文档"。


答案2:

是的,如果想复制/下的所有内容,那么你可以执行以下操作:


sudo cp -r / media/username/TOSHIBA EXT/root_copy/



通常只需要复制数据;并非所有的OS二进制文件,已安装的应用程序,配置文件,等等。


答案3

考虑对磁盘进行成像,而不是只制作文件的副本,还有EFI系统分区,引导扇区等等。

我建议使用Clonezilla,它对用户友好,可靠。

Clonezilla镜像不可浏览,但可用于将整个磁盘轻松恢复到以前的条件。

有些人建议使用dd创建原始图像,它也是一个有效的方法,文件是可浏览的,但是它们会占用与整个分区大小相同的空间,Clonezilla还会默认压缩图像。


答案4

rsync比tar或cp更好。

nohup rsync-r /* user@destination :/ARCHIVE_DESTINATION 

或者

 rsync -r /* user@destination :/ARCHIVE_DESTINATION 

如果是本地

rsync -r /* /mnt/ARCHIVE_DESTINATION 

答案5

我发现将root设备挂载到另一个路径上更容易,然后使用cp (或者更好的rsync ),


 eval $(findmnt --pairs --target /)


 sudo mount -t ${FSTYPE} --options ${OPTIONS} --source ${SOURCE} --target /mnt/


 sudo cp -r /mnt/ /media/username/TOSHIBA EXT/root_copy/




 TARGET="/" SOURCE="/dev/sda8" FSTYPE="ext4" OPTIONS="rw,noatime,errors=remount-ro"



这些用于再次挂载root设备在/mnt,或者,你可以使用 sudo mount --bind / /mnt 我不确定这两个解决方案之间是否存在差异)。


COM  ext  COMM  存储  cop  roo