无忧启动论坛

标题: 【原创】【更新】gdisk32快速 整数 分区工具 批处理 [打印本页]

作者: sosy    时间: 2009-3-6 16:02
标题: 【原创】【更新】gdisk32快速 整数 分区工具 批处理
一分钟搞掂一个硬盘

潜水很长时间了,也在这里找了很多东西,今天就发个自己做的 gdisk32 批处理,以对 PE 制作做点贡献,也不知算不算。

看了网上很多 gdisk32 的 GUI,觉得少了很多功能,或者是统一的分区大小和模式。

所以只有自己做了,其实写好有几个月了,今天才舍得发呀 :)

可以很快速的吧一个硬盘分成若干个,你想要的整数分区,分区后询问是否格式化,用NTFS还是FAT32可选

先看看界面:

启动界面,选择硬盘:


主界面,选择操作:


删除分区界面:


新建分区界面:

建n个分区,输入前n-1个分区的大小
已有分区(如C:)0代替

分区后询问是否格式化,用什么方式(NTFS、FAT)格式化

批处理文件下载(已更新3月8日): gdisk.rar (1.31 KB, 下载次数: 1898)

批处理不加密的,自由修改。但请修改的同志手下留情,保留本作者信息。

gdisk32程序的文件名请保持原名:gdisk32.exe,如果没有这个东西的到网上找找或者到这里下载
http://sosy.vicp.net/disk/sosy/gdisk32.exe

大家用用看,如果好用请回帖捧个场啦。

3月8日
关于算法的几点说明:

1.Gdisk的分区大小:Gdisk并非输入多少MB就分多少MB,而是与输入MB数“最近的磁道柱面”。换句话说就是会比输入的多些,Partition Manager 也是如此;而 Fdisk 和 Partition Magic(PQ)则是输入多少分多少。

2.整数分区算法
在Windows中NTFS和FAT32的整数分区的MB数实际上是不一样的,比如100GB,NTFS应为10245MB,而FAT32应为10276,相差近30MB
(精确测试请用Fdisk或PQ)
NTFS算法:标准算法见10楼lianjiang的回复,但仅适用于Fdisk或PQ。而对于Gdis来说,应该是n*1024,因为其分区是“最近的磁道柱面”,多分。如10GB,标准计算应分10245MB,而Gdisk输入10240实际分10244.5MB,Windows实际显示10GB,因此Gdisk NTFS 算法 n*1024 即可(换句话说就是在Gdisk中输入10240就等于分了10244.5≈10245,所以别输入10245,否则将获得10.1G)

FAT32算法:目前没有很好的算法,有一个近似的算法,n*1028-4,不要笑,这是真的,这是目前最好的算法了。可以用Fdisk精确实验。对于Gdisk,这就麻烦了,没有很好的办法。因为它总是多分,我只有多减一点:n*1028-8,实测部分分区可以整数,比如1、2、5、10、20、25、100;部分分区多0.01、0.1:8、35、40、45、50、55、60、80。因此不建议用这个分FAT32分区,用Fdisk或PQ吧。要用,就分小点,或者100



目前更新

1.改进FAT算法,至少可以有部分大小实现整数。此问题在Gdisk只有近似解

2.删除所有分区不再询问是否再删(lianjiang建议)。



使用方法
使用时别插u盘,否则检测硬盘很漫长
1.删除分区:根据显示的分区列表,输入分区序号或all,比较简单就不多说

2.建立分区
输入分区大小(两种情况)
a.(主要方式,建议使用)硬盘无分区,一次操作可完成所有分区:输入各分区大小,中间以空格或“,”(英文逗号)分隔,但剩余空间的分区大小(最后一个分区)不输入,会自动分。
例如160GB硬盘,输入“10 40 50”,则分为:10GB,40GB,50GB,49GB(剩余空间的分区)
(注:物理硬盘1GB=1000,000,000B,操作系统1GB=1024*1024*1024B)

