web-dev-qa-db-ja.com

ルートのLVMスナップショットを一時的に復元する

起動したいルートファイルシステムのスナップショットがあります。マシンを数日前の状態にし、いくつかのテストを実行してから、現在の場所に戻ります。

Fstabを編集して、スナップショットをrootとして起動するように設定しようとしましたが、何も起こらなかったようです。スナップショットはマウントされましたが、ファイルシステムの状態は変更されず、現在の状態のままです。

編集:ルート以外のパーティションはありません。スナップショットはRHEL6.2であり、現在の状態はRHEL 6.3です(したがって、新しいカーネルがあります)。これに従ってintrdを編集しました ブログ記事 そして今ではlvmsが起動時にアクティブ化されないようです。 Dracutは、それらすべてが継承とフリーズによって非アクティブであると書いています。

3
M.K.

私は素晴らしくて簡単な解決策を見つけました(他の解決策はどういうわけか私にはうまくいきませんでした、理由はわかりません)。 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_oldgrub.confのカーネル行に追加してアクティブにします(スナップショットは、Originに関連する変更のみが含まれているため、起動時にOriginが非アクティブの場合は機能しないようです)。これは私の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
M.K.

スナップはすでに作成されていますが、わかりやすくするために手順を説明します。

スナップを作成します。

# 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=を変更し、ブート中にルートfsを指定できます。スナップ。これは一時的なものであり、システムを再起動しても持続しません。

2
George M

/etc/fstabはルートfsの検索には使用されません。 grubメニューで、eを押してエントリを編集し、スナップショットを指すようにroot = kernelコマンドライン引数を変更します。これは、スナップショットから今回だけ起動します。

1
psusi