无忧启动论坛

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

请教:如何确认哪些扇区是可写入的绝对安全扇区。

[复制链接]
跳转到指定楼层
1#
发表于 2007-6-3 16:25:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请教:如何确认哪些扇区是可写入的绝对安全扇区。
三步曲的最后一步,如何确认哪些扇区是可写入的绝对安全扇区。
需要用到一个扇区,计划在前63扇区中20-30扇区里面找一个全是0的扇区用来写入数据。
不知硬盘每道的扇区数是如何确定的,是否与硬盘容量有关?是不是都是63扇区?
有什么办法能比较方便地确定绝对安全扇区
15#
发表于 2007-6-5 16:04:33 | 只看该作者
原帖由 lianjiang 于 2007-6-4 10:21 发表
……我写入的不是0扇区,而是20-50之间的某一空闲扇区 ...

提醒一下,你写的基本可以肯定是在0磁道,0磁道有一个坏扇区的话整条磁道也就挂了,磁道是靠音圈电机来定位,扇区则靠磁道上的同步信号来定位,0磁道只要有个扇区坏了就挂了。不过偶尔写些问题不大,另外硬盘无故障写入时间值得怀疑,现在已经有不少杂志提出疑问了。
回复

使用道具 举报

14#
 楼主| 发表于 2007-6-4 10:48:26 | 只看该作者
原帖由 lintel 于 2007-6-4 10:25 AM 发表

在写入前要检查扇区是否用过。一旦冲突将导致部分程序不能使用,比如IBM的F11


能否提供比较好的检测方法。我也试了自动判断,但是空的可以,有数据的失败。麻烦给看看代码。
------------------------------------------
if exist  %temp%\039.bin del %temp%\039.bin >nul
diskrw 0 39 1 /s %temp%\039.bin >nul
For /f "tokens=1" %%i In ('type %temp%\039.bin') do (
set sector_ok=%%i
)
cls
echo  --------------------------------------
echo.
echo  自动判断结果:
echo.
if %sector_ok%#==# (
echo      39扇区可能为空闲扇区,应可安全写入数据。
) else (
echo      39扇区可能不是空闲扇区,写入数据前请确认。
)
echo.
:sector_2b
echo.
echo  --------------------------------------
echo  您选择了把密码保存到39扇区,请首先确认39扇区内的信息。
echo.
echo  若是首次选择写入扇区,应确保39扇区为空闲扇区,即显示信息全部为0。
echo  若不全为0,请不要选择写入。
echo.
echo  曾经进行过写入操作后,该扇区显示的将是上次写入的内容。
echo.
echo  按任意键,查看39扇区信息。
pause>nul
回复

使用道具 举报

13#
发表于 2007-6-4 10:25:32 | 只看该作者
原帖由 lianjiang 于 2007-6-4 10:21 AM 发表
谢谢netwinxp 朋友提供的资料。好好学习,为此我也专门借了专业书,可惜基础差,理解还有些困难,不过比以前还是多明白了一点点。呵呵。
关于硬盘寿命,据查资料,似乎一般可写次数能到10万次以上。算1万次的话 ...

在写入前要检查扇区是否用过。一旦冲突将导致部分程序不能使用,比如IBM的F11
回复

使用道具 举报

12#
 楼主| 发表于 2007-6-4 10:21:11 | 只看该作者
谢谢netwinxp 朋友提供的资料。好好学习,为此我也专门借了专业书,可惜基础差,理解还有些困难,不过比以前还是多明白了一点点。呵呵。
关于硬盘寿命,据查资料,似乎一般可写次数能到10万次以上。算1万次的话,再少算1000次总有吧。而我写入的不是0扇区,而是20-50之间的某一空闲扇区,写入只在设定密码时发生,验证密码不需写入。没有人天天改密码吧?按每天改一次密码,一年360次,1000次也要3年。呵呵。所以应该不会成为问题。

关于写入位置。前16扇区,grub4dos用了,我肯定是不能用的。而为此创建一个分区,似乎没有必要。目前考虑还是在空闲扇区中写入。
可以在说明文件里对这部分增加一些图表,以便于说明和理解。同时,这也只是一个备选项,用与不用由使用者选择。
回复

使用道具 举报

11#
发表于 2007-6-4 09:01:13 | 只看该作者
过段时间,得抓紧研究一下NTFS,想自己做一个OSLDR,解锁HPA然后再重新跳回MBR
回复

使用道具 举报

10#
发表于 2007-6-4 08:51:55 | 只看该作者
原帖由 <i>netwinxp</i> 于 2007-6-4 08:31 AM 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=1087498&ptid=106951" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://bbs.wuyou.net/images/common/back.gif');}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
*另外,0磁道经常写入很有可能导致硬盘提前退休(读取一般不会),<br />
00H&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;...
<br />

不用怕,硬盘不是他的……:lol
回复

使用道具 举报

9#
发表于 2007-6-4 08:48:00 | 只看该作者
NTFS结构咱不清楚,有高手的请补上。:lol
回复

使用道具 举报

8#
发表于 2007-6-4 08:47:09 | 只看该作者
另FAT(FAT32)分区的大致结构为:
分区引导程序,操作系统的不同将导致各异,不过一般都带有磁盘I/O参数表、操作系统引导文件装入程序,错误信息提示(例如:Missing Oprating System),最后是有效标志AA55
文件分配表(FAT或FAT32)
文件分配表副本
数据区:
1、磁盘根目录文件和目录区
2、子目录、子目录文件目录区、文件数据混杂
当文件分配表损坏将导致数据极难恢复!!
到我们访问一个文件的时候,首先访问目录文件区的相应项取得首蔟号,然后依据文件分配表的单向链依次把对应的蔟的内容读到内存(其中还要先依据分区表和磁盘I/O参数表转化成绝对CHS)

