备份整个硬盘 Linux

备份整个硬盘 Linux

我正在寻找一种备份整个磁盘的方法,以防万一出现问题......

我什至不知道在服务器的一些特殊设备上安装什么,而且每次都不一样。

cp -a对于目录有用/吗?
有没有什么程序可以复制硬盘的所有数据? (就像硬盘的图像)。

我知道这至少对于 Windows 来说是存在的。

不过硬盘是 RAID 1....

答案1

正如前面提到的,有很多选择,哪一个是最好的取决于您的要求。

由于您的系统采用 RAID1,因此您只需更换一个磁盘即可让镜像自行重建。删除的磁盘可以用作备份副本。

过去,对于完整系统备份,我使用过Ghost4Linux(又名 G4L)蒙多/明迪。前者可以在本地或远程保存分区映像,后者可以创建可启动恢复(+救援)CD 或 DVD。两者都有 ncurses gui,不需要命令行使用。

但很多时候,我只是复制整个系统。我主要使用 rsync,但这里有一些我认为这就是您正在寻找的选项。

假设您有两个分区,/并且/var您想要完整的备份。所有命令都需要 root 权限。

mkdir /mnt/orig
mount / /mnt/orig -o bind
mount /var /mnt/orig/var -o bind

这将为 rootfs 创建一个新的挂载点,您现在可以复制该挂载点,而不必担心其他挂载的文件系统,例如/proc/sys或 网络共享。

假设您有第二个磁盘,已使用适当的文件系统进行格式化并安装在/mnt/backup(或同一安装点上的 NFS)下。建议停止某些服务的运行,例如mysql服务或邮件服务器,以确保复制数据的完整性。

以下每个命令都应该足够了。

cp -a /mnt/orig/* /mnt/backup/
rsync -a /mnt/orig/ /mnt/backup/
tar -C /mnt/orig -cf - ./ | tar -C /mnt/backup -xpf -

不过最后一个有点矫枉过正了。tarrsync提供一个--exclude基于模式匹配跳过文件的参数,例如--exclude=\*.log --exclude=var/tmp.上述命令不使用压缩,您将拥有系统的精确副本。您还可以安装 grub 并使备份磁盘可引导。

如果备份设备上的空间有限或文件系统 (NTFS) 不兼容或者是 CIFS 安装共享,则可以创建压缩的 tar 存档。

tar -C /mnt/orig -zcf /mnt/backup/mybackup_$(date -I).tar.gz ./

或者创建一个 squashfs 映像,您可以稍后循环安装并像普通文件系统一样浏览其内容。

mksquashfs /mnt/orig/ /mnt/backup/mybackup.squashfs
mkdir /mnt/squash
mount /mnt/backup/mybackup.squashfs /mnt/squash -o loop

ssh另外,使用和tar或获取远程备份rsyncrsync需要对远程服务器进行 root 访问,以保留所有权、权限、设备文件等,这--numeric-ids对于不与远程系统的用户混合所有权是必要的。

tar -C /mnt/orig -zcf - ./ | ssh user@server 'cat -> mybackup_$(date -I).tgz'
rsync -aP -e ssh --numeric-ids /mnt/orig/ root@server:/path/to/backup/

在大多数情况下,完整恢复需要使用另一个系统(最好是 Live CD)启动,然后创建/重新排列分区方案、复制/提取数据并再次安装启动加载程序。

答案2

执行此操作的本机方法是在分区和磁盘之间创建 LVM 层。 LVM 能够创建快照,这些快照基本上是磁盘的即时时间点实例。这样做而不是直接 dd'ing 磁盘的原因是,在 dd 进行时磁盘的内容可能会更改。 LVM 快照一旦创建就不会更改。然后,备份完成后,销毁快照。

因此,分层拓扑看起来类似于:
DISK0 + DISK1
RAID-1
LVM
分区
文件系统

如果您只想备份单个分区,您还可以将 LVM 放在每个分区的顶部。要么有效

答案3

dd在设备上是克隆硬盘的一种方法。

答案4

(Partimage Is Not Ghost) 备份分区映像的实时磁盘,尽管在制作映像时会导致停机

相关内容