![스크립트에서 파티션 테이블을 읽는 데 fdisk보다 partx가 더 낫습니까?](https://linux55.com/image/105194/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%ED%8C%8C%ED%8B%B0%EC%85%98%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84%20%EC%9D%BD%EB%8A%94%20%EB%8D%B0%20fdisk%EB%B3%B4%EB%8B%A4%20partx%EA%B0%80%20%EB%8D%94%20%EB%82%AB%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
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"}
]
}
}