备份整个硬盘Linux

Gor*_*Ape 7 backup hard-disk raid1

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

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

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

我知道这至少存在于 Windows 中。

虽然硬盘在 RAID 1 上....

for*_*sck 4

如前所述,有很多选择,哪一个最好取决于您的要求。

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

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

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

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

mkdir /mnt/orig
mount / /mnt/orig -o bind
mount /var /mnt/orig/var -o bind
Run Code Online (Sandbox Code Playgroud)

这将为 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 -
Run Code Online (Sandbox Code Playgroud)

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

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

tar -C /mnt/orig -zcf /mnt/backup/mybackup_$(date -I).tar.gz ./
Run Code Online (Sandbox Code Playgroud)

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

mksquashfs /mnt/orig/ /mnt/backup/mybackup.squashfs
mkdir /mnt/squash
mount /mnt/backup/mybackup.squashfs /mnt/squash -o loop
Run Code Online (Sandbox Code Playgroud)

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/
Run Code Online (Sandbox Code Playgroud)

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