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
    • 最新
    • 标签
主页 / unix / 问题 / 765599
Accepted
S. N.
S. N.
Asked: 2023-12-27 03:09:49 +0800 CST2023-12-27 03:09:49 +0800 CST 2023-12-27 03:09:49 +0800 CST

将 /home 目录备份到 NTFS 分区的最佳方法是什么?

  • 772

我想/home每周用 Linux (Lubuntu 20.04) 备份我的计算机分区。问题是我拥有的唯一额外硬盘驱动器连接到 Windows 计算机。看来Windows如果没有一些第三方工具就无法管理ext3或分区(我不知道这些工具有多可靠)。ext4看起来我别无选择,只能在 NTFS 卷上进行备份。

那么,问题来了。怎样做才正确呢?

我在这个帖子上发现了一个类似的问题,但十年前就有人提出并回答了这个问题(我说的是第二个答案,它比公认的答案更具体)。为了方便起见,我把相关部分复制在这里。

备份:

ionice -c2 -n5 nice -n9 tar czvf - /media/somelinuxdrivepath | split -b 16m - /media/usb/ntfsmounted/back.tar.gz.

要从备份副本恢复:

ionice -c2 -n5 nice -n9 cat /media/usb/ntfsmounted/back.tar.gz.* | tar xzvf - /media/somenewlinuxpath

但我对这个答案有三个疑问,如下:

  1. 十年已经很长了,那么从那以后是否有可能出现比(专门为此目的而设计的特殊工具)更可靠和/或更方便的东西?
  2. 我真的不明白命令之前的部分tar,我已经尝试过,但这超出了我的范围。
  3. 就我而言,/home 分区大小超过 200 GB。如果我在一周内只更改了少数文件,那么每个周末备份所有内容是否合理?类似的东西Rsync听起来像是一个合乎逻辑的选择,但它会是可用于完全恢复分区的完整副本吗?
backup
  • 1 1 个回答
  • 51 Views

1 个回答

  • Voted
  1. Best Answer
    Paige Thompson
    2023-12-27T11:43:35+08:002023-12-27T11:43:35+08:00

    在 Linux 上的 ntfs 和其他文件系统之间复制时,您可以使用getfacl和setfacl来备份/恢复文件的权限/所有权:

    备份:

    cp -rv /home /mnt/ntfs_vol 
    getfacl -R /home | xz -9 > /mnt/ntfs_vol/home_permissions.txt.xz
    

    恢复:

    cp -rv /mnt/ntfs_vol/home / 
    setfacl --restore <(xzcat /mnt/ntfs_vol/home_permissions.txt.xz)
    

    编辑:

    有人在前面的评论中提到了正式和非正式备份/验证之间的区别,您可以替换rsync为cp:

    TS=$(date '+%Y%m%d%H%M%s') ; rsync -avv /home \
    /mnt/ntfs_vol                                 \
    --log-file="/mnt/ntfs_vol/rsync.${TS}.log" && \
    getfacl -R /home                              \
    | xz -9 > "/mnt/ntfs_vol/home_permissions.${TS}.txt.xz"
    

    参考:

    https://superuser.com/questions/1002074/linux-command-line-to-create-a-log-file-for-rsync

    备份和恢复文件权限

    如果您需要比这更正式的验证,那么您还可以生成加密哈希的清单:

    apt install parallel 
    
    TZ=$(date '+%Y%m%d%H%M%s') ; find /home \
    -type f | parallel sha256sum {}         \
    > "/mnt/ntfs_vol/backup.${TZ}.manifest"
    

    并验证:

    sha256sum --quiet -c /mnt/ntfs_vol/backup.2023122707571703692656.manifest
    

    如果您因为名称或任何原因不喜欢 tar,但可以欣赏归档格式,那么还有另一种相当常见的替代方案:

    find /home | cpio -vo > /mnt/ntfs_vol/archive.cpio
    

    如果您检查此格式的内容:

    find /usr/include/ | cpio -o | hexdump -C | head -n 20
    00000000  c7 71 1d 00 9c 09 ed 41  00 00 00 00 01 00 00 00  |.q.....A........|
    00000010  83 65 9c 05 0e 00 00 00  00 00 2f 75 73 72 2f 69  |.e......../usr/i|
    00000020  6e 63 6c 75 64 65 2f 00  c7 71 1d 00 f9 47 ed 41  |nclude/..q...G.A|
    00000030  00 00 00 00 01 00 00 00  92 64 2a 63 16 00 00 00  |.........d*c....|
    00000040  00 00 2f 75 73 72 2f 69  6e 63 6c 75 64 65 2f 69  |../usr/include/i|
    00000050  70 72 6f 75 74 65 32 00  c7 71 1d 00 f2 d6 a4 81  |proute2..q......|
    00000060  00 00 00 00 01 00 00 00  6b 64 f8 6b 20 00 00 00  |........kd.k ...|
    00000070  f7 04 2f 75 73 72 2f 69  6e 63 6c 75 64 65 2f 69  |../usr/include/i|
    00000080  70 72 6f 75 74 65 32 2f  62 70 66 5f 65 6c 66 2e  |proute2/bpf_elf.|
    00000090  68 00 2f 2a 20 53 50 44  58 2d 4c 69 63 65 6e 73  |h./* SPDX-Licens|
    000000a0  65 2d 49 64 65 6e 74 69  66 69 65 72 3a 20 47 50  |e-Identifier: GP|
    000000b0  4c 2d 32 2e 30 20 2a 2f  0a 23 69 66 6e 64 65 66  |L-2.0 */.#ifndef|
    000000c0  20 5f 5f 42 50 46 5f 45  4c 46 5f 5f 0a 23 64 65  | __BPF_ELF__.#de|
    000000d0  66 69 6e 65 20 5f 5f 42  50 46 5f 45 4c 46 5f 5f  |fine __BPF_ELF__|
    000000e0  0a 0a 23 69 6e 63 6c 75  64 65 20 3c 61 73 6d 2f  |..#include <asm/|
    000000f0  74 79 70 65 73 2e 68 3e  0a 0a 2f 2a 20 4e 6f 74  |types.h>../* Not|
    00000100  65 3a 0a 20 2a 0a 20 2a  20 42 65 6c 6f 77 20 45  |e:. *. * Below E|
    00000110  4c 46 20 73 65 63 74 69  6f 6e 20 6e 61 6d 65 73  |LF section names|
    00000120  20 61 6e 64 20 62 70 66  5f 65 6c 66 5f 6d 61 70  | and bpf_elf_map|
    00000130  20 73 74 72 75 63 74 75  72 65 20 64 65 66 69 6e  | structure defin|
    

    非常简单;没有任何编程经验,您不可避免地可以自己弄清楚如何解压这种格式,而且更好的是,它已经 46 年(截至 2023 年)没有真正改变。

    更多信息: https: //en.wikipedia.org/wiki/Cpio

    • 1

相关问题

  • rsync 无缘无故地忽略 /mnt 中的一些文件夹

  • 如何对整个硬盘和分区表进行完整的增量和可搜索备份?

  • 用于增量备份的 pax 命令,带有类似于 rsync 的硬链接

  • 如何为多个项目组织您的系统?[关闭]

  • 我可以将时移快照保存到保管箱吗?

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve