스크립트에서 파티션 테이블을 읽는 데 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"}
        ]
    }
}

관련 정보