b.硬盘已经有分区,继续再分:(请保证硬盘还有未划分分区空间,否则没意义)输入0代替表示已有分区,再输入所要分的大小,中间以空格或“,”(英文逗号)分隔,但剩余空间的分区大小(最后一个分区)不输入,会自动分。
例如,已有主分区,扩展分区和2个逻辑分区,实际是3个分区,还有50GB未使用空间,输入“0 10 20”,则增加三个分区:10GB,20GB以及不足20GB的剩余分区

注:输入的分区大小之和不要大于未使用空间的大小。

输入分区格式:NTFS(2000、XP及以上系统建议使用)或FAT,不格式化输入N


NTFS没有问题


[ 本帖最后由 sosy 于 2009-6-29 12:06 编辑 ]
作者: basdk    时间: 2009-3-6 16:13
楼主辛苦了,好东西,谢谢分享!
作者: xLantu    时间: 2009-3-6 17:32
很不错,可以用用啊  
作者: lanzl    时间: 2009-3-6 17:54
测试了下好像分区设成NTFS时有问题,而且选FAT时,也并没有做格式化处理,PE中虽然有分配盘符但还是提示“磁盘未格式化”

[ 本帖最后由 lanzl 于 2009-3-6 18:50 编辑 ]
作者: sosy    时间: 2009-3-6 19:15
哦,是吗,等我再试试。前边我用过很多次都没问题的呀,我再试试
作者: lianjiang    时间: 2009-3-6 19:15
仅仅X1024,能实现完美整数分区吗?
作者: 老鼠无敌    时间: 2009-3-6 19:26
谢谢楼主.多多制作阿.哈哈
作者: wadai2005    时间: 2009-3-6 19:30
支持原创,我也要努力的学习了,呵呵
作者: sosy    时间: 2009-3-6 19:41
标题: 回复 #6 lianjiang 的帖子
可以的,不过我刚刚认真测试后发现NTFS没有问题,但FAT32出现 “.9” 的问题,有待改进,不过现在一般用NTFS了,哈
作者: lianjiang    时间: 2009-3-6 19:41
照下面的方法分区,才能实现完美整数分区。 楼主的基本上得到的都是(XX-1).99G
----------------------------------------------------------
最精确硬盘分区的算法如下(来自网络搜索):

硬盘一般有255磁头,63扇区,故每柱面大小为:
512byte x 255 x 63=8225280bytes =7.84423828125 MB
如果要分40GB,那么要40x1024MB=40960MB
需要柱面数为40960÷7.84423828125=5221.66
取整数既为5222个柱面
应分M数为5222x7.84423828125=40962.6123046875MB
不管小数点后面几位都进1,也就是40963MB,windows就认为是40GB了。
这个方法NTFS和FAT32通用。
作者: sosy    时间: 2009-3-6 19:52
这个是刚刚测试的截图:
160GB硬盘
分区时输入:10 25 50
下面是效果
NTFS没有问题的


下面是删除分区重启后测试FAT
同样输入:10 25 50
很遗憾,有 .9 的问题。等我改进下,或者哪位大虾帮帮忙,给个算式。不过Gdisk32的算法不同于其它的工具,比如NTFS的乘1024就可以整数啦。各位测试的时候最好用新版本


作者: lianjiang    时间: 2009-3-6 19:58
原帖由 sosy 于 2009-3-6 19:52 发表
这个是刚刚测试的截图:
160GB硬盘
分区时输入:10 25 50
下面是效果
NTFS没有问题的
55722

下面是删除分区重启后测试FAT
同样输入:10 25 50
很遗憾,有 .9 的问题。等我改进下,或者哪位大虾帮帮忙 ...



算法见10楼,可惜没有硬盘测试。而虚拟机只有16G不到可试。
作者: sosy    时间: 2009-3-6 20:11
原帖由 lianjiang 于 2009-3-6 19:58 发表



算法见10楼,可惜没有硬盘测试。而虚拟机只有16G不到可试。


虚拟机中我用160G可以试。

在gdisk32中不能这样算了呀,它的分区已经包含柱面了。NTFS的用 1024相乘就是整数了。可是FAT的我看了分出来的字节数与NTFS中一样,比如40GB就是40962.6MB呀,跟用你的10楼的算法结果是一样的。就是FAT整只认做39.9GB,若是NTFS就认作40.0GB



