AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1257497
Accepted
scribe
scribe
Asked: 2020-07-09 14:36:13 +0800 CST2020-07-09 14:36:13 +0800 CST 2020-07-09 14:36:13 +0800 CST

将根“/”中的所有内容复制到外部存储卷的适当命令?

  • 772

我想在/升级操作系统之前将 root 中的所有内容复制到我的外部硬盘上,这样我就可以拥有所有内容,以防万一出现问题。以下是最合适的命令吗?

username@machine:/$ sudo cp -r . /media/username/TOSHIBA\ EXT/root_copy/
backup external-hdd copy
  • 5 5 个回答
  • 3395 Views

5 个回答

  • Voted
  1. Best Answer
    Gordster
    2020-07-09T15:20:52+08:002020-07-09T15:20:52+08:00

    补充一下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”。它本质上是一个压缩存档,因此您将节省外部驱动器上的空间。

    我确信有更简单的方法可以做到这一点,但我一直使用这种方法来备份我的系统。

    • 13
  2. P.P
    2020-07-09T15:07:07+08:002020-07-09T15:07:07+08:00

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

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

    但是,在继续之前......你需要知道你真的不想复制下面的所有内容/:)

    您通常只需要复制您的数据;不是所有的操作系​​统二进制文件、已安装的应用程序、配置文件等。这就是 about 命令的作用。

    如果操作系统升级失败,那么“复制”所有内容并不容易。如果您有数据,您可以简单地重新安装操作系统并从外部磁盘/媒体复制回数据。

    此外,如果您设置了其他分区而不是安装了操作系统的分区并将数据保存在那里,那么您可能根本不需要从外部复制。您可以将数据保存在单独的分区中。如果操作系统重新安装出现问题,您只需擦除该分区并重新安装操作系统,而无需触摸保存数据的其他分区。

    • 8
  3. gronostaj
    2020-07-09T23:15:51+08:002020-07-09T23:15:51+08:00

    考虑对磁盘进行映像,而不是仅制作文件的副本。在升级过程中,不仅仅是文件可能会被弄乱:EFI 系统分区、引导扇区等。

    我推荐Clonezilla。它用户友好且可靠。他们有自己的专用启动盘。一些救援磁盘也提供它(例如 GRML),您可以将它安装在 Ubuntu Live CD 上。

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

    有些人可能会建议使用dd来创建原始图像。这也是一种有效的方法,生成的文件可以浏览,但它们会占用与整个分区大小一样多的空间。同时 Clonezillapartclone在后台使用,它只复制实际使用的磁盘空间而忽略空闲空间,不像dd. 默认情况下,Clonezilla 也会压缩图像。

    • 8
  4. Genaro S Scavello
    2020-07-10T08:59:34+08:002020-07-10T08:59:34+08:00

    rsync 是比 tar 或 cp 更好的 IMO

    如果你有你的 sshkeys 设置,并且要去另一个系统: nohup rsync-r /* user@destination:/ARCHIVE_DESTINATION

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

    如果本地 rsync -r /* /mnt/ARCHIVE_DESTINATION

    • 1
  5. Luca Citi
    2020-07-10T13:41:42+08:002020-07-10T13:41:42+08:00

    cp我发现将根设备安装在另一条路径上然后使用(甚至更好)要容易得多rsync。这样我就不必担心排除/dev/disk,/run等/proc。

    例如:

        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"
    

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

    正如其他人所指出的那样,有些事情/您可能不需要备份,因此无论如何排除它们是有意义的。当您想要复制分区中的所有内容时,我的解决方案很有用,因此您原则上甚至可以从外部设备启动(假设efi,boot等也在启动时被复制/找到某处)。

    • 0

相关问题

  • NTFS 备份映像不会挂载

  • 如何备份/恢复我的 Empathy 日志?

  • 如何将 Ubuntu 放在非闪存外部 USB 硬盘驱动器上?

  • 备份工具比较

  • 如何使文件夹与外部 USB 硬盘保持同步?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve