硬盘分区按照1G=1024M换算分区后不是整数(想分10G,分区时填入大小102400M.但是分区完毕显示却是99.9G或近似值9.XXG,而不是10G整)。本篇为这个问题的原理分析和解决办法

提出问题

老早以前的问题了,今天分区的时候按照近似算法又出现又出现了近似值,
这99.98简直不能忍在这里插入图片描述
硬盘分区按照1G=1024M换算分区后不是整数(想分10G,分区时填入大小102400M.但是分区完毕显示却是99.9G或近似值9.XXG,而不是10G整)。本篇为这个问题的原理分析和解决办法

先给出直接通用方案,特殊情况直接跳到4寻找精确值

硬盘分区的时候不能按照简单的按1024=1G 来设置
正确公式为(N-1)4+1024N,N为想要的大小,单位GB,最终计算结果单位为MB
即,如果想分出5GB整的分区,则公式为:
(5-1)4+10245=5136MB.(而不是1024*5=5120MB)

文章目录

  • 提出问题
  • 先给出直接通用方案,特殊情况直接跳到4寻找精确值
  • 1.什么是分区
  • 2.扩展分区和逻辑分区
  • 3.分区格式
      • 3.1 fat16
      • 3.2 fat32
      • 3.3 ntfs
      • 3.4 linux
      • 3.5 exFAT
  • 3.补充一点:整数分区通常的算法是M=(G-1)X4+1024*G,但并不完全准确
  • 4.常用1GB到200GB最精确的整数分区

1.什么是分区

分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高级格式化,即Format命令来实现。

安装操作系统和软件之前,首先需要对硬盘进行分区和格式化,然后才能使用硬盘保存各种信息。许多人都会认为既然是分区就一定要把硬盘划分成好几个部分,其实我们完全可以只创建一个分区使用全部或部分的硬盘空间。不过,不论我们划分了多少个分区,也不论使用的是SCSI硬盘还是IDE硬盘,都必须把硬盘的主分区设定为活动分区,这样才能够通过硬盘启动系统。

2.扩展分区和逻辑分区

DOS和FAT文件系统最初都被设计成可以支持在一块硬盘上最多建立24个分区,分别使用从C到Z 24个驱动器盘符。但是主引导记录中的分区表最多只能包含4个分区记录,为了有效地解决这个问题,DOS的分区命令FDISK允许用户创建一个扩展分区,并且在扩展分区内在建立最多23个逻辑分区,其中的每个分区都单独分配一个盘符,可以被计算机作为独立的物理设备使用。关于逻辑分区的信息都被保存在扩展分区内,而主分区和扩展分区的信息被保存在硬盘的MBR内。

这也就是说无论硬盘有多少个分区,其主启动记录中只包含主分区(也就是启动分区)和扩展分区两个分区的信息。

3.分区格式

3.1 fat16

对电脑老"鸟"而言,对这种硬盘分区格式是最熟悉不过了,我们大都是通过这种分区格式认识和踏入电脑门槛的。它采用16位的文件分配表,能支持的最大分区为2gb,是目前应用最为广泛和获得操作系统支持最多的一种磁盘分区格式,几乎所有的操作系统都支持这一种格式,从dos、win3.x、win95、win97到win98、windows nt、win2000/XP,甚至火爆一时的linux都支持这种分区格式。

但是fat16分区格式有一个最大的缺点,那就是硬盘的实际利用效率低。因为在dos和windows系统中,磁盘文件的分配是以簇为单位的,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。而且每簇的大小由硬盘分区的大小来决定,分区越大,簇就越大。

例如1gb的硬盘若只分一个区,那么簇的大小是32kb,也就是说,即使一个文件只有1字节长,存储时也要占32kb的硬盘空间,剩余的空间便全部闲置在那里,这样就导致了磁盘空间的极大浪费。fat16支持的分区越大,磁盘上每个簇的容量也越大,造成的浪费也越大。所以随着当前主流硬盘的容量越来越大,这种缺点变得越来越突出。

97操作系统中推出了一种全新的磁盘分区格式fat32。

3.2 fat32

这种格式采用32位的文件分配表,使其对磁盘的管理能力大大增强,突破了fat16对每一个分区的容量只有2gb的限制,运用fat32的分区格式后,用户可以将一个大硬盘定义成一个分区,而不必分为几个分区使用,大大方便了对硬盘的管理工作。而且,fat32还具有一个最大的优点是:

在一个不超过8gb的分区中,fat32分区格式的每个簇容量都固定为4kb,与fat16相比,可以大大地减少硬盘空间的浪费,提高了硬盘利用效率。

目前,支持这一磁盘分区格式的操作系统有win97、win98和win2000/XP。但是,这种分区格式也有它的缺点,首先是采用fat32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用fat16格式分区的硬盘要慢;另外,由于dos系统和某些早期的应用软件不支持这种分区格式,所以采用这种分区格式后,就无法再使用老的dos操作系统和某些旧的应用软件了。

3.3 ntfs

