我想在/
升级操作系统之前将 root 中的所有内容复制到我的外部硬盘上,这样我就可以拥有所有内容,以防万一出现问题。以下是最合适的命令吗?
username@machine:/$ sudo cp -r . /media/username/TOSHIBA\ EXT/root_copy/
我想在/
升级操作系统之前将 root 中的所有内容复制到我的外部硬盘上,这样我就可以拥有所有内容,以防万一出现问题。以下是最合适的命令吗?
username@machine:/$ sudo cp -r . /media/username/TOSHIBA\ EXT/root_copy/
补充一下PP所说的,你真的不想复制每个目录。我
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
我知道它看起来很多,但 tar 将在
/media/username/TOSHIBA\ /EXT/root_copy/
. 文件名为root-copy.tar.gz
. 它将排除我提到的每个目录,--exclude
最后它将转储在名为/root/tar-errors.txt
.以这种方式使用 tar 的另一个好处是备份文件将是“压缩的 tarball”。它本质上是一个压缩存档,因此您将节省外部驱动器上的空间。
我确信有更简单的方法可以做到这一点,但我一直使用这种方法来备份我的系统。
是的,如果您想复制 下的所有内容
/
,那么您可以执行以下操作:但是,在继续之前......你需要知道你真的不想复制下面的所有内容
/
:)您通常只需要复制您的数据;不是所有的操作系统二进制文件、已安装的应用程序、配置文件等。这就是 about 命令的作用。
如果操作系统升级失败,那么“复制”所有内容并不容易。如果您有数据,您可以简单地重新安装操作系统并从外部磁盘/媒体复制回数据。
此外,如果您设置了其他分区而不是安装了操作系统的分区并将数据保存在那里,那么您可能根本不需要从外部复制。您可以将数据保存在单独的分区中。如果操作系统重新安装出现问题,您只需擦除该分区并重新安装操作系统,而无需触摸保存数据的其他分区。
考虑对磁盘进行映像,而不是仅制作文件的副本。在升级过程中,不仅仅是文件可能会被弄乱:EFI 系统分区、引导扇区等。
我推荐Clonezilla。它用户友好且可靠。他们有自己的专用启动盘。一些救援磁盘也提供它(例如 GRML),您可以将它安装在 Ubuntu Live CD 上。
Clonezilla 映像不可浏览,但可用于轻松将整个磁盘恢复到以前的状态。
有些人可能会建议使用
dd
来创建原始图像。这也是一种有效的方法,生成的文件可以浏览,但它们会占用与整个分区大小一样多的空间。同时 Clonezillapartclone
在后台使用,它只复制实际使用的磁盘空间而忽略空闲空间,不像dd
. 默认情况下,Clonezilla 也会压缩图像。rsync 是比 tar 或 cp 更好的 IMO
如果你有你的 sshkeys 设置,并且要去另一个系统: nohup rsync-r /* user@destination:/ARCHIVE_DESTINATION
else rsync -r /* user@destination:/ARCHIVE_DESTINATION
如果本地 rsync -r /* /mnt/ARCHIVE_DESTINATION
cp
我发现将根设备安装在另一条路径上然后使用(甚至更好)要容易得多rsync
。这样我就不必担心排除/dev/disk
,/run
等/proc
。例如:
在我的例子中,第一行创建了以下环境变量:
这些用于再次挂载根设备
/mnt
。或者,您可以使用sudo mount --bind / /mnt
(我不确定这两种解决方案之间是否存在差异)。正如其他人所指出的那样,有些事情
/
您可能不需要备份,因此无论如何排除它们是有意义的。当您想要复制分区中的所有内容时,我的解决方案很有用,因此您原则上甚至可以从外部设备启动(假设efi
,boot
等也在启动时被复制/找到某处)。