web-dev-qa-db-ja.com

lvmでキャッシュされたボリュームからの起動

この記事 に続いてキャッシュプールを作成しました。プロセスは成功したようです。

アップグレードグラブを実行して再起動した後、グラブはルートボリューム(UUIDを表示)が見つからないと文句を言います。 -悪いですが、これが元のボリュームのIDなのか、キャッシュされたボリュームのIDなのか思い出せません。

質問:キャッシュされたボリュームをルートとして使用するタスクの詳細を説明する記事はありますか?

5
vbence

次の 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イメージを再生成します。

6
vbence

Vbenceの回答を使用する場合は、手順3の/ etc/initramfs/hooks /ファイルも実行可能にします。そうしないと、update-initramfsによって実行されません。

2
Slobodan Pejic