rsyncing一个可启动的备份

jwz提到PSA:备份相当聪明的备份系统。 您的备份方法基本上还原到replace驱动器。 这似乎只是在OSX上工作。 我需要做什么才能将本指南应用于Ubuntu?

将两个外部驱动器分区为与系统驱动器相同的方式,然后将所有分区与rsync同步,并将系统驱动器的引导扇区(驱动器的第一个扇区)分配给外部驱动器。 丑,但可以维修,如果你得到你的分区权(大如果)。

还可以看看像mondo rescue这样的更先进的“系统快照”系统,它可以帮你处理这种欺骗。

对于Ubuntu,我推荐使用sbackup ,在Linux中 ,“rsyncing a live bootable disk”只是不能很好地运行。 如果UUID在两个驱动器上是不同的(9/10),那么你不能简单地引导备份磁盘来恢复和运行,你需要启动Ubuntu CD并编辑/ etc /先安装更换驱动器。 如果UUID相同,那么在尝试同时安装两个UUID时会遇到问题。

Mac文件系统有这种差异,使得这种欺骗成为可能,我从来没有听说过通过rsync来做这种方法,但是在OSX世界中,通过简单地创build一个实时启动卷的磁盘映像以后可以恢复。 OSX安装光盘上提供了恢复这些图像的function。

最快的Ubuntu解决scheme是sbackup ,然后重新安装Ubuntu(从Ubuntu的Live CD“这是有效的恢复磁盘映像相同,之后你恢复之前的软件包select,configuration和数据从sbackup存档。相当简单,我怀疑你可以写一个howto,通过完整的备份/安装/恢复步骤,使新用户没有太大的问题。

如果你是聪明的,而且你提前计划,你可以使用LVM来为你完成。

假设您的系统在使用LVM的驱动器上; 事实上,整个系统在某个LVM卷上。

将第二个硬盘放在外部机箱中,将驱动器连接到系统,让LVM识别驱动器,然后使用LVM的镜像设备将驱动器复制到位。 一旦完整的副本完成,打破镜子。 您现在将有一个确切的快照(因为镜像还logging在复制过程中发生的任何更改)。 你现在唯一需要的就是使它成为可启动的。 如果您正在使用GRUB,则可以从现有系统执行此操作。

如果你想要很聪明,把这个过程写成一个脚本,并定期运行这个脚本。 您所要做的就是确保外部驱动器在运行时已连接。

不知道我是否正确理解你的问题:

如果你想备份你的linux机器来创build可引导的恢复CD的 ,那么看看mondo

这是一个聪明的备份程序,备份您的内核和所有必需的硬件驱动程序,以便能够将整个服务器快照到.iso映像,然后刻录到CD / DVD。 然后,如果需要恢复,只需popup第一张CD,打开电源,然后select恢复选项。

我没有一个准确的一步一步的食谱,但我怀疑我会开始build立一个像这样的系统。 我假设你是一个基于你的图标,标签的Ubuntu用户。

  • 我将从与正在运行的系统相匹配的mini.iso开始,并在便携式驱动器上执行仅CLI安装。 我会让它成为一个大分区。
  • 我将testing从便携式驱动器启动,以确保一切工作到目前为止。
  • 在便携式驱动器上进行安装时,我将更新/ etc / fstab和/boot/grub/menu.list以使用uuid(如果尚未安装)。
  • 我会创build一个备份脚本(/ root / rsync-to-portadrive),并像下图一样排除文件(/ root / rsync-exclude)(可能需要添加/调整排除文件)。

我没有testing过这个,也没有详细说明细节,但是我很确定你是否使用rsync并且不覆盖/ etc / fstab或者/ boot,那么系统仍然可以启动并且能够挂载根文件系统。 / root / rsync-exclude文件不会包含你不需要备份的tmp文件和垃圾文件,也不会覆盖你的/ boot目录和fstab文件。

就像我说的,我没有testing,我相信我的基本计划是健全的。 我同意其他海报相信这不是一个很好的备份你的系统的方法。 如果你有任何数据库应用程序,如mysql,你将要确保你分开备份它们。

/根/ rsync的到portadrive

# mount the portable device mkdir -p /srv/portabackup/ mount /dev/disk/by-uuid/19976dc9-2d2b-43e3-87ff-d3fb071ddcb3 /srv/portabackup/ # make a backup of your /boot and fstab mkdir -p /srv/portabackup/boot_backup/ cp /etc/fstab /srv/portabackup/boot_backup/fstab rsync -va /boot/ /srv/portabackup/boot_backup/ # sync the main system rsync -vaEH --delete --stats -D --numeric-ids \ --exclude-from=/root/rsync-exclude \ / /srv/portabackup/ # unmount umount /srv/portabackup/ 

/根/ rsync的 – 排除

 - lost+found/ - core - *~ - .nfs* - /tmp/*** - /var/tmp/*** - /boot/*** - /boot_backup/*** - /etc/fstab - /etc/mtab - /srv/portabackup/*** - /proc/*** - /sys/*** + * 

你没有提到频率和限制。 对于桌面系统,我使用了一个简单的夜间cron脚本,它基于如下方面做了一个愚蠢但完全重复的驱动:

 dd if=/dev/hda of=/dev/hdb 

优点

  • 不能更简单 。 如果出现问题,就扔掉有问题的驱动器,然后再换新的驱动器。
  • 既然你会再读整个驱动器,而且写整个也很好,主动检测一些坏道。
  • 文件系统和分区不可知论者。

缺点

  • 可怕的 (阅读小时 )。 我通过使用基本相同的自定义工具改进了它,但是并行地读取目的地,并且如果数据被改变,则只发出写入。
  • 由于您正在复制许多活动的文件系统,因此不应该在其中更改,特别是因为它不是真的像崩溃,所以驱动器的开始将不会与最后同步。 所以最好在维护的基础上(暂时重新安装文件系统R / O)

如果您的系统允许其他人指出LVM快照等“快照”,则可以采用更加灵活的解决scheme。 我build议我的备份/恢复部分不像你的问题似乎意味着简单。

你不能制作一个现场系统的安全副本。 最好的办法是制作一张启动磁盘,比如一张live CD,修改后用上面介绍的方法之一运行脚本。

您可以使用这些说明来使用ddrescue进行克隆。