• 【教程】磁盘整数分区方法


    ✨磁盘分区非整数问题

    在NTFS文件系统下当我们使用Windows的磁盘管理分区时

    例如需要分区 150GB 即 153600 MB(150 * 1024 = 153600)

    按照该大小分区时候得到的并不是整数大小的分区

    ✨磁盘整数分区方法

    硬盘厂商设计的是1GB=1000MB,而操作系统却认为1GB=1024MB,而这个整数分区的公式既不是按照硬盘厂商的设计也不是操作系统的设计,而是另有误差。原因就是硬盘在分区和格式化之后还会在硬盘上占用一定的空间用来存储磁盘结构和数据位置等信息。

    FAT32格式

    应分配MB数=(分区GB数-1)×4+1024×分区GB数

    也就是说,如果你要在FAT32格式的硬盘上分出一个10 GB的硬盘,那么:

    你应该分配的MB数=(10-1)×4+1024×10=10276 MB

    这样你就可以得到整数的10 GB分区了。

    NTFS格式

    硬盘一般有255磁头,63扇区,故每柱面大小为:

    512byte x 255 x 63=8225280bytes =7.84423828125 MB

    如果要分10 GB,那么要10x1024 MB=10240 MB

    需要柱面数为10240÷7.84423828125=1305.416744475568004979769685652

    取整数既为1306个柱面

    应分MB数为1306x7.84423828125=10244.5751953125 MB


    整数分区演示

    例如需要分配 150GB

    对于NTFS格式依照公式应当分配 153606MB


    ✨代码实现

    from math import *
    
    def rounded_GB_NTFS(GB):
        TEMP = 7.84423828125
        MB = GB * 1024
        return ceil(ceil(MB / TEMP) * TEMP)
    
    def rounded_GB_FAT32(GB):
        return (GB - 1) * 4 + 1024 * GB
    

    另外经过测试知乎上另一种计算方法也能实现同样效果

    def rounded_TB(TB):
        MB = TB * 1024 * 1024
        return MB + 4096
    
    def rounded_GB(GB):
        MB = GB * 1024
        return MB + 1024
    

    Win10完美整数大小磁盘分区 - 知乎 (zhihu.com)


    ⭐转载请注明出处

    本文作者:双份浓缩馥芮白

    原文链接:https://www.cnblogs.com/Flat-White/p/15137668.html

    版权所有,如需转载请注明出处。

  • 相关阅读:
    block、inline、inline-block
    js 的复制和引用 (传值和传址)
    俄罗斯方块和作品集
    js 连续赋值。。理解不了,先占坑
    8.7 jquery-dom manipulation
    08.04 对象构造方法
    对象的基本操作
    08.03 js _oop
    08.02 对象
    The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
  • 原文地址:https://www.cnblogs.com/Flat-White/p/15269330.html
Copyright © 2020-2023  润新知