无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1861|回复: 11
打印 上一主题 下一主题

[转帖]深入剖析微软系统的格式化冲突

[复制链接]
跳转到指定楼层
1#
发表于 2006-7-4 13:49:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
转至电脑报
  对于微软操作系统来说,格式化是经常发生的事情。但是在格式化过程中同样会出现很多问题,面对格式化中出现的问题,很多朋友都觉得不知所措。下面这位朋友在遇到格式化冲突的问题之后,却是积极地进行研究,甚至通过实验来发掘问题背后的东西,这可以说是学习电脑值得倡导的一种做法。

  如果有朋友问:“我在用DOS启动盘启动后格式化了C盘,重启后照样进入了原先C盘的操作系统,反而D盘的内容全部不见了。”你会毫不犹豫地回答:“那是因为你的C盘在装系统时或装了系统后被转换成了NTFS格式,而NTFS格式的C盘在实DOS模式下不可见,所以你在DOS中见到并格式化的C盘其实是WIN里面的D盘。”事实如此,NTFS格式的分区在实DOS模式下的不认盘符已经是大多数朋友掌握的知识。

  但如果反过来问:“我在用DOS启动盘启动后格式化了D盘,重启后硬盘居然进不了系统,经查看D盘的数据还在,反而C盘的数据没有了。”相信会被搞得一头雾水。下面我们就通过一个实验来解决这个故障现象。为方便说明,对Win2000(NT5.0)/WinXP(NT5.1)/Win2003(NT5.2)我们在下面简称“NT系统”;而“DOS启动盘”则指的是我们现在最常用到的Win98版本的DOS启动盘(MSDOS7.1)。为避免在说清楚问题时盘符上的混淆以及我们针对的故障现象,硬盘的分区格式也定为最常用的FAT32格式。

  现在我们以标准格式进行操作来做实验。

  第一步:DOS启动盘启动,用FDISK对硬盘进行分区:主分区(C盘)、扩展分区、逻辑分区1(D盘)、逻辑分区2(E盘)、激活主分区。重启后对三个分区用FORMAT进行格式化。(这一步操作也可用PQ或DM进行)

  第二步:继续用NT系统光盘启动安装系统至C盘。

  第三步:安装完成后进入NT系统。打开我的电脑,右击D盘,选择“格式化”(文件格式仍旧选择FAT32)。完成格式化后再往D盘随便复制几个文件,以方便后来查看格式化结果。

  第四步:重启后用DOS盘启动系统,再用FORMAT命令对D盘进行格式化:A:\>format d:或A:\>format d:/q

  第五步:重启,故障出现:C盘数据全部丢失,D盘文件仍然存在。

  分析:只要跳过上面第三步的操作,无故障发生,那我们就从执行第三步操作的前后找起,执行完第二步后我们先不急于执行第三步,而是用DOS启动盘启动,用DEBUG调入D盘的0扇区数据,查看其BPB表中的变化(一些无影响的BPB表数据这里不介绍了)

  A:\>debug
  -L 100 3 0 1
  -D 11C L4
  B7 72 13 02
  -Q

  上面操作显示的字节十六进制值在BPB表中定义为特殊隐含扇区数,下面略述一下其在FAT32和FAT16格式上的不同之处:

  FAT32格式中:该值为该逻辑盘起始扇区相对于第一张分区表(也有称为主引导扇区或硬盘0柱0道1扇区)的扇区数,分区大小不同该值不同。

  FAT16格式中:该值为该逻辑盘起始扇区相对于该盘分区表(每个逻辑盘对应一张分区表)所在扇区的扇区数,值一般固定,等同于硬盘参数中的每磁头扇区数,现在的硬盘中的每磁头扇区数都为63个,即十六进制3F,在BPB表中体现为3F 00 00 00。

  在实际使用中发现,这个四字节的值除了与活动分区引导系统和格式化有关外,其它的读写操作并未发现有不良影响。

  记下刚才的BPB表中的四个字节后继续我们的第三步操作,并且在第四步操作中用DOS盘启动后不先进行FORMAT操作,而再次用DEBUG检查一下第三步的执行结果:

  A:\>DEBUG
  -L 100 3 0 1
  -D 11C L4
  3F 00 00 00
  -Q

  我们发现该值竟然被NT系统的格式化以FAT16的标准重写,而DOS启动盘中的FORMAT命令在针对FAT32格式的分区进行格式化时是通过该值进行确定逻辑盘的起始位置,被重写为3F 00 00 00后就刚好与我们的C盘的起始位置相同。现在执行完FORMAT D:或FORMAT D:/Q后,你的C盘的文件就只能看数据恢复软件有无回天之术了。

  在这里还发现NT系统的一个奇怪的现象,懂汇编的朋友可以在NT系统的命令提示符中用DEBUG查询一下虚拟DOS的版本号,居然为5.0版,在实DOS模式中的MSDOS5.0正好只支持FAT16而不支持FAT32,相信在其格式化FAT32格式分区时与填写BPB表中的四个字节有一定的联系。

  不只是在NT系统的窗口状态下的格式化,还包括在NT系统安装过程中的格式化、控制台中的格式化操作都会使FAT32格式分区的BPB表中的该值转写为FAT16标准,这就给习惯在DOS下处理问题的朋友留下的隐患。当你准备在实DOS模式下对FAT32格式的非主分区进行格式化时就得慎重了。上面实验的例子中,就算C盘已经转化成NTFS格式(FORMAT D:改成FORMAT C:),也难逃一劫。在网上不时会有朋友提起这类故障现象,希望上面的实验和分析,各位朋友能引以为鉴。

  预防:在不清楚自己或朋友机器上的FAT32格式的逻辑分区有没有经过NT系统格式化的情况下,如果真的需要在实DOS模式下进行格式化,可以先执行SYS命令(会修复上面提到的影响FORMAT的BPB表中的四个字节),再执行FORMAT命令,以减少不必要的损失。上面的第四步我们如果先执行A:\>sys d:再执行A:\>format d:/q,就可以正确无误地格式化D盘了。