[ 本帖最后由 netwinxp 于 2007-6-4 08:57 AM 编辑 ]
回复

使用道具 举报

7#
发表于 2007-6-4 08:31:23 | 只看该作者
CHS=0,0,1放的是硬盘主引导程序(512字节),硬盘主引导程序的结构如下:
000H-1BDH为主引导程序
1BEH-1FDH为主分区表,它可以有4个分区
1FEH-1FFH=AA55H,为有效引导扇区标志
主分区表结构如下:
00H        激活标志      
01—03    分区开始物理地址
04          分区类型,详细含义参照PQ
05—07    分区结束物理地址
08—0B    此分区前的总扇区数(另一说法此分区第一扇区的绝对扇区号)
0C—0F    此分区总扇区数
*当某个分区的下面分区的结束地址与这个某个分区的开始地址一样,也就形成了分区循环,这就是王XX的逻辑锁,具有这样结构的硬盘挂在DOS内核的操作系统就会造成死锁。
超过4个分区的逻辑分区其实就是主分区表结构在其他子分区的延伸。
*通常,一个硬盘的0磁道一般只会供主引导程序使用,而现在大多数的磁盘S=64,所以也就有了2-63扇区一般不写入数据的来由。以前的硬盘S并不为64,所以才提醒要慎重处理。硬盘的S都大于16,所以GRUB是安全的。
*通常只有硬盘、USB-HDD具有主引导程序(ZIP的咱不清楚),软盘是没有主引导程序的,它的第一个扇区就相当于分区引导程序。
*MS的FDISK只用了2条分区表项(单分区的就1条)。
*另外,0磁道经常写入很有可能导致硬盘提前退休(读取一般不会),所以才建议你创建一个自己的分区来用。

[ 本帖最后由 netwinxp 于 2007-6-4 08:36 AM 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2007-6-4 06:49:06 | 只看该作者
原帖由 q8q8feng 于 2007-6-3 11:48 PM 发表

一般来说,按照绝对扇区来划分,前63个扇区,仅仅1扇区被占用了,有62个扇区如果没有写入东西的话应该是空闲的,即使写入数据也不会对硬盘的MBR构成威胁,而活动分区的扇区是从绝对扇区的64扇区,也就是逻辑扇 ...

根据所查资料,第一磁道中只有第一扇区是MBR,其余都是保留的空闲扇区,没有被利用。当然有些底层软件可能会占用部分扇区。比如目前grub4dos就用了16个扇区。这样的话,即使写入的扇区不是空闲,最多只会影响到某一软件的使用,也不会出现严重后果。
现在问题是:是不是每道都是63扇区?与哪些因素有关?
回复

使用道具 举报

5#
发表于 2007-6-3 23:48:42 | 只看该作者
原帖由 lianjiang 于 2007-6-3 04:25 PM 发表
请教:如何确认哪些扇区是可写入的绝对安全扇区。
三步曲的最后一步,如何确认哪些扇区是可写入的绝对安全扇区。
需要用到一个扇区,计划在前63扇区中20-30扇区里面找一个全是0的扇区用来写入数据。
不知硬盘 ...

一般来说,按照绝对扇区来划分,前63个扇区,仅仅1扇区被占用了,有62个扇区如果没有写入东西的话应该是空闲的,即使写入数据也不会对硬盘的MBR构成威胁,而活动分区的扇区是从绝对扇区的63扇区,也就是逻辑扇区的64扇区开始的。为了保险起见,从绝对扇区中部入手应该问题不大。

[ 本帖最后由 q8q8feng 于 2007-6-4 02:16 PM 编辑 ]
回复

使用道具 举报

4#
发表于 2007-6-3 21:33:29 | 只看该作者
太过专业的提示,一般人看不懂,可能会一直YES
回复

使用道具 举报

3#
 楼主| 发表于 2007-6-3 21:05:09 | 只看该作者
假如在软件中增加把密码写入扇区的选项的话。
下面考虑了一些写入前的提示信息,各位看看警告信息是否足够?
--------------------------------------
cls
echo.
echo    是否需要把设置的密码保存到39扇区,以提高密码安全性?
echo.
echo    硬盘上的密码文件丢失后,将读取扇区里的密码,用来验证。
echo.
set sector=
Set /P sector=  是否需要 ?[y/是  n/否]:

........................
........................
echo.
echo  您选择了把密码保存到39扇区,请首先确认39扇区内的信息。
echo.
echo  若是首次选择写入扇区,应确保39扇区为空闲扇区,即显示信息全部为0。
echo  若不全为0,请不要选择写入。
echo.
echo  曾经进行过写入操作后,该扇区显示的将是上次写入的内容。
echo.
echo  按任意键,查看39扇区信息。
pause>nul
........................
........................
echo.
echo  --------------------------------------
echo.
echo   请确认是否写入39扇区:
echo.
echo    选择“是”后,将会出现最后的改写提示。
echo.
echo    "Disk Sector Will be Modified, Continue ? (Y/N)"
echo    输入“Y”将进行写入操作,放弃请选“N”。
echo.
echo  --------------------------------------
set sector_2=
Set /P sector_2=  是否写入39扇区?[y/是  n/否]:
回复

使用道具 举报

2#
发表于 2007-6-3 17:21:06 | 只看该作者
划个自定义分区,从分区表读取起始扇区和结束扇区,在它们中间的扇区是安全的。(注:主引导程序里面的分区,不是逻辑分区)
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-31 12:18

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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