web-dev-qa-db-ja.com

パーティションテーブルの強制再読み取り:BLKRRPARTとBLKPG ioctlの違い? (Linux)

Linuxが再起動せずに新しく作成されたパーティションを検討するようにしたい場合、カーネルの「パーティションキャッシュ」を強制的に更新するためのツールがいくつかあります。

  • partx -va /dev/sdX
  • kpartx -va /dev/sdX
  • hdparm -z /dev/sdX
  • sfdisk -R /dev/sdX
  • ...

これらの手法の違いはわかりませんが、ioctlBLKRRPARTのように同じBLKPGを使用していないと思います。それで、それらのioctlの違いは何ですか?

8
Totor

BLKRRPARTは、カーネルにパーティションテーブルを再度読み取るように指示します。 man 4 sd

BLKPGを使用すると、パーティションを自由に作成、追加、削除できます(もちろん、ディスクではなくカーネルから)。個々のパーティションのオフセットとサイズをカーネルに通知する必要があります。これは、事前にパーティションテーブルを解析しておく必要があることを意味します。参照 Linuxカーネル:/include/uapi/linux/blkpg.h

私は個人的に partprobe(partedの一部) を使用しています。これは、おそらくカーネルでサポートされていないパーティションテーブルをサポートするために、後者のアプローチを使用しています。

5
Rondom