2#
发表于 2006-7-5 15:14:11 | 只看该作者
主楼辛苦了!
如果用GHOST装系统就不会有像你说的那样啦!
2K和XP安装时就会有格盘提示的!不过我说的意思是指你说的太深{菜鸟}会不明白.
用FORMAT命令是像你说的那样.我也见过.:lol要解决不是像你说的那样那么难!
不过你说的格式化冲突应该是指误操作吧!{我是这么理解的}:lol

[ 本帖最后由 Robertzao 于 2006-7-5 03:16 PM 编辑 ]
回复

使用道具 举报

3#
发表于 2006-7-5 15:46:40 | 只看该作者
学习了
回复

使用道具 举报

4#
发表于 2006-7-5 18:49:26 | 只看该作者
如题,确实够深入,支持!
回复

使用道具 举报

5#
发表于 2006-7-6 10:27:18 | 只看该作者
仔细看了一下,大致理解了楼主所说的情况。
这应该可以看成nt系统对于fat32的一个bug吧,可以向微软反映这个情况。
回复

使用道具 举报

6#
发表于 2006-7-6 15:48:37 | 只看该作者
顶了~~~~~~
回复

使用道具 举报

7#
发表于 2006-7-6 23:48:01 | 只看该作者
再一次的进来学习一下,同时提醒一下自己
回复

使用道具 举报

8#
 楼主| 发表于 2006-7-7 17:52:35 | 只看该作者
其实这篇文章有点历史了,不记得是哪年的了(大概在 2003-2004 年间)
前段时间帮朋友电脑维护,准备在 DOS 下格式化的时候想起了这个问题
然后就找到帖上来了
回复

使用道具 举报

9#
 楼主| 发表于 2006-7-24 10:25:04 | 只看该作者
原帖由 Robertzao 于 2006-7-5 03:14 PM 发表
主楼辛苦了!
如果用GHOST装系统就不会有像你说的那样啦!
2K和XP安装时就会有格盘提示的!不过我说的意思是指你说的太深{菜鸟}会不明白.
用FORMAT命令是像你说的那样.我也见过.:lol要解决不是像你说的那样那么 ...

不是误操作,解决的方法也不难!
回复

使用道具 举报

10#
发表于 2006-7-24 11:28:23 | 只看该作者
嗯,以前遇过这问题,后来要格式化C盘时大多到PQ之类的(能识别操作NTFS的)软件。要不就是用系统安装时的格式化C盘再继续。
回复

使用道具 举报

11#
发表于 2006-7-24 12:49:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

12#
发表于 2006-7-25 09:45:42 | 只看该作者
其实不还有个办法,可以使用VOL命令,显示磁盘的卷标信息,这样也可以减少出错的机会,前提是你给不同的分区设不同的卷标名字(相信很多人都是这样作的)。

对于这篇文章,不知道作者有没有使用windows me的启动软盘测试过,虽然windows me的系统不怎么样,但是,ME的启动软盘还是有改进的,用途最多的当属FDISK了,它已经开始支持大硬盘了,format对FAT32应该有很好的支持了。在这些方面,98的启动软盘是有缺陷的。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-2-15 19:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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