
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
sfdisk
2015年バージョン2.26以降、-uM
デフォルト設定のために「単位」を許可しない少し古いコマンドがあることに注意してください。
違いは、数値がMB(メガバイト)(1000×1000)単位またはMiB(メガバイト(1024×1024))単位で提供されるためです。 100MBは約95MiBです。
最新バージョンでコードを将来使用できるようにするには、セクタサイズをsfdisk
削除して512バイトと仮定する必要があります。-uM
最新バージョンサフィックスを含む数字を提供できますMiB
(例:
210MBは次のように計算できます。
echo '210*1000*1000/1024/1024' | bc
約200MiB。