无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
楼主: mdyblog

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
发表于 2012-2-13 18:38:39 | 显示全部楼层
这个是NT5的,起始63扇区,31.5K ,DISKPART显示31或者32K  ,不是4K的倍数,没有对齐
未命名1.JPG
回复

使用道具 举报

发表于 2012-2-13 18:45:01 | 显示全部楼层
这个是WIN7的,起始是128扇区,即64K.
未命名.JPG
回复

使用道具 举报

发表于 2012-2-13 20:33:51 | 显示全部楼层
你说的NT5MBR 是XP的吗?  你说 WIN7MBR 我没有。 你能提取一份发给我吗?

xp的就是nt5的mbr,用bootice更新mbr为nt6,提取前440字节就是nt6的引导代码。
回复

使用道具 举报

发表于 2012-2-14 07:21:03 | 显示全部楼层
这是DISKPART的说明部分,那个03PE里面也有,关于对齐的

align=N 是从磁盘开始处到最接近的对齐边界的千字节 (KB) 数,
               一般输入WIN7的默认值 1024,也可以是64,128,256,512

offset=N 创建分区的字节偏移量,即分区起始位置。XP,03等以前的分区
                工具是63扇区,一般输入WIN7的是2048扇区(1024 KB,1M),也可以
                是128,256,512,1024扇区,为4KB的整数倍

大扇区硬盘

    扇区大小为4K的硬盘,使用4096字节(4K)大小的扇区来存储数据.


硬盘的扇区可分区逻辑扇区和物理扇区,但对现在的硬盘来说,逻辑扇区的大小等于物理扇区的大小,其实也并没有严格区分物理扇区和逻辑扇区了。大扇区硬盘的出现,检测硬盘扇区大小时,应考虑逻辑扇区大小和物理扇区大小的关系。
512字节的扇区的大小已经使用超过30年了。并一直使用512字节大小的扇区。

根据西部数据的官方文档,采用了4K大小的扇区的硬盘,如果在向硬盘写入数据时没有使用4K对齐,并且分区也不是4K对齐的话,那么向硬盘写入数据时就会耗费更多的时间。

目前Windows Vista SP1和Window 7在创建分区和文件系统时会取用硬盘设备提供的信息进行高级格式化。
而Windows XP, Windows Vista RTM, Linux, Apple Tiger, Apple Leopard和Apple Snow Leopard对SATA设备和USB设备并没有使用设备提供的信息进行高级格式化。

扇区大小:
物理扇区大小(即512b)。
逻辑扇区大小:扇区大小 = x * 512扇区大小为4K即是4096个字节,是8*512,即4096 bytes。
要使大扇区的硬盘中的ntfs文件系统性能最优化,除了这个分区以4K对齐的,还需要ntfs文件系统中的原数据(就是MFT里的原文件)、目录和簇的开始位置也要4K对齐。

我们知道fdisk的分区默认是按照柱面对齐的,一般一个柱面的大小是: 255个磁头 * 63个扇区/磁道 = 16065 个扇区。


如果一个分区起始于一个 4096 字节(8 个扇区)边界,则表示它对齐。



什么是aligned的磁盘 ?
磁盘每个磁道上扇区的数量都是偶数的。引 导扇区占据了63个扇区,而Windows NTFS的读写单位(簇)也是偶数的。如果分区开始与 第64个扇区,那在读写周期里面经常会跨越磁道进行读写,跨磁道需要磁头重新寻道和定位,这会严重的影响性能。

SSD,在装上系统后我比不觉得像网站所说的快。最后发现问题出在没有更新固件和调整好SSD的偏移量(alignment)。固件更新是主控程式的修改。而分区时aligne(偏移量)设定就是设置好硬盘读写block 的大小。后者尤其重要。它会造成了读写慢的现象。于是我用diskpart.exe 的软件分区,并设置偏移量为64k。
      
        Alignment不是一定就64K才行,只要能被闪存的Page大小整除就可以了,也就是设置的Alignment只要能被4096B整除就没问题。所以从64K到1024K的Alignment,都没问题

        而使用恢复盘和传统分区工具的问题不是这个以KB为单位的Offset,而是在Diskpar(注意不是Diskpart)里用Sector为单位的问题

