我想要执行以下操作 - 保存我的 linux 操作系统(centOS6.5)的当前状态。进行一些更改(更具体地说,注入故障并测试某些服务以检查发生特定类型的故障时它的行为方式。)然后将系统恢复到保存的状态。我无法弄清楚如何在 Linux 系统上执行此操作。我有一台带有 ext4 文件系统的 centOS 6.5 的机器。而且这是物理服务器而不是虚拟机。
有什么想法或建议吗?
答案1
您可以使用 rsync 来备份整个系统。
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder
有一篇很棒的文章在Arch Linux 维基关于它
答案2
我会保持简单并克隆它。从 USB 启动实时系统(我发现最简单的是从 USB 拇指驱动器启动 Ubuntu),然后将硬盘转储到不同的分区(或外部硬盘驱动器等),例如
dd if=/dev/sda1 bs=64M of=/mnt/my_mounted_backup_drive/backup-sda1
您需要将其替换/dev/sda1
为根 ( /
) 分区。如果适用,请对其他分区(如/boot
、/boot/efi
、 的分区)执行相同的操作。/home
如果你需要节省空间,你可以这样做
dd if=/dev/sda1 bs=64M | gzip --fast | dd bs=32M of=/mnt/my_mounted_backup_drive/backup-sda1.gz
或者,更复杂,慢得多,但可以节省更多字节,
mkdir -p /mnt/linux
mount -o ro /dev/sda1 /mnt/linux
cd /mnt/linux
tar cvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz .??* *
然后您可以以相反的方式恢复,例如
mkdir -p /mnt/linux
mount /dev/sda1 /mnt/linux
cd /mnt/linux
tar xvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz
或者
dd /mnt/my_mounted_backup_drive/backup-sda1.gz bs=32M | gzip --decompress | dd bs=64M of=/dev/sda1
(写入数据时请小心,这会删除上面的所有内容/dev/sda1
,因此第一次就一定要做对:-)
答案3
使用 rsync 或 rsnapshot 来备份本地计算机怎么样?测试完成后,只需恢复备份即可。
http://www.mikerubel.org/computers/rsync_snapshots/
同样,您可以使用 LVM: