ループバックデバイスの複数のパーティションが原因でエラーが発生しました

ループバックデバイスの複数のパーティションが原因でエラーが発生しました

分割ツールを開発しており、テスト目的でループバックデバイスで分割とLVM構成を繰り返し実行する必要があります。

  • パーティションには/dev/loop03つのパーティションがあります。/dev/loop0p1 /dev/loop0p2 /dev/loop0p3
  • LVMの作成
pvcreate /dev/loop0p2 /dev/loop0p3
vgcreate test_vg /dev/loop0p2 /dev/loop0p3
lvcreate -L 1GB test_vg -n vol1 --wipesignature y --zero y
lvcreate -L 1GB test_vg -n vol2 --wipesignature y --zero y
partprobe /dev/loop0

このように実行した後、同じデバイスからすべてを再度返したいのですが、パーティションを実行するとエラーが発生します。

Partition(s) 2, 3 on /dev/loop0 have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.

これで解決策は再起動であることがわかりますが、開発中にこれを続けるのは無理です。毎回再起動せずにこの問題を解決する方法はありますか?

答え1

このエラーは、/dev/loopxp2 および /dev/loopxp3 パーティションがまだ LVM の物理ボリュームとして使用されているにもかかわらず、パーティションを変更または作成しようとしたときに発生するようです。

この意味では、LVMはパーティション化とは異なります。ファイルシステムがマウントされていない場合でも、LVM自体は物理ボリュームを引き続き使用します。

あなたの質問では、あなたは創造について言及していません。ボリュームグループ。ここでの原則は、ボリュームグループ全体で一緒に作業する必要があることです(すべて利用可能または使用不可)。

vgexportこれを分離してボリュームグループを削除するために必要なループバックデバイスは、LVMが物理ボリュームの使用を停止します。これにより、エラーなくパーティションテーブルを操作できます。

関連情報