Windows 将创建基于预定义的扇区数的分区。 在 Windows Server 2003 中的一个磁盘分区的起始位置是该 32nd 或 64 扇区的具体取决于大容量存储控制器中呈现给操作系统信息。

要解决此问题,使用 Diskpart.exe 工具,可以创建磁盘分区并指定 2048 扇区 (1 兆字节) 的起始偏移量。 为 2048 扇区的起始偏移量...若要解决此问题,使用 Diskpart.exe 工具,可以创建磁盘分区并指定 2048 扇区 (1 兆字节) 的起始偏移量。 2048 扇区的起始偏移量涵盖大多数的带区单位大小方案。

注意Windows Server 2003 Service Pack 1 引入 Diskpart 调整分区对齐方式的能力。

默认情况下,Windows 2003及以下版本没有正确对齐分区,这会导致磁盘子系统的性能达不到最理想水平。可以通过使用diskpart.exe实用程序(Windows 2000中的diskpar.exe)创建分区来解决这个问题。这样创建的每个分区其对齐偏移量应为64kb;在默认情况下,创建的每个分区其对齐偏移量为32kb。Windows 2008在默认情况下创建的分区其对齐偏移量为128kb。


物理磁盘每个磁道上有 64 个扇区,NT5 总是从第 64 个扇区开始创建分区,因此,与基础物理磁盘没有对齐。为了保证磁盘对齐,可以使用磁盘分区工具 Diskpart.exe。Diskpart.exe 是 Microsoft 在 Windows Server 2003 Service Pack 1 支持工具中提供的工具,它可以在主启动记录 (MBR) 中明确设置起始偏移量。
Windows Server 2003 将最大隐藏扇区数限制为 63,因此,对于每个磁道具有 63 个以上扇区的磁盘,其默认启动扇区是第 64 个扇区。Windows 2000 和 Windows Server 2003 所创建的所有分区都从第 64 个扇区开始,这使得写入磁盘的每八个数据块中有一个数据块会跨越两个磁道。
要解决此问题,使用 Diskpart.exe 工具,可以创建磁盘分区并指定 2,048 扇区 (1 兆字节) 的起始偏移量。创建主分区对齐 = 1024 kb




SSD优化之NTFS分区闪存块的对齐

SSD优化之NTFS分区256K对齐,提速的原理应该是通过调整第一个NTFS分区的起始位置来保证不会出现NTFS的簇跨越NAND闪存的块(block),从而提高数据读写的效率。

具体来说是这样的,SLC闪存芯片的页/块大小是2KB/128KB,MLC的页/块大小是2KB/256KB或4KB/512KB(再早的MLC还有512B/32KB的,不过现在很少见了)。
也就是意味着每次可以分别以2KB/2KB/4KB为单位来写入数据,但是每次擦除必须要以128KB/256KB/512KB来擦除数据。
因为平衡写入算法的存在,用了一段时间之后的SSD每次写入数据时都必然是先擦除再写入这样一个过程。
如果按照XP之前的起始位置放在LBA63(起始位置之前保留512Bx63=31.5KB)的分区方式,将会导致NTFS分区每32(或64或128)个簇(以现在硬盘的大小,NTFS分区几乎全是4KB/簇),
就会有一个簇跨越了两个闪存块,当系统正好对跨块的簇进行操作时,就会导致需要擦除两个块之后才能写入数据,或是要分别从两个块来读取这些4KB簇的数据,这就降低了读写数据的效率。
通过调整NTFS分区的起始位置,我们就可以避免这种每隔一些簇就有一个跨过闪存块的情况,从而提高读写的效率。

