创建Linux系统的快照


11

我要执行以下操作-保存我的Linux OS(centOS6.5)的当前状态。进行一些更改(更具体地说,注入故障并测试某些服务以检查在发生特定类型的故障时它的行为。)然后将系统恢复到已保存状态。我不知道如何在Linux系统上执行此操作。我有一台装有ext4文件系统的centOS 6.5机器,这也是物理服务器而不是虚拟机。

有什么想法或建议吗?


物理服务器还是虚拟机?
史蒂夫2015年

1
我建议在VirtualBox等虚拟化软件上运行OS。它很好地支持快照。
yaegashi

它是一台物理服务器。我需要在多台机器(物理服务器)上执行此操作,并且无法更改配置以在虚拟化软件上运行我的操作系统。
bRuta

它通常需要虚拟化等其他元层来支持系统快照。要使物理服务器表现得像在固件和引导加载程序级别的控制之下一样,很难做到。
yaegashi

Answers:


8

我会保持简单并克隆它。从USB引导实时系统(最容易的是从USB拇指驱动器获得Ubuntu),然后将硬盘转储到其他分区(或外部硬盘驱动器等),例如

dd if=/dev/sda1 bs=64M of=/mnt/my_mounted_backup_drive/backup-sda1

您需要在其中替换/dev/sda1为root(/)分区的位置。在适用的情况下/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,因此请在第一时间正确设置它:


PS:如果您期望某些错误,请备份分区表,例如dd if=/dev/sda bs=64M count=2 of=/mnt/my_mounted_backup_drive/backup-sda。还原时,您需要注意不要在磁盘上写太多块-如果不查看分区布局就无法说出多少块。根据gdisk或最多恢复(不包括)第一个分区开始的块fdisk
Ned64

5

您可以使用rsync备份整个系统。

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder

有在真棒文章Arch Linux的维基一下吧


对于我来说,这是最短的选择。当然,如果您没有,则rsync可以使用dd备份我的USB驱动器。
m3nda


1

您可以使用FSArchiver,它将在提取数据时将文件系统的内容保存到压缩文件并还原文件系统。

这是文档中的示例:

fsarchiver savefs /mnt/backup/gentoo-rootfs.fsa /dev/sda1

您还可以使用多线程压缩,并且恢复非常简单:

fsarchiver restfs /mnt/backup/gentoo-rootfs.fsa id=0,dest=/dev/sda1

-1

为了返回到以前的状态,可以将当前文件系统挂载到新目录。这会将文件系统挂载到以下命令指定的新根目录中:

mount DIR DIR

要恢复此状态,请从mount命令中指定的目录中更改文件系统的根目录。

umount DIR

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.