intika Asked: 2020-02-27 03:07:43 +0800 CST2020-02-27 03:07:43 +0800 CST 2020-02-27 03:07:43 +0800 CST linux磁盘(dmcrypt,luks,ext4,ext3,btrfs)正常和加密系统的严重备份选项 772 磁盘/分区备份 进行可靠且易于使用的完整系统备份的备份选项和良好做法是什么? 有以下要求: 实时备份 图像备份 加密备份 增量备份 轻松挂载/访问备份磁盘/文件 全系统备份,一键还原 可以自动安排(使用 cron 或其他) 加密或经典备份源(luks、dm-crypt、ext3/ext4/btrfs)。 backup ext4 1 个回答 Voted Best Answer intika 2020-02-27T03:07:43+08:002020-02-27T03:07:43+08:00 Linux系统备份 当以真正的完整系统备份为目标时,与基于文件的备份相比,磁盘映像备份(如所要求的)提供了巨大的优势(详细如下)。 不保存基于文件的备份磁盘/分区结构;大多数情况下,完全恢复的过程非常耗时,实际上需要许多耗时的步骤(如系统重新安装);最后备份已安装的应用程序可能会很棘手;映像磁盘备份避免了所有这些缺点,恢复过程是一步到位。 clonezilla、fsarchiver等工具不适合这个问题,因为它们缺少一个或多个请求的功能。 提醒一下,luks加密分区不依赖于使用的文件系统(ext3/ext4/etc)。请记住,性能因所选文件系统(详细信息)而异,另请注意btrfs(视频- 1 , video-2 ) 可能是一个非常好的选择,因为它具有快照功能和数据结构。这只是一个额外的保护层,因为 btrfs 快照不是真正的备份!(经典快照驻留在同一分区上)。 附带说明一下,除了磁盘映像备份之外,我们可能希望对某些特定位置进行简单的文件同步备份,为此,可以组合使用rsync / grsync(或btrfs-send,如果是 btrfs)之类的工具使用 cron(如果需要)和加密的备份目标(如 luks-partition/vault/truecrypt)。基于文件的备份工具可以是:rsync / grsync、rsnapshot、cronopete、dump / restore、timeshift、deja-dup、systemback、freefilesync、实时同步,幸运备份,vembu。 注释 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 方法#1 将原始 luks 磁盘/分区(sda或sda1)按原样加密备份到任何位置 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上),内核模块是开源的,该工具不能用于第一种方法,备份可以加密,支持增量和挂载备份。 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/ 备择方案: Bareos:开源备份解决方案(演示视频) Bacula:开源备份解决方案(演示视频) Weresync:具有增量功能的磁盘映像解决方案。 其他工具可在此处、此处、此处或此处找到 有一个维基百科页面比较磁盘克隆软件 Gartner 对一些专业备份解决方案的分析可在此处获得 其他工具 Acronis备份可用于这两种方法,但它们的内核模块总是在最近更新(不适用于当前/最近的内核版本),而且自 2020 年 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:live/hot 镜像备份解决方案,备份无法挂载。 Dump:镜像备份系统,不支持挂载。
Linux系统备份
当以真正的完整系统备份为目标时,与基于文件的备份相比,磁盘映像备份(如所要求的)提供了巨大的优势(详细如下)。
不保存基于文件的备份磁盘/分区结构;大多数情况下,完全恢复的过程非常耗时,实际上需要许多耗时的步骤(如系统重新安装);最后备份已安装的应用程序可能会很棘手;映像磁盘备份避免了所有这些缺点,恢复过程是一步到位。
clonezilla、fsarchiver等工具不适合这个问题,因为它们缺少一个或多个请求的功能。
提醒一下,luks加密分区不依赖于使用的文件系统(ext3/ext4/etc)。请记住,性能因所选文件系统(详细信息)而异,另请注意btrfs(视频- 1 , video-2 ) 可能是一个非常好的选择,因为它具有快照功能和数据结构。这只是一个额外的保护层,因为 btrfs 快照不是真正的备份!(经典快照驻留在同一分区上)。
附带说明一下,除了磁盘映像备份之外,我们可能希望对某些特定位置进行简单的文件同步备份,为此,可以组合使用rsync / grsync(或btrfs-send,如果是 btrfs)之类的工具使用 cron(如果需要)和加密的备份目标(如 luks-partition/vault/truecrypt)。基于文件的备份工具可以是:rsync / grsync、rsnapshot、cronopete、dump / restore、timeshift、deja-dup、systemback、freefilesync、实时同步,幸运备份,vembu。
注释
lsblk --fs
输出:sda
是主盘sda1/sda2
是加密分区crypt_sda1/crypt_sda2
虚拟(映射)未加密分区方法#1
将原始 luks 磁盘/分区(
sda
或sda1
)按原样加密备份到任何位置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)或加密的存档/映像(如果备份工具支持此类功能) .dd if=/dev/mapper/crypt_sda1 of=/backup/location/un-encrypted-sda1.img bs=128K status=progress
但请注意,使用 dd 对已挂载的分区进行映像可能会导致备份完成时已使用文件的数据损坏,例如 sql 数据库、x 配置文件或正在编辑的文档,为了保证数据的完整性,建议关闭所有正在运行的应用程序和数据库,我们还可以在创建映像后挂载映像并检查其完整性fsck
。#2 的缺点:磁盘头、mbr、分区结构、uid 等未保存完整备份需要额外的备份步骤(详细如下)
cryptsetup luksHeaderBackup /dev/sda1 --header-backup-file /backup/location/sda1_luks_heanders_backup
dd if=/dev/sda of=/backup/location/backup-sda.mbr bs=512 count=1
sfdisk -d /dev/sda > /location/backup-sda.sfdisk
笔记:
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/
备择方案:
其他工具