这个开始位置应该放在哪里呢?
如果只是单通道的闪存设备,只要NTFS分区的开始位置前面空出512KB,也就是开始位置放在LBA1024处,就可以保证128KB/256KB/512KB块大小的闪存芯片都可以实现NTFS分区对齐了。
但事实上,几乎所有的SSD都不是单通道的,比如最常见的JM602方案是8通道的,Intel X25-M是10通道的,Intel X25-V是5通道的,这时候应该空出多少呢?
实际上,多通道的闪存设备也是把数据拆成一个一个的块,然后分别对每个通道进行读写操作,这个块的大小和所使用的闪存芯片的块的大小是一样的。
Intel的主控对写入进行了优化,随机4KB写入并不是即时写入,而是在缓存中积累达到256KB(正好是Intel使用的闪存芯片的块大小)后再一次性写入。
如果这256KB数据会再进一步拆分然后才写到各个通道的话,10通道的X25-M必然会比5通道的X25-V要快,但实际上却是相差无几,这就说明多通道写入时最小的数据单位也是闪存块的大小。)
因此,可以不考虑设备是几通道的,直接把第一个分区的起始位置设在512KB之后的那个簇,也就是LBA1024处即可。
这个操作,XP之前的操作系统自带的分区工具是无法完成的,必须借助第三方工具;但是Vista/Win7的磁盘管理工具和光盘安装的分区界面进行分区时,
会自动把第一个分区设在LBA2048处,正好是1024的倍数,因此直接使用Vista/Win7来分区就自动完成了NTFS分区对齐闪存块的操作。
PS: 当然也可以根据自己固态硬盘的闪存类型来设置,比如SLC(2KB/128KB)的设在LBA256,MLC(2KB/256KB)的设在LBA512处,MLC(4KB/512KB)的设在LBA1024处等。
直接把硬盘挂在装好Vista/Win7的机器上,使用磁盘管理工具来分一下区就可以了。
回复

使用道具 举报

发表于 2012-2-14 07:27:40 | 显示全部楼层
原帖由 andos 于 2012-2-13 14:13 发表

为什么GPT不用考虑?


他前面说了,不熟悉GPT,那怎么写?
把MBR这些写好了就够了.

GPT可以使用WIN7或者WIN8磁盘管理,新硬盘第一次有个选项, MBR或者GPT.
其DISKPART.也提供转换功能, CON MBR  ,CON GPT 的命令行.

我那个WIN7PE下,可以实现.能不能实现,看他能不能研究相关写入磁盘的代码了.
回复

使用道具 举报

发表于 2012-2-14 07:29:31 | 显示全部楼层
WIN7的磁盘管理,分区时,大小好像还有个自动取值,比如,本来想全部分配空间,但实际会有剩余.
回复

使用道具 举报

发表于 2012-2-14 07:57:40 | 显示全部楼层
骨头版PE.rar,,

可以直接更换PECMD, ISO内有重新制作的工具和模板.
如果改为IMG格式,也可以直接改,VDM新建一个IMG(40M或者更大),把ISO根目录全部文件,复制到IMG,卸载保存即可.

不用做其它任何修改.

这样方便在相同软件环境测试
回复

使用道具 举报

发表于 2012-2-14 13:51:18 | 显示全部楼层
可否再增加 NAME 命令

格式:NAME <变量名><=><文件名>
功能:返回指定文件名的基本名(无目录、无扩展名)
参数:■变量名: 用于保存命令返回值的变量名
         ■文件名: 被检测的合法的文件名称
示例:NAME aFileName=C:\WINDOWS\NOTEPAD.EXE 或 NAME aName=%CurDir%\Path1\Path2\FileName
备注:※指定的文件名为分区的根目录时,该命令的返回结果为空值;
         ※示例1的返回结果为"NOTEPAD",示例2的返回结果为"FileName"。
回复

使用道具 举报

 楼主| 发表于 2012-2-14 16:00:50 | 显示全部楼层
原帖由 bahmo 于 2012-2-14 13:51 发表
可否再增加 NAME 命令

