linux 磁盘(dmcrypt、luks、ext4、ext3、btrfs)普通和加密系统的严重备份选项

int*_*ika 2 backup ext4 dm-crypt btrfs luks

磁盘/分区备份

制作可靠且易于使用的完整系统备份的备份选项和良好做法是什么?

具有以下要求:

  • 实时备份
  • 图片备份
  • 加密备份
  • 增量备份
  • 轻松挂载/访问备份磁盘/文件
  • 全系统备份,一键还原
  • 可以自动调度(使用 cron 或其他)
  • 加密或经典备份源(luks、dm-crypt、ext3/ext4/btrfs)。

int*_*ika 5

Linux系统备份

当针对真正的完整系统备份时,与基于文件的备份相比,磁盘映像备份(按要求)提供了显着的优势(详细信息如下)。

基于文件的备份磁盘/分区结构不保存;大多数情况下,完全恢复的过程是一个巨大的时间消耗者,实际上需要许多耗时的步骤(如系统重新安装);最后备份已安装的应用程序可能很棘手;映像磁盘备份避免了所有这些缺点,恢复过程是一次性的。

clonezilla、fsarchiver这样的工具不适合这个问题,因为它们缺少一个或多个请求的功能。

提醒一下,luks加密分区不依赖于使用的文件系统 (ext3/ext4/etc.) 请记住,性能取决于所选的文件系统 (详细信息),还请注意btrfs (视频- 1 , video-2 ) 可能是一个非常好的选择,因为它的快照功能和数据结构。这只是一个额外的保护层,因为 btrfs 快照不是真正的备份!(经典快照驻留在同一分区上)。

附带说明一下,除了磁盘映像备份之外,我们可能还想对某些特定位置进行简单的文件同步备份,为了实现这一点,可以结合使用rsync / grsync(或btrfs-send,如果是 btrfs)等工具使用 cron(如果需要)和加密的备份目标(如 luks-partition/vault/truecrypt)。基于磁盘的备份工具,文件可以是:rsync的/ grsyncrsnapshotcronopete转储/恢复时移似曾相识DUPsystembackfreefilesyncrealtimesyncluckybackupvembu


注释

lsblk --fs 输出:

  • sda 是主盘
  • sda1/sda2 是加密分区
  • crypt_sda1/crypt_sda2 虚拟(映射)未加密分区
    sda
    ??sda1           crypto_LUKS        f3df6579-UUID... 
    ? ??crypt_sda1   ext4               bc324232-UUID... /mount-location-1
    ??sda2           crypto_LUKS        c3423434-UUID...
      ??crypt_sda2   ext4               a6546765-UUID... /mount-location-2
Run Code Online (Sandbox Code Playgroud)

方法#1

将原始 luks 磁盘/分区(sdasda1)按原样加密到任何位置

  • bdsync / bdsync-manager是一个了不起的工具,它可以通过快速块设备同步来进行映像备份(完整/增量);这可以直接在加密分区上与 luks 一起使用,增量备份在这种情况下也能很好地工作。本工具支持挂载/压缩/网络等。
  • dd:磁盘映像的经典方法,可以与类似的命令一起使用,dd if=/dev/sda1 of=/backup/location/crypted.img bs=128K status=progress但请注意,使用 dd 映像挂载分区可能会导致备份完成时使用的文件的数据损坏,例如 sql 数据库、x 配置文件或正在编辑的文档, 为了保证数据完整性,建议关闭所有正在运行的应用程序和数据库的备份,我们还可以在创建后挂载映像并使用fsck.

#1 的缺点:备份大小、压缩和增量备份可能很棘手

方法#2

此方法适用于未加密的磁盘或备份映射的 luks 未加密分区crypt_sda1/crypt_sda2...加密的备份目标位置(如 luks-partition/vault/truecrypt)或加密的存档/映像,如果备份工具支持此类功能,建议使用.

  • Veeam : 免费/付费专业备份解决方案(仅在 linux 命令行和 TUI 上),内核模块是开源的,此工具不能用于 fist 方法,可以加密备份,支持增量和挂载备份。
  • bdsync / bdsync-manager与第一种方法相同,但备份是从未加密的映射分区(crypt_sda1/crypt_sda2)制作的。
  • dd:磁盘映像的经典方法,可以与类似的命令一起使用,dd if=/dev/mapper/crypt_sda1 of=/backup/location/un-encrypted-sda1.img bs=128K status=progress但请注意,使用 dd 映像挂载分区可能会导致备份完成时使用的文件的数据损坏,例如 sql 数据库、x 配置文件或正在编辑的文档, 为了保证数据完整性,建议关闭所有正在运行的应用程序和数据库的备份,我们还可以在创建后挂载映像并使用fsck.

#2 的缺点:磁盘头、mbr、分区结构、uid 等没有保存完整备份需要额外的备份步骤(详细如下)

  • 备份 luks 标头: cryptsetup luksHeaderBackup /dev/sda1 --header-backup-file /backup/location/sda1_luks_heanders_backup
  • 备份 mbr: dd if=/dev/sda of=/backup/location/backup-sda.mbr bs=512 count=1
  • 备份分区结构sfdisk -d /dev/sda > /location/backup-sda.sfdisk
  • 备份磁盘 uuid

笔记:

  • dd可以使用类似于以下命令的命令挂载完成的图像: fdisk -l -u /location/image.img kpartx -l -v /location/image.img kpartx -a -v /location/image.img cryptsetup luksOpen /dev/mapper/loop0p1 imgroot mount /dev/mapper/imgroot /mnt/backup/

备择方案:


其他工具

  • Acronis备份可用于这两种方法,但它们的内核模块总是在最近更新(不适用于当前/最近的内核版本),而且从 2020 年 2 月 2 日起安装备份不起作用。
  • Partclone:由clonezilla使用,这个工具只备份磁盘使用的块,它支持镜像挂载但不支持实时/热备份,也不支持加密/luks。
  • Partimage : dd 与 TUI 的替代方案,它支持实时/热备份,但无法挂载图像,并且不支持 luks(但支持 ext4/btrfs)。
  • Doclone:非常好的实时/热备份映像解决方案,支持许多系统(但不是运气……)ext4 等。支持网络,无法安装。
  • Rsnapshot:使用 rsync 的快照文件备份系统。在许多发行版(如 mageia)中使用,备份作业是用 cron 安排的,在后台运行时,备份状态不会自动可见。
  • Rsync / Grsync : 使用 rsync 命令同步文件夹,grsync 是 gui...
  • Cronopete:rsync 的文件备份替代方案(与现代解决方案相比,该应用程序的工作方式受到限制)
  • 简单备份:带有托盘图标和增量功能的文件备份解决方案,备份到 tars 档案
  • Backintime:用于基于文件的备份的python备份应用程序(该应用程序有许多未解决的问题
  • Shadowprotect:具有安装功能的 acronis 替代品...luks 支持并不明显。
  • Datto:专业的备份解决方案,luks支持不明显,linux代理需要联网到备份服务器...内核模块是github上的开源...界面是基于Web的,没有使用现代设计。
  • FSArchiver:实时/热映像备份解决方案,备份无法挂载。
  • 转储:映像备份系统,不支持挂载。