起動したいルートファイルシステムのスナップショットがあります。マシンを数日前の状態にし、いくつかのテストを実行してから、現在の場所に戻ります。
Fstabを編集して、スナップショットをrootとして起動するように設定しようとしましたが、何も起こらなかったようです。スナップショットはマウントされましたが、ファイルシステムの状態は変更されず、現在の状態のままです。
編集:ルート以外のパーティションはありません。スナップショットはRHEL6.2であり、現在の状態はRHEL 6.3です(したがって、新しいカーネルがあります)。これに従ってintrdを編集しました ブログ記事 そして今ではlvmsが起動時にアクティブ化されないようです。 Dracutは、それらすべてが継承とフリーズによって非アクティブであると書いています。
私は素晴らしくて簡単な解決策を見つけました(他の解決策はどういうわけか私にはうまくいきませんでした、理由はわかりません)。 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
のカーネル行に追加してアクティブにします(スナップショットは、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
警告-スナップショットの作成から現在までの間にカーネルをアップグレードした場合は、スナップショットの作成時に使用されたカーネルを起動することを忘れないでください。
スナップはすでに作成されていますが、わかりやすくするために手順を説明します。
スナップを作成します。
# 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を指定できます。スナップ。これは一時的なものであり、システムを再起動しても持続しません。
/etc/fstab
はルートfsの検索には使用されません。 grubメニューで、e
を押してエントリを編集し、スナップショットを指すようにroot = kernelコマンドライン引数を変更します。これは、スナップショットから今回だけ起動します。