格式:NAME
功能:返回指定文件名的基本名(无目录、无扩展名)
参数:■变量名: 用于保存命令返回值的变量名
         ■文件名: 被检测的合法的文件名称
示例:NAME aFileName=C: ...


挺好的.

│格式│FNAM <变量名><=><文件名>               
├──┼────────────────────
│功能│返回指定"文件名"的主名(不带"."和扩展名)
├──┼────────────────────
│参数│■变量名: 用于保存主名的变量名称;     
│      │■文件名: 合法的文件名称。
回复

使用道具 举报

发表于 2012-2-14 21:32:31 | 显示全部楼层
喜欢fba,但不知道如何定义成自己喜欢的,
动手研究的话,得研究一段时间,使用现成的!
仔细看看
回复

使用道具 举报

发表于 2012-2-15 00:10:49 | 显示全部楼层
请楼主帮忙,为什么我把LOOP放入函数,就会进入死循环?
1、如下代码正常:
envi i=1
   loop #%i%<10,
     {mess in loop,i=%i%
      ifex $%i%=5,exit loop
      calc i=%i%+1
     }
mess out loop,i=%i%
2、如下代码陷入死循环,没有任何显示,只能在任务管理器中结束PECMD。
envi i=1
AAA
_SUB AAA
   loop #%i%<10,
     {mess in loop,i=%i%
      ifex $%i%=5,exit loop
      calc i=%i%+1
     }
   mess out loop,i=%i%
_END
回复

使用道具 举报

 楼主| 发表于 2012-2-15 00:49:19 | 显示全部楼层

回复 #1 2012abc19701 的帖子

