Linuxにパーティションのパーティションテーブルを読み取る方法は?

Linuxにパーティションのパーティションテーブルを読み取る方法は?

たとえば、ディスク(GPTパーティション)があります/dev/sda

/dev/sda8これはディスクのパーティションです。私はこのcfdiskユーティリティを/dev/sda8/dev/sda8p1

Linuxがパーティション内のパーティションを認識し、可能であればそれを自動化するにはどうすればよいですか?

答え1

パーティションがディスクのように自動的にスキャンされることを知らず、実際に手動でスキャンすることも不可能です。

partx --add - /dev/sda8
partx: /dev/sda8: error adding partitions 1-2

ただし、ループデバイスを使用してパーティションをデバイスに再マップでき、デバイスはディスクのように検索できます。/dev/sda82つのパーティションを持つデバイスの例:

losetup --show --find --partscan /dev/sda8
/dev/loop0

ls -1 /dev/loop0*    # Arg is #1, not lowercase "L"
/dev/loop0
/dev/loop0p1
/dev/loop0p2

完了したら、ループデバイスを削除することを忘れないでください。

losetup -d /dev/loop0

答え2

これらのネストは、私が知っているパーティションテーブルの仕様の一部ではないため、これらのネストされたパーティション構造は自動的には認識されません。

ただしkpartx、そのようなパーティション内パーティション用のデバイスマッパーベースのデバイスノードを作成するために使用できますpartx。結果のパーティションデバイスは次のとおりです/dev/mapper/sda8p1

このようなネストされたパーティション構造できるたとえば、パーティションを仮想マシンの仮想ディスクにマップします。kpartx仮想マシンに起動を妨げる問題がある場合は、ホストを介してこれらの仮想ディスクのパーティションにアクセスすると便利なトラブルシューティングツールになる可能性があります。

ただし、制限事項に注意してください。仮想マシンの実行中にホストシステムが仮想マシンのパーティションにアクセスしようとすると、ホストと仮想マシンのファイルシステムレベルのキャッシュが互いに通信できないため、ファイルシステムが破損する可能性があります。したがって、ある人の書き込み操作によって他の人がキャッシュしたデータの一部が無効になることを知ることは不可能です。

関連情報