カーネルメモリ内のパーティションテーブルの削除

カーネルメモリ内のパーティションテーブルの削除

論理ボリューム(LVMのlv)内のすべてのパーティションを消去しました(デバイスから削除しました)。それから私はそうしましたpartprobe -s(そして他同様のコマンド:&を表すpartprobe出力は返されません。私が経験している問題は、次のいずれかを実行できないことです。partxpartition: nonefailed to read partition table

  • mkfs /dev/vg/lvなぜなら/dev/vg/lv is apparently in use by the system; will not make a filesystem here!
  • lvremove /dev/vg/lvこの装置はLogical volume vg/lv is used by another device.

これは、カーネルがまだ lv ブロックデバイスにパーティションを表示するためです。

# grep dm /proc/partitions
 254        0   85852160 dm-0
 254        1   84850688 dm-1

そして

# ls -lh /dev/dm-*                           
brw-rw---T 1 root disk 254, 0 May 23 14:32 /dev/dm-0                                                       
brw-rw---T 1 root disk 254, 1 May 23 14:08 /dev/dm-1

最終的にマシンを再起動し、問題が解決しました(カーネルはもはや存在しないパーティションを見ませんでした)。

再起動せずにこの問題を解決する方法を知っていますか?

3.2 カーネルでテストされました。

ベストアンサー1

LVMデバイス(または通常はデバイスマッパー)は、デバイスsdと同じ意味でパーティションをサポートしません。を使用すると、partx一般タイプのパーティションのみを管理できます。 LVMデバイスでは、次の方法でパーティションを管理する必要がありますkpartx

kpartx -d /dev/vg/lv

マンページはkpartx少し簡潔です。これを確認するために、私の仮説に一致する使用例を見つけました。https://bugzilla.redhat.com/show_bug.cgi?id=187781

おすすめ記事