[更新155#225]PECMD-32.2012.1除夕版.多窗口多线-U19+裸机系统+18M酷MiniPE


PECMD-32.2012.1除夕版.多窗口多线-U19(已升级) +裸机系统 抢鲜版 + 18M-COOL  MiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/
   
   * PART完善分区/MBR操作,  + NTPC  EXEC* 同步到控件. FNAM

EXEC*   @Edit1=!cmd /c ping  127.0.0.1 2>&1

[ 本帖最后由 2012abc19701 于 2012-2-15 01:44 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-2-15 01:31:32 | 显示全部楼层
原帖由 lmle 于 2012-2-15 00:10 发表
请楼主帮忙,为什么我把LOOP放入函数,就会进入死循环?
1、如下代码正常:
envi i=1
   loop #%i%

请用U21版

......... .........
Snap1.gif


Snap2.gif
回复

使用道具 举报

 楼主| 发表于 2012-2-15 01:32:32 | 显示全部楼层

回复 #223 seachina 的帖子

"fba"  是什么? ..........................................
回复

使用道具 举报

发表于 2012-2-15 07:55:17 | 显示全部楼层
FBA,我也不知道,貌似另外的工具.

先发现问题,可能我的命令行不对,
使用DISKPART,新硬盘,LIST DISK 可以显示信息,

使用PECMD PART LIST DISK 等,没有任何显示? 是不是我写的不对?如图.

ALIGN 以后能否再加如2M 4M ,这个数是否只能是64,128,512,1M, 如果是固定这几个,请加入2M ,4M

ALIGNEND, 如果不写,是不是使用前面ALIGN的值?

SHOW 命令,说明部分,仍然有PRTNEW参数,是否已经无效了?

[ 本帖最后由 dvd008 于 2012-2-15 08:19 编辑 ]
1.JPG
2.JPG
回复

使用道具 举报

发表于 2012-2-15 08:10:15 | 显示全部楼层

回复 #227 2012abc19701 的帖子

fba是FbinstTool生成的文件,FbinstTool使用是来制作启动U盘,论坛常说的UD区就是用它 制作的,也可以用到硬盘上效果与您的工具类似。
回复

使用道具 举报

发表于 2012-2-15 08:15:40 | 显示全部楼层
如图操作,分区失败,并且,破坏了写入的那个大IMG

ALIGN ALIGNEND 是否必须,是否同时存在?

START_0 和这个ALIGN是否冲突?
如,指定ALIGN=128K ,同时又指定ATART_0 为130M
3.JPG
回复

使用道具 举报

发表于 2012-2-15 08:42:44 | 显示全部楼层
-a 0 0 0 指什么呢?
我用这个后,破坏了原来写入的大IMG,不能进入菜单了,
但是,用光盘PE启动,分区情况没有变.
4.JPG
回复

使用道具 举报

发表于 2012-2-15 08:48:56 | 显示全部楼层
原帖由 2012abc19701 于 2012-2-14 16:00 发表


挺好的.

│格式│FNAM               
├──┼────────────────────
│功能│返回指定"文件名"的主名(不带"."和扩展名)
├──┼────────────────────
│ ...


回報bug
-----------------------------------------------------------------
FNAM aFileName=C:\WINDOWS\NOTEPAD.EXE  
MESS %aFileName% @11 #ok
-----------------------------------------------------------------

\NOTEPAD
多了\

[ 本帖最后由 bahmo 于 2012-2-15 08:50 编辑 ]
回复

使用道具 举报

发表于 2012-2-15 09:08:09 | 显示全部楼层
-CLEAR,是指具体什么?

还有强制删除某文件,某文件夹,这个功能在哪里?
回复

使用道具 举报

发表于 2012-2-15 09:18:48 | 显示全部楼层
如图,分区操作,貌似成功,
起始正确,但是,大小不是32M,而是0

并且,破坏了那个大IMG,无法进入菜单,也可能是MBR部分

分区1,始终无法删除.

另外,分区类型, 7, 07, 0X07 是否都兼容? 我提供那个是ID表是0X07这样的
有时操作7,这样,不成功

[ 本帖最后由 dvd008 于 2012-2-15 09:20 编辑 ]
5.JPG
6.JPG
回复

使用道具 举报

发表于 2012-2-15 09:34:51 | 显示全部楼层
另外,DISKPART,如果显示了1个分区,

PECMD分区就要选3,才能成功,但是,目前LEN,如32M,2048K,均无效, 实际都是0
回复

使用道具 举报

 楼主| 发表于 2012-2-15 09:43:55 | 显示全部楼层

[更新156#236]PECMD-32.2012.1除夕版.多窗口多线-U22+裸机系统+18M酷MiniPE


PECMD-32.2012.1除夕版.多窗口多线-U22(已升级) +裸机系统 抢鲜版 + 18M-COOL  MiniPE(已升级)
***已通过启动PE测试***
下载:
http://mdyblog.blog.163.com/blog/static/106150119201202591855298/

+ NAME  SIZE SITE SCRN  // ADSL  PINT


[ 本帖最后由 2012abc19701 于 2012-2-15 09:45 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-2-15 09:47:53 | 显示全部楼层
原帖由 bahmo 于 2012-2-14 13:51 发表
可否再增加 NAME 命令

格式:NAME
功能:返回指定文件名的基本名(无目录、无扩展名)
参数:■变量名: 用于保存命令返回值的变量名
         ■文件名: 被检测的合法的文件名称
示例:NAME aFileName=C: ...


对,还是按你说的 NAME
回复

使用道具 举报

发表于 2012-2-15 09:56:53 | 显示全部楼层
原帖由 2012abc19701 于 2012-2-15 09:43 发表
[img]http://bbs.wuyou.net/images/default/agree.gifhttp://bbs.wuyou.net/images/default/agree.gif[/img]http://bbs.wuyo ...


U22版還是有問題

-----------------------------------------------------------------
FNAM aFileName=C:\WINDOWS\NOTEPAD.EXE  
MESS %aFileName% @11 #ok
-----------------------------------------------------------------

\NOTEPAD
多了\

只要NOTEPAD

SCRN命令也有問題
當前設定為1024*768

卻得出1032*1032

SIZE iSize=b:\PECMD.exe
MESS %iSize% @11 #ok

卻得出%iSize%

[ 本帖最后由 bahmo 于 2012-2-15 11:11 编辑 ]
回复

使用道具 举报

发表于 2012-2-15 11:24:34 | 显示全部楼层
FIND得不到正确结果。测试命令如下:
envi i=3
envi A=中文
envi B3=中文
FIND $%A%=%B%i%%,mess 找到“%A%”。
但是改成:FIND $%A%=%B3%,mess 找到“%A%”。则正常。
回复

使用道具 举报

 楼主| 发表于 2012-2-15 12:52:56 | 显示全部楼层

[更新到157#240]PECMD-32.2012.1除夕版.多窗口多线-U23+裸机系统+18M酷MiniPE

[更新157#240]PECMD-32.2012.1除夕版.多窗口多线-U23+裸机系统+18M酷MiniPE


PECMD-32.2012.1除夕版.多窗口多线-U23(已升级) +裸机系统 抢鲜版 + 18M-COOL  MiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/
回复

使用道具 举报

 楼主| 发表于 2012-2-15 13:00:25 | 显示全部楼层
原帖由 dvd008 于 2012-2-15 07:55 发表
FBA,我也不知道,貌似另外的工具.

先发现问题,可能我的命令行不对,
使用DISKPART,新硬盘,LIST DISK 可以显示信息,

使用PECMD PART LIST DISK 等,没有任何显示? 是不是我写的不对?如图.

ALIGN 以后能否 ...


A:
PART list disk,name  
MESS  disk[%name%]
PART list disk 0,name  
MESS  disk0[%name%]
PART list part 0,name
MESS  disk0,part[%name%]
PART list part 0#1,name
MESS  part0--1[%name%]


Q: ALIGN 以后能否再加如2M 4M ,这个数是否只能是64,128,512,1M, 如果是固定这几个,请加入2M ,4M
A:   没有限制.  随便写 =2M =4M =8M =16M =1G .....   =256K ...

Q: ALIGNEND, 如果不写,是不是使用前面ALIGN的值?
A: 目前 没有-alignend 开关,则柱面对齐.
           有-alignend, 但后面没有具体参数=??, 从-align 的值

Q:  SHOW 命令,说明部分,仍然有PRTNEW参数,是否已经无效了?
A: 已经无效.
回复

使用道具 举报

 楼主| 发表于 2012-2-15 13:07:23 | 显示全部楼层
原帖由 dvd008 于 2012-2-15 08:15 发表
如图操作,分区失败,并且,破坏了写入的那个大IMG

ALIGN ALIGNEND 是否必须,是否同时存在?

START_0 和这个ALIGN是否冲突?
如,指定ALIGN=128K ,同时又指定ATART_0 为130M


Q: ALIGN ALIGNEND 是否必须,是否同时存在?
A: 取决于需要. 就软件,没有要求.

Q: START_0 和这个ALIGN是否冲突?
如,指定ALIGN=128K ,同时又指定ATART_0 为130M
A: 没有 -align 开关时, 仅作物理扇区对齐修正start/len,  start 向大修, len 向小修
       有 -align 开关时, 先作物理扇区对齐修正提供的参数, 再按修正后的参数修正start/len,  start 向大修, len 向小修
    130M 是 128K 对齐,所以实际没有修正.

BTW:  start 是绝对数值,即从磁盘开始计算的.

[ 本帖最后由 2012abc19701 于 2012-2-15 13:08 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-2-15 13:10:42 | 显示全部楼层
原帖由 dvd008 于 2012-2-15 08:42 发表
-a 0 0 0 指什么呢?
我用这个后,破坏了原来写入的大IMG,不能进入菜单了,
但是,用光盘PE启动,分区情况没有变.


参数不全:
PART  [磁盘]#分区 -a 0 0 0
这样就从分区表 彻底删除该分区.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2021-4-21 22:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表