我们使用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有175 MB。我不明白的是尺寸95是如何映射到100 on,160到175,20到25等等。
另一个问题是,如果我想将系统的大小增加到210 in,那么在命令中写入正确的数字是什么?
发布于 2018-03-12 15:12:40
注意,您有一个稍微过时的sfdisk命令,因为自2015年版本2.26以来,它不再接受用于设置默认“单元”的-uM。
您所看到的差异是由于数字是以MB表示的,即兆字节(1000*1000)还是MiB即Mebi字节(1024*1024)。100 is大约是95MiB。
如果您希望将来使用较新的sfdisk来验证您的代码,您应该删除-uM并假定大小为512字节扇区。较新的版本允许您提供带有像MiB这样后缀的数字。
210 as可计算为:
echo '210*1000*1000/1024/1024' | bc大约200米。
https://unix.stackexchange.com/questions/429728
复制相似问题