この記事 に続いてキャッシュプールを作成しました。プロセスは成功したようです。
アップグレードグラブを実行して再起動した後、グラブはルートボリューム(UUIDを表示)が見つからないと文句を言います。 -悪いですが、これが元のボリュームのIDなのか、キャッシュされたボリュームのIDなのか思い出せません。
質問:キャッシュされたボリュームをルートとして使用するタスクの詳細を説明する記事はありますか?
次の Debianフォーラムトピック および ブログ投稿 に基づいて、不足している情報があります。
概要
-1)LVM構成をバックアップし、同様のCDを用意します。
0)別の/boot
パーティションがあることを確認してください(キャッシュされたルートは後でのみ使用可能になります)。これは200MBのパーティションにすることができ、キャッシュされたルートと同じVGの一部にすることができます。
1)カーネルイメージに(モジュールではなく)dm-cacheが必要です。構成をチェックして、CONFIG_DM_CACHE=y
があることを確認してください。モジュール(= m)の場合は、これがyに設定されているカーネルを再コンパイルする必要があります。 menuconfigを使用し、そこからこのオプションを設定することをお勧めします(dm-cacheの依存関係チェーンも=y
であることを確認します)。
Device Drivers --->
Generic Driver Options --->
--- Multiple devices driver support (RAID and LVM)
<*> Device mapper support
<*> Cache target (EXPERIMENTAL)
2)thin-provisioning-tools
をインストールします(起動時にキャッシュにfsckのような機能を実行します)。
3)/etc/initramfs-tools/hooks
に次の内容のファイルを作成します。これにより、手順2の実行可能ファイルといくつかの依存関係がinitramdiskイメージ内にあることが確認されます。
#!/bin/sh
PREREQ="lvm2"
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
if [ ! -x /usr/sbin/cache_check ]; then
exit 0
fi
. /usr/share/initramfs-tools/hook-functions
copy_exec /usr/sbin/cache_check
manual_add_modules dm_cache dm_cache_mq
4)update-initramfs -u -k all
を実行して、すべてのinitrdイメージを再生成します。
Vbenceの回答を使用する場合は、手順3の/ etc/initramfs/hooks /ファイルも実行可能にします。そうしないと、update-initramfs
によって実行されません。