[ 本帖最后由 sosy 于 2009-3-6 20:12 编辑 ]
作者: lianjiang    时间: 2009-3-6 20:18
原帖由 sosy 于 2009-3-6 20:11 发表


虚拟机中我用160G可以试。

在gdisk32中不能这样算了呀,它的分区已经包含柱面了。NTFS的用 1024相乘就是整数了。可是FAT的我看了分出来的字节数与NTFS中一样,比如40GB就是40962.6MB呀,跟用你的10楼的算 ...


根据算法,40G应是40963MB,你输入40963MB分区(NTFS及FAT32)看看,最终显示的是多少。
作者: blbl    时间: 2009-3-6 20:43
谢谢楼主的好作品 这个在维护时用
整数分区? 不错 嘿嘿
作者: lianjiang    时间: 2009-3-6 21:08
实测结果显示,不管是NTFS还是FAT32,10楼的办法都是正确的。
下面是用本人的“Gdisk32一键分区”分区结果及显示值。

10G 根据你的算法,实际划分10244.5MB。
10楼的方法计算出是10245,实际划分10252.4MB。
差别就在这里。




作者: sosy    时间: 2009-3-6 21:59
谢谢lianjiang 了,刚刚离开了,我会进一步改进的。
作者: chenbaker    时间: 2009-3-6 22:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: aidixiao    时间: 2009-3-6 22:51
好东西,收藏了!!!谢谢。
作者: HY    时间: 2009-3-7 00:35
很不错,试试再发表看法。
作者: tydzjing    时间: 2009-3-7 02:07
标题: 回复 #10 lianjiang 的帖子
现在确实都是按这个方法计算的
作者: lianjiang    时间: 2009-3-7 08:12
原帖由 sosy 于 2009-3-6 21:59 发表
谢谢lianjiang 了,刚刚离开了,我会进一步改进的。


从完美的角度讲,提出以下建议:

1,在使用 all删除后,不要再出现是否继续删除的提示了,因为已无分区可删。
2,增加对输入数值的判断,当出现输入值大于最后的可用空间时,自动处理成把可用空间创建为最后分区。从而避免可能出现的输入不当问题。
作者: sosy    时间: 2009-3-8 23:49
原帖由 lianjiang 于 2009-3-7 08:12 发表


从完美的角度讲,提出以下建议:
1,在使用 all删除后,不要再出现是否继续删除的提示了,因为已无分区可删。
2,增加对输入数值的判断,当出现输入值大于最后的可用空间时,自动处理成把可用空间创建为 ...


第1项已经改进了

第2项嘛,太难了,还是输入前靠人脑运行算了,哈

另外,10楼的算法虽然是“通用”(网上都这样说),但实际上只是用于NTFS,FAT是其它的算法*1028-4。我在1楼已经加入了说明。
作者: sosy    时间: 2009-3-9 15:22
自己顶一下吧,完了就让它石沉大海了
作者: 爱好所有    时间: 2009-3-9 17:04
很好用,谢谢了!!!!!
作者: cdliuwei    时间: 2009-3-9 22:14
很不错的工具,谢谢楼主分享
作者: trianv    时间: 2009-3-27 21:55
好像是个笔误,一楼说明上写的fat格式是1028-4,,脚本写成1028-8了,
作者: sosy    时间: 2009-3-28 09:43
原帖由 trianv 于 2009-3-27 21:55 发表
好像是个笔误,一楼说明上写的fat格式是1028-4,,脚本写成1028-8了,


这是一楼原文:
目前没有很好的算法,有一个近似的算法,n*1028-4,不要笑,这是真的,这是目前最好的算法了。可以用Fdisk精确实验。对于Gdisk,这就麻烦了,没有很好的办法。因为它总是多分,我只有多减一点:n*1028-8
作者: fujianabc    时间: 2009-3-28 19:21
FAT32很难整数是有原因的,因为windows计算FAT32分区容量时是从数据区开始计算的,
要扣除数据区前面的启动扇区FAT表部分,对于FAT32分区,而fat表大小与分区大小和格式化时选择的簇大小都有关。由于分区总大小是柱面容量的整数,fat32分区又要扣掉上面两部分容量,所以很难得到整数容量的。

