临时恢复root的LVM快照

临时恢复root的LVM快照

我有一个根文件系统的快照,我想用它来启动 - 让机器进入几天前的状态,运行一些测试,然后回到我现在所在的位置。

我尝试编辑 fstab 并将快照设置为以 root 身份启动,但似乎什么也没发生 - 快照已安装,但文件系统的状态没有改变,我仍处于当前状态。

编辑:除了root之外没有其他分区。快照是RHEL 6.2,当前状态是RHEL 6.3(因此有一个新内核)。我按照这个编辑了 intrd博客文章现在看来 LVM 不会在启动时激活。 Dracut 写道,所有这些都因继承和冻结而处于非活动状态。

答案1

我找到了一个很好且简单的解决方案(其他解决方案不知何故对我不起作用,我不确定为什么)。将 lv_root 重命名为 lv_root_old 之类的名称,然后将快照重命名为 lv_root。

 $ lvrename /dev/VolGroup/lv_root /dev/VolGroup/lv_root_old
 $ lvrename /dev/VolGroup/snapshot /dev/VolGroup/lv_root

然后添加rd_LVM_LV=VolGroup/lv_root_old到 中的内核行中grub.conf,以便它被激活(显然,如果源在启动时处于非活动状态,则快照不起作用,因为它只包含相对于源的更改)。这就是我的 grub 条目现在的样子:

root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto quiet rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_root_old KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM elevator=deadline processor.max_cstate=1
initrd /initramfs-2.6.32-220.el6.x86_64.img

警告 - 如果您在拍摄快照之前升级了内核,请不要忘记引导拍摄快照时使用的内核。

答案2

尽管您已经创建了快照,但为了清楚起见,我将完成这些步骤。

创建快照。

# lvcreate --size 100M --snapshot --name lv_root_snap /dev/vg_linux/lv_root
# lvs
 LV           VG           Attr   LSize   Origin  Snap%  Move Log Copy%  Convert
 lv_home      vg_linux    -wi-ao  11.72g                                       
 lv_opt       vg_linux    -wi-ao   4.00g                                       
 lv_root      vg_linux     owi-ao   2.00g                                       
 lv_root_snap vg_linux     swi-a- 100.00m lv_root   2.52  

如果需要,安装卡扣并验证。

# mount /dev/vg_linux/lv_root_snap /mnt

添加一个条目/etc/grub.conf,告诉内核使用快照根文件系统。 (/etc/grub.conf是 的符号链接/boot/grub/grub.conf,因此不受 的快照影响/

title RHEL 6.2 Snap
    root (hd0,0)
    kernel /vmlinuz-2.6.32-220.13.1.el6.x86_64 ro root=/dev/mapper/vg_linux-lv_root_snap ....
    ....

或者,如果您不想创建grub条目,则可以在引导期间通过进入grub菜单并编辑条目root=以指向快照来指定根文件系统。这将是暂时的,并且在系统再次启动时不会持续存在。

答案3

/etc/fstab不用于定位根文件系统。在 grub 菜单中,按e编辑条目并更改 root= kernel 命令行参数以指向快照。这一次将从快照启动。

相关内容