我要执行以下操作-保存我的Linux OS(centOS6.5)的当前状态。进行一些更改(更具体地说,注入故障并测试某些服务以检查在发生特定类型的故障时它的行为。)然后将系统恢复到已保存状态。我不知道如何在Linux系统上执行此操作。我有一台装有ext4文件系统的centOS 6.5机器,这也是物理服务器而不是虚拟机。
有什么想法或建议吗?
我要执行以下操作-保存我的Linux OS(centOS6.5)的当前状态。进行一些更改(更具体地说,注入故障并测试某些服务以检查在发生特定类型的故障时它的行为。)然后将系统恢复到已保存状态。我不知道如何在Linux系统上执行此操作。我有一台装有ext4文件系统的centOS 6.5机器,这也是物理服务器而不是虚拟机。
有什么想法或建议吗?
Answers:
我会保持简单并克隆它。从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
,因此请在第一时间正确设置它:
dd if=/dev/sda bs=64M count=2 of=/mnt/my_mounted_backup_drive/backup-sda
。还原时,您需要注意不要在磁盘上写太多块-如果不查看分区布局就无法说出多少块。根据gdisk
或最多恢复(不包括)第一个分区开始的块fdisk
。
您可以使用rsync备份整个系统。
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder
有在真棒文章Arch Linux的维基一下吧
rsync
可以使用dd
备份我的USB驱动器。
使用rsync或rsnapshot本质上备份本地计算机怎么样?测试完成后,只需还原备份即可。
http://www.mikerubel.org/computers/rsync_snapshots/
同样,您可以使用LVM:
您可以使用FSArchiver,它将在提取数据时将文件系统的内容保存到压缩文件并还原文件系统。
这是文档中的示例:
fsarchiver savefs /mnt/backup/gentoo-rootfs.fsa /dev/sda1
您还可以使用多线程压缩,并且恢复非常简单:
fsarchiver restfs /mnt/backup/gentoo-rootfs.fsa id=0,dest=/dev/sda1