ntfs简单些,因为容量是从分区第一个扇区开始算的。

[ 本帖最后由 fujianabc 于 2009-3-28 19:25 编辑 ]
作者: noskin    时间: 2009-3-28 23:02
谢谢楼主分享这么好用的批处理,真心感谢。
作者: wcwtnui    时间: 2009-4-10 23:00
楼主辛苦了,收藏。呵呵。
作者: 78255492    时间: 2009-4-11 08:14
谢谢分享哦。。。下来用用~~~
作者: wanghh    时间: 2009-4-11 08:33
好东西,谢谢楼主!~~~~~~~~~
作者: leevenbo    时间: 2009-4-11 10:46
整数的看起来就比较美观
作者: gumei0862    时间: 2009-5-9 13:49
非常方便我等菜鸟的软件,这下分区应该容易些了,谢谢啦!
作者: bgwhw    时间: 2009-5-9 14:21
最近发现的好东西真多,我这个菜鸟也得要一份!谢谢!
作者: yewuqiu    时间: 2009-5-9 17:02
也可以用于GDISK64.EXE
解决了64bit下的分区软件没有gui
不错
谢谢

建议把10楼的朋友的方法加到提示里,方便大家分整数分区


作者: sosy    时间: 2009-6-8 20:25
标题: 回复 #37 yewuqiu 的帖子
已经在一楼解释过了,不用10楼的方法也已经是整数了,如果用了就有余数了。好好看看吧。NTFS可以整数,Fat32无法....
作者: fyqingshan    时间: 2009-6-11 00:15
支持,下来学习啦
作者: edwinsunday    时间: 2009-6-28 07:32
真的很好,小马的PE加上这个功能吧~~~
作者: lys00    时间: 2009-6-28 10:16
感谢楼主 收藏了,有个问题请教:

说明中提到:
b.硬盘已经有分区,继续再分:(请保证硬盘还有未划分分区空间,否则没意义)输入0代替表示已有分区,再输入所要分的大小,中间以空格或“,”(英文逗号)分隔,但剩余空间的分区大小(最后一个分区)不输入,会自动分。
例如,已有主分区,扩展分区和2个逻辑分区,实际是3个分区,还有50GB未使用空间,输入“0 10 20”,则增加三个分区:10GB,20GB以及不足20GB的剩余分区

问题是:如果一块硬盘已有C D E三个分区,还有剩余空间20G,想把这20G剩余空间划分成一个F分区,是否输入"0"即可?
作者: sosy    时间: 2009-6-29 11:56
原帖由 lys00 于 2009-6-28 10:16 发表
感谢楼主 收藏了,有个问题请教:

说明中提到:
b.硬盘已经有分区,继续再分:(请保证硬盘还有未划分分区空间,否则没意义)输入0代替表示已有分区,再输入所要分的大小,中间以空格或“,”(英文逗号)分隔, ...


按理应该是这样的,不过我没有试过,你试试看吧,结果如何,麻烦说一声哦!
作者: lys00    时间: 2009-7-3 18:49
只是想到了这个方案,可没盘测试,以后有机会试试。
作者: xzxcvbnm    时间: 2009-7-3 18:56
1.请问这个
gdisk32.程序存放在哪里?(U盘中?PE中?...?如要分区新硬盘,gdisk放何处?)怎么放?
2.分区一完成,主分区就已自动激活?非主分区是否也已激活?否则要激活D分区怎么操作?

先收藏,LZ辛苦!!!

[ 本帖最后由 xzxcvbnm 于 2009-7-3 19:21 编辑 ]
作者: sosy    时间: 2009-7-6 19:55
原帖由 xzxcvbnm 于 2009-7-3 18:56 发表
1.请问这个
gdisk32.程序存放在哪里?(U盘中?PE中?...?如要分区新硬盘,gdisk放何处?)怎么放?
2.分区一完成,主分区就已自动激活?非主分区是否也已激活?否则要激活D分区怎么操作?

