スクリプトからパーティションテーブルを読み取るのにfdiskよりもpartxが優れていますか?

スクリプトからパーティションテーブルを読み取るのにfdiskよりもpartxが優れていますか?

fdiskの出力がわずかに異なるため、他のLinuxバージョンでは失敗する「fdisk -l」出力を使用するいくつかのスクリプトがあります。

"partx --show"コマンドは、ほとんどのシステム(fdiskと共にパッケージ化)で標準的なようです。

"partx --show"の出力を解析するためにスクリプトを変換すると、時間の経過とともにこれらのスクリプトのパフォーマンスが向上しますか? partxを使用するスクリプトは、複数のバージョンで安定しているか移植可能ですか?

ベストアンサー1

sfdiskどちらの代わりにutil-linuxの他の部分を使用することをお勧めします。なぜ? sfdiskのマンページには「すべてのブロックデバイスを分割するためのスクリプト中心ツール」と明示されているので、出力が安定していると予想しました。 (私が知っている限り、-d出力は長い間安定していました。)

シェルスクリプトを作成する場合は、-d出力を解析するのが最も簡単です。-lとを使用して-o特定の列を選択することもできます。別のスクリプト(Perl、Pythonなど)を作成しており、十分に新しいutil-linux(2015年半ば頃-JこれでJSONが提供されます。

-J以下は、このパラメータの使用方法の例ですsudo sfdisk -J /dev/sda。出力は次のとおりです。

{
    "partitiontable": {
        "label":"gpt",
        "id":"CA88994A-D99F-4347-89C2-6CCBC1B0765D",
        "device":"/dev/sda",
        "unit":"sectors",
        "firstlba":34,
        "lastlba":3907029134,
        "sectorsize":512,
        "partitions": [
            {"node":"/dev/sda1", "start":2048, "size":7811072, "type":"0657FD6D-A4AB-43C4-84E5-0933C84B4F4F", "uuid":"EABE31D7-1E43-4385-97E1-A8C9C4549C72"},
            {"node":"/dev/sda2", "start":7813120, "size":3899215872, "type":"0FC63DAF-8483-4772-8E79-3D69D8477DE4", "uuid":"EEBBAB54-0A5A-4B3F-9BEB-4FE10350EE2F"}
        ]
    }
}

おすすめ記事