ntfs分区格式是一般电脑用户感到陌生的,它是网络操作系统windows nt的硬盘分区格式,使用windows nt的用户必须同这种分区格式打交道。其显著的优点是安全性和稳定性极其出色,在使用中不易产生文件碎片,对硬盘的空间利用及软件的运行速度都有好处。它能对用户的操作进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了网络系统与数据的安全。

2000也支持这种硬盘分区格式。不过与windows nt不同的是,win2000使用的是ntfs5.0分区格式。ntfs5.0 的新特性有"磁盘限额"–管理员可以限制磁盘使用者能使用的硬盘空间;“加密”–在从磁盘读取和写入文件时,可以自动加密和解密文件数据等。随着 win2000的普及,广大电脑用户会逐渐熟悉这种分区格式的。

3.4 linux

linux操作系统是去年it媒体炒得最为火爆的操作系统。由于该系统为自由软件,几乎不用花钱就能装入电脑,所以赢得了许多用户。它的磁盘分区格式与其他操作系统完全不同,共有两种格式:

一种是linux native主分区,一种是linux swap交换分区。这两种分区格式的安全性与稳定性极佳,结合linux操作系统后,死机的机会大大减少,能让我们摆脱windows常常崩溃的噩梦。但是,目前支持这一分区格式的操作系统只有linux,对linux系统不感兴趣的用户也只能望洋兴叹了。

通过以上的介绍,我想你一定对常见的硬盘的分区格式有所了解了。那么,赶快根据你所需要安装的操作系统,给你的硬盘确定分区格式吧。

硬盘必须先经过分区才能使用,磁盘经过分区之后,下一个步骤就是要对硬盘进行格式化(FORMAT)的工作,硬盘都必须格式化才能使用。

格式化是在磁盘中建立磁道和扇区,磁道和扇区建立好之后,电脑才可以使用磁盘来储存数据。

在Windows和DOS操作系统下,都有格式化Format的程序,不过,一旦进行格式化硬盘的工作,硬盘中的数据可是会全部不见喔!所以进行这个动作前,先确定磁盘中的数据是否还有需要,如果是的话先另行备份吧。

3.5 exFAT

[font]exFAT(全称Extended File Allocation Table File System,扩展FAT,即扩展文件分配表)是Microsoft在Windows Embeded6.0(包括Windows CE6.0、Windows Mobile)中引入的一种适合于闪存的文件系统。对于闪存,NTFS文件系统过于复杂,exFAT更为适用。

相对FAT文件系统,exFAT有如下好处:

  1. 增强了台式电脑与移动设备的互操作能力
  2. 单文件大小最大可达16EB(2305 843009 213693 952字节,就是16M个TB,1TB=1024G)
  3. 簇大小可高达32MB
  4. 采用了剩余空间分配表,剩余空间分配性能改进
  5. 同一目录下最大文件数可达65536个
  6. 支持访问控制
  7. 支持TFAT采用该文件系统的闪存盘不支持Windows Vista ReadyBoost。Windows Vista SP1支持该文件系统。

请注意:exFAT只是一个折中的方案,只为U盘而生。[/font]

[font class=“Apple-style-span” style=“font-weight: bold;” id=“bks_cf464ay1”] 需要严格注意的是,这种分区只有vista支持,其他系统不能使用,xp可以通过替换驱动文件的方式支持此格式,但是只能读写,不能格式化[/font]

3.补充一点:整数分区通常的算法是M=(G-1)X4+1024*G,但并不完全准确

硬盘分区 整G整数法(从1g到200g最精确的整数分区)(转)整数分区通常的算法是M=(G-1)X4+1024*G,M为分区时输入的大小.比如我们所需要的分区为10G,则(10-1)X4+1024X10,结果为10276M,实际上这种算法并不准确。

硬盘一般有255磁头,63扇区(此处待考证,一般没那么多的磁头,但后面的结果还是正确的),故每柱面大小为:

512byte x255 x63=8225280bytes=7.84423828125 M

如果要分4G,那么要4×1024M=4096M

需要柱面数为4096÷7.84423828125=522.166

取整数既为523个柱面,应分M数为523×7.84423828125=4102.53662109375M,不管小数点后面几位都进1,也就是4103M,windows就认为是4.00G了。(此处有疑问,为何4103M但windows却识别为整G)

这个方法NTFS和FAT32通用。

4.常用1GB到200GB最精确的整数分区

GB BM
1G 1028M
2G 2056M
3G 3075M
4G 4103M
5G 5123M
6G 6150M
7G 7170M
8G 8198M
9G 9217M
10G 10245M
15G 15367M
20G 20482M
25G 25604M
30G 30726M
35G 35841M
40G 40963M
45G 46085M
50G 51208M
55G 56322M
60G 61444M
65G 66567M
70G 71681M
75G 76803M
80G 81926M
85G 87048M
90G 92162M
95G 97285M
100G 102407M
110G 112644M
120G 122888M
130G 133125M
140G 143362M
150G 153606M
160G 163843M
170G 174088M
180G 184324M
190G 194561M
200G 204806M

你可能感兴趣的:(杂七杂八,5G,java)