先收藏,LZ辛苦!!!

1.放在U盘中,U盘启动;放在PE中也可以,分新硬盘只要不放在待分区的新硬盘上就可以,正在用的硬盘有未使用的空间要分的,放在当前硬盘也可以。
2.主分区自动激活,非主分区是不能激活的,这个批处理不能激活D盘,其它软件也不能,除非D盘也是主分区,且激活D,C就不能激活。

另外,你要激活D盘干什么?装双系统?!如果是,装双系统需要激活D盘吗?———不需要
作者: xzxcvbnm    时间: 2009-7-7 03:01
非常感谢sosy 热心指教!!!!!!!!!!!!!!!!!!!!!!!
作者: yue2007    时间: 2009-7-7 14:57
谢谢楼主,下载了,谢谢!!
作者: zxyy    时间: 2009-7-7 15:04
支持一个了,谢谢你了,。不错、
作者: lfm    时间: 2009-10-5 08:41
从手工计算的角度来说,实际上10楼的才是正确的方法,这对FAT32和NTFS都通用

网上已经有朋友验证楼主的FAT32分区方法(1028*GB数-4)是错误的,分区容量大的时候在WIN下显示有余数
作者: 四海皆狂龙    时间: 2009-10-5 10:25
这个计算还真是复杂啊
作者: sosy    时间: 2009-10-31 13:22
原帖由 lfm 于 2009-10-5 08:41 发表
从手工计算的角度来说,实际上10楼的才是正确的方法,这对FAT32和NTFS都通用

网上已经有朋友验证楼主的FAT32分区方法(1028*GB数-4)是错误的,分区容量大的时候在WIN下显示有余数


FAT32和NTFS的计算方法真的不一样,你用虚拟机在DOS下用Fdisk或PQ分分试试就知道了,做实验要严谨,你可以从小到大多试几种不同大小的分区。
作者: lianjiang    时间: 2009-10-31 20:53
才浮上水面,就给挪这里来了,呵呵。
支持一下。

根据你的提示,改进了算法,现在Gdisk32一键分区在我已验证的范围内,fat32的也已实现整数分区。
作者: dingwanz    时间: 2010-1-28 23:14
楼主辛苦了,好东西,谢谢分享!
作者: taiji    时间: 2010-4-25 19:14
怎样修改成自动版的呢??
作者: sosy    时间: 2010-5-14 23:27
原帖由 taiji 于 2010-4-25 19:14 发表
怎样修改成自动版的呢??

很久没来了。
自动的?自动的就是死的,不同的硬盘大小,不同的人,不同的用途,分区大小、数量都会有区别。所以还是手动的实用、灵活。

网上有很多都是自动的,如果需要也可以去搜搜。
作者: cwlywh    时间: 2010-5-14 23:30
刚好找到这软件。刚好进来。。一刷新就看见你回复了。。
真是巧..

嗯.下载来试一下的时候点开,
显示不是内部或外部命令.也不是可运行的程序...或批处理文件.

还有那个EXE文件的下载地址已经失效..麻烦重传一个..!

[ 本帖最后由 cwlywh 于 2010-5-14 23:31 编辑 ]

QQ截图未命名.jpg (19.04 KB, 下载次数: 33)

QQ截图未命名.jpg

作者: sosy    时间: 2010-9-8 01:33
原帖由 cwlywh 于 2010-5-14 23:30 发表
显示不是内部或外部命令.也不是可运行的程序...或批处理文件.
还有那个EXE文件的下载地址已经失效..麻烦重 ...


那是因为你没有gdisk32.exe文件,而且我提供的gdisk32.exe下载地址已经失效了,所以得自己找了,在下载站或其他地方搜索下,应该能找到的。
作者: TCLSHX    时间: 2010-11-20 12:26
顶帖,希望弄出个支持多个主分区的来
作者: D@peng    时间: 2010-11-23 06:51
期待更完善的作品~~~~~
作者: wama    时间: 2011-1-2 14:40
這個比gui版好用些嗎?




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3