sfdisk 파티션 크기 매핑 작동 방식

sfdisk 파티션 크기 매핑 작동 방식

Python 스크립트를 사용하여 sfdisk를 실행하여 Linux에서 파티션을 생성합니다. 코드는 아래와 같이 표시됩니다.

        stdin,stdout=\
        (lambda x:(x.stdin,x.stdout))\
        (subprocess.Popen(
            ["/sbin/sfdisk","-uM","--no-reread",device],
            stdin=subprocess.PIPE,
            stdout=subprocess.PIPE,
            stderr=subprocess.STDOUT))

#<start>;<size>;<id>;<bootable>;
    t="""0;95;83;
;160;b;*
;;E;
;0;;
;20;b;
;95;b;
;;b;
"""
    print "Writing\n%s"%(t,)
    stdin.write(t)
    stdin.close()

"""Explanation:
/ 100MB (hda1)
/mnt/system 175MB (hda2)
/mnt/configuration 25MB (hda5)
/mnt/logs 100MB (hda6)
/mnt/user 88MB (hda7)
"""

이 명령을 실행한 후 설명이 정확하다는 것을 알았습니다. 예를 들어 systm의 크기는 175MB입니다. 내가 이해하지 못하는 것은 크기 95가 어떻게 100MB로, 160에서 175로, 20에서 25로 매핑되는지입니다.

또 다른 질문은 시스템 크기를 210MB로 늘리려면 명령에 쓸 올바른 숫자는 무엇입니까?

답변1

sfdisk2015년 버전 2.26부터 -uM기본값 설정을 위해 더 이상 "단위"를 허용하지 않는 약간 오래된 명령이 있다는 점에 유의하세요 .

차이점은 숫자가 MB(메가바이트)(1000*1000) 단위 또는 MiB(메가바이트(1024*1024)) 단위로 제공되기 때문입니다. 100MB는 약 95MiB입니다.

최신 버전에서 코드를 미래에도 사용할 수 있도록 하려면 섹터 크기를 sfdisk제거하고 512바이트로 가정해야 합니다 . -uM최신버전접미사가 포함된 숫자를 제공할 수 있습니다 MiB(예:

210MB는 다음과 같이 계산할 수 있습니다.

echo '210*1000*1000/1024/1024' | bc

약 200MiB.

관련 정보