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にマップされるかです.

もう一つの質問は、システムサイズを210 MBに増やすためにコマンドに書き込む正しい数字は何ですか?

ベストアンサー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。

おすすめ記事