|
用户名:simon911 笔名:simon911 地区: 行业:其他 |
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
欢迎访问simon911的博客, 不足之处,贻笑大方了!
生存之道(3)
一只小鸟飞到南方去过冬。天很冷,小鸟几乎冬僵了。于是,飞到一大块空地上,一头牛经过那儿,拉了一堆牛粪在小鸟的身上,冬僵的小鸟躺在粪堆里,觉得很温暖,渐渐苏醒过来,它温暖而舒服的躺着,不久唱起歌来,一只路过的野猫听到声音,走过去看个究竟,循着声音,野猫很快发现了躺在粪堆里的小鸟,把它拽出来吃掉了。
生存之道3:不是每个往你身上拉大粪的人都是你的敌人。也不是每个把你从粪堆里拉出来的人都是你的朋友,还有,当你躺在粪堆里时,最好把你的嘴闭上。
生存之道(2)
乌鸦站在树上,整天无所事事,兔子看见乌鸦,就问:我能像你一样,整天什么事都不用干吗?乌鸦说:当然,有什么不可以呢?于是,兔子在树下的空地上开始休息,忽然,一只狐狸出现了,它跳起来抓住兔子,把它吞了下去。
生存之道2:如果你想站着什么事都不做,那你必须站的很高,非常高。
生存之道(1)
一只火鸡和一头牛闲聊,火鸡说:我希望能飞到树顶,可我没有勇气。牛说:为什么不吃一点我的牛粪呢,他们很有营养。火鸡吃了一点牛粪,发现它确实给了它足够的力量飞到第一根树枝,第二天,火鸡又吃了更多的牛粪,飞到第二根树枝,两个星期后,火鸡骄傲的飞到了树顶,但不久,一个农夫看到了它,迅速的把它从树上射了下来。
生存之道1:牛屎运让你达到顶峰,但不能让你留在那里。
传说中的高考0分作文
传说中的高考0分作文 (zz)
网上刊出一篇文章,据说是今年全国高考中得0分作文。不过看后,您会惊叹这篇文章打0分之“的确出人意料”同时“也在情理之中”。该文章全文如下:
2005年高考作文:出人意料和情理之中(全国卷)
警察不会抓人,的确出人意料,但是想想警察要打人吓人,要不停地想办法把枪弄丢,要穿着警服逛街威风,要开着警车四处兜风,所以警察不会抓人,也就在情理之中了;
医生不会治病,的确出人意料,但是想想医生要收红包,要考虑开哪个药利润高,要分辨病人到底有没有钱,要和护士MM调情,所以医生不会治病,也就在情理之中了;
老师不会教书,的确出人意料,但是想想老师要补课收钱,要计算哪个学生家长送礼多少安排座位,要写看不懂的论文,要比较哪个女学生长得漂亮,所以老师不会教书,也就在情理之中了;
工人不会做工,的确出人意料,但是想想工人干好了也要下岗,要学好心理素质课程好面对贪官腐败,要核实再核实到底发不发工资,要随时准备工厂突然倒闭,所以工人不会做工,也就在情理之中了;
农民不会种地,的确出人意料,但是想想农民种出大米也不如一首《老鼠爱大米》,要学会忍耐忍耐再忍耐,要学会看红新闻当看杂文,要缴纳比收入还高的税,所以农民不会种地,也就在情理之中了;
中国男足不会踢球,的确出人意料,但是想想男足要吃摇头丸,要泡MM,要赌球,要球霸,所以中国男足不会踢球,也就在情理之中了;
小偷不会偷窃,的确出人意料,但是想想小偷要和警察搞好关系,要和组织搞好关系,要看冯导的电影找感动,要穿西服打领带,所以小偷不会偷窃,也就在情理之中了;
导演不会导演,的确出人意料,但是想想导演要选美选女演员,要学会上艺术人生,要想方设法得奖,要一切办法艺术,所以导演不会导演,也就在情理之中了;
演员不会演戏,的确出人意料,但是想想演员要和导演睡觉,要和车夫吵架,要学外语学穿没有荡妇字母的衣服,要和老板吃饭,所以演员不会演戏,也就在情理之中了;
歌星不会唱歌,的确出人意料,但是想想歌星要不会简谱,要五音不全,要会假唱,要卖弄风骚,所以歌星不会唱歌,也就在情理之中了;
模特不会走步,的确出人意料,但是想想模特要等待老板,要摆迷人睡姿,要参加各种比赛,要没有文化,所以模特不会走步,也就在情理之中了;
主持不会主持,的确出人意料,但是想想主持人要不会说普通话,要学会用“手机”,要得抑郁症,要嫁钻石王老五,所以主持不会主持,也就在情理之中了;
作家不会写作,的确出人意料,但是想想作家要会做爱,要吸引异性,要年龄很小,要阅读和抄袭,所以作家不会写作,也就在情理之中了;
记者不会采访,的确出人意料,但是想想记者跑路要拿车马费,要和广告挂钩,要写企业书籍,要听有关部门,所以记者不会采访,也就在情理之中了;
官员不会当官,的确出人意料,但是想想官员要不停地接受采访,要考虑怎么收礼,要面对上级的冷屁股和下级的热脸,要寻找哪里有漂亮女人,所以官员不会当官,也就在情理之中了;
网友不会上网,的确出人意料,但是想想只会上3721.com,8848.com,baidu.com,99gift.com,所以网友不会上网,也就在情理之中了;
如果这篇作文得不到高分,的确出人意料,但是想想作文的内容和观点,可能刺疼某些人,所以可能得低分,也就在情理之中了.
CMD命令大全实例详解之C篇
CMD命令大全实例详解之C篇
显示或修改文件的访问控制列表 (ACL:Acess Control List)。
cacls filename [/t] [/e] [/c] [/g user:perm] [/r user [...]] [/p user:perm [...]] [/d user [...]]
参数
filename
显示指定文件的 ACL。
/t
更改当前目录和所有子目录中指定文件的 ACL。
/e
编辑 ACL 而不是替换它。
/c
忽略错误,继续修改 ACL。
/g user:per
授予指定用户访问权限。Perm 可以是:
n 无
r 读取
c 更改(写入)
f 完全控制
/r user
吊销指定用户访问权限。
/p user:perm
替换指定用户的访问权限。Perm 可以是:
n 无
r 读取
c 更改(写入)
f 完全控制
/d user
拒绝指定的用户访问。
在一个命令中可以指定多个文件或用户。
说明:
大家可以试一下,在命令行中键入:calc filename 。是不是仅原样返回该文件名,而没有其它的显示?这是因为你的文件系统使用的不是NTFS格式,根本不存在所谓的ACL,所以只显示文件名。Microsoft公司直到NTFS(New Technology File System从Windows NT始使用)推出,才使用了访问控制列表。没有使用ACL控制文件访问权限的系统是不安全的。
前言
The Java Programming Language, Third Edition(ISBN 0-201-70433-1)
Ken Arnold, James Gosling, David Holmes
Java编程语言(第三版)
编著:(美)Ken Arnold, James Gosling, David Holmes
翻译:虞万荣、王玉峰、赵亮 等
出版发行:中国电力出版社
书号:ISBN 7-5083-1516-2
版次:2003年12月北京第1版 2004年4月第2次印刷
定价:45.00
前 言
美丽的建筑已经超出了科学的范畴,
它们是真正的有机体,蕴含着精神;它们是艺术作品,
在灵感的驱动下,采用了最好的技术,而不仅仅是一种尝试,或者委员会思想的折中。
——Frank Lioyd Wright
Java的易于编程和安全特性使用户可以快速地产生工作代码。由于得益于Java的垃圾收集和类型安全引用等特性,某些常见的编程错误永远不会出现。多线程支持符合时新的基于网络和图形用户界面的应用程序,这些应用程序必须同时参加多个任务,而异常处理机制则简化了错误情况的处理。
本书专门就applet、图形界面、数据库、组件和其他特定类型的编程任务进行了详细的论述。
第1章“Java概述”描述了Java语言的概貌。
成果!朋友,尽管我已取得许多成果,
但我知道几千种是不能满足要求的。
——Thomas Edison
CMD命令大全实例详解之B篇
CMD命令大全实例详解之B篇
Windows 2000 不使用此命令。它被接受只是因为和
Windows 2000 和
包括如下命令,敲入help以获得详细信息。
| call | goto | setlocal |
| echo | if | shift |
| endlocal | pause | % |
| for | rem |
批处理程序(也称为批处理文件)允许您简化日常的或重复的任务。批处理程序是无格式的文本文件,它包含一条或多条命令,文件扩展名为 .bat 或 .cmd。当在命令提示符下键入文件名时,文件中的命令将顺序执行。
任何命令均可以包含在批处理文件中。此外,for、goto 和 if 命令允许有条件地处理批处理文件中的命令。例如,if 命令根据条件语句的结果来执行命令。其他命令允许您控制输入输出以及调用其他批处理程序。可替换参数 % 扩展了批处理脚本参数变量。
三星调高7月DRAM报价
CMD命令大全实例详解之A篇
CMD命令大全实例详解之A篇
显示或修改文件名扩展关联。associate
assoc [.ext[=[filetype]]]
参数
无
显示当前文件关联。要每次查看一屏关联,请再加上 |more 命令。要将输出重定向到文件,请添加 >filename.ext 命令。
e.g. assoc |more
assoc > "C:\associate.txt"
.ext
指定要查看或更改关联的文件扩展名。extend name
filetype
指定要 Windows 将其与指定的文件扩展名关联的文件类型。
e.g. assoc .txt=notepad
如果觉得命令行中太枯燥——不人性化,也可以通过下面的方式查看、更改。首先打开“资源管理器”(Ctrl+E),然后选择“工具”菜单下的“文件夹选项”,在弹出的窗口中选择“文件类型”选项卡。在这里可以编辑、更改文件的默认打开方式与文件图标。
显示或更改文件属性。 attribute
该命令显示、设置或删除指派给文件或目录的只读、存档、系统以及隐藏属性。
attrib [+r|-r] [+a|-a] [+s|-s] [+h|-h] [[drive:][path] filename] [/s[/d]]
参数
+r
设置只读文件属性。 read only
-r
清除只读文件属性。
+a
设置存档文件属性。 archive
-a
清除存档文件属性。
+s
将文件设置为系统文件。system file
-s
清除系统文件属性。
+h
将文件设置为隐藏文件。 hidden file
-h
清除隐藏文件属性。
[[drive:][path] filename]
指定要处理的目录、文件或文件集的位置和名称。可以在 filename 参数中使用通配字符(? 和 *)显示或更改一组文件的属性。
/s
处理在当前目录及其全部子目录中的匹配文件。
/d
处理目录。
比如我们要查看boot.ini的文件属性:attrib C:\boot.ini 显示为 SHR C:\BOOT.ini即该文件属性为S(系统)、H(隐藏)、R(只读)。与我们在该文件上点击右键选“属性”显示的结果一样。肯定有人会问:既然我在图形界面下都可以查看、更改,还有必要跑到命令行下去吗?
命令行不是万能的,但离核心技术太远是很容易无能的。
如果boot.ini出了问题,就看不到图形界面了。这时只有通过命令行模式来进行,首先要去掉文件的只读、隐藏属性:attrib -r -h C:\boot.ini。然后用edit编辑boot.ini文件,改回正确的格式。
列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序。必须正在运行“计划”服务才能使用 at 命令。
at [\\computername] [[id] [/delete] | /delete [/yes]]
at [\\computername] time [/interactive] [/every:date[,...]| /next:date[,...]] command
参数
无
如果在没有参数的情况下使用,则 at 列出已计划的命令。
\\computername
指定远程计算机。如果省略该参数,命令将安排在本地计算机。
e.g.要显示 fserver 服务器上已计划的命令列表,请键入:at \\fserver
id
指定指派给已计划命令的识别码。
/delete
取消已计划的命令。如果省略了 id,计算机中已计划的命令将被全部取消。
e.g.要取消当前服务器上计划的所有命令,请键入以下命令清除 at 计划信息:
at /delete
/yes
当删除已计划的事件时,对系统的查询强制进行肯定的回答。
time
指定运行命令的时间。将时间以 24 小时标记(00:00 [午夜] 到 23:59)的方式表示为小时:分钟。
/interactive
允许作业与在作业运行时登录用户的桌面进行交互。
/every:date[,...]
在每个星期或月的指定日期(例如,每个星期四,或每月的第三天)运行命令。将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。
/next:date[,...]
在重复出现下一天(例如,下个星期四)时,运行指定命令将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。
command
指定要运行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 .cmd 文件)。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定服务器和共享名的 UNC 符号,而不是远程驱动器号。如果命令不是可执行 (.exe) 文件,必须在命令前加上 cmd /c,例如:
cmd /c dir > c:\test.out
综合实例
要计划早晨 8:00 在 fserver 服务器上运行网络共享命令并将列表重定向到服务器 dbackup、共享目录 Reports 和文件 corp.txt,请键入:
at \\fserver 08:00 cmd /c "net share reports=d:\marketing\reports >> \\dbackup\reports\corp.txt"
要每隔 5 天在午夜将 dbackup 服务器的硬盘驱动器备份到磁带驱动器,请创建包含备份命令的批处理程序 (Archive.cmd)。然后通过键入以下命令计划批处理程序运行:
at \\dbackup 00:00 /every:5,10,15,20,25,30 archive
注意:
1、要执行at命令首先必须在服务(运行services.msc)中启用Task Scheduler服务。
2、默认情况下,at命令是在后台执行,即不显示执行。可对比执行下面两条命令:
at 18:01 notepad 在计划时间无反应,但可在"windows任务管理器"的"进程"选项卡中可查看到notepad的进程。
at 18:02 /interactive notepad 在计划时间打开"记事本"。
Arp
显示和修改“地址解析协议”(ARP:Address Resolution Protocl) 所使用的到以太网的 IP 或令牌环物理地址翻译表。该命令只有在安装了 TCP/IP 协议之后才可用。
arp -a [inet_addr] [-N [if_addr]]
arp -d inet_addr [if_addr]
arp -s inet_addr ether_addr [if_addr]
参数
-a
通过询问 TCP/IP 显示当前 ARP 项。如果指定了 inet_addr,则只显示指定计算机的 IP 和物理地址。
-g
与 -a 相同。
inet_addr
以加点的十进制标记指定 IP 地址。
-N
显示由 if_addr 指定的网络界面 ARP 项。
if_addr
指定需要修改其地址转换表接口的 IP 地址(如果有的话)。如果不存在,将使用第一个可适用的接口。
-d
删除由 inet_addr 指定的项。
-s
在 ARP 缓存中添加项,将 IP 地址 inet_addr 和物理地址 ether_addr 关联。物理地址由以连字符分隔的 6 个十六进制字节给定。使用带点的十进制标记指定 IP 地址。项是永久性的,即在超时到期后项自动从缓存删除。
ether_addr
指定物理地址。
说明:
ARP协议的作用是将计算机名转换成物理地址。
深入浅出硬盘分区表
深入浅出硬盘分区表(ZT)
人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。究其原因,就是硬盘分区表受损。硬盘分区表可以说是支持硬盘正常工作的骨架.操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件.本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的.当掌握了这些知识后,即使分区表受到破坏,一样也可以根据残存的数据手工修复分区表,从而修复分区。
一.分区表的位置及识别标志
分区表一般位于硬盘某柱面的0磁头 1扇区.而第1个分区表(也即主分区表)总是位于(0柱面,1磁头,1扇区),剩余的分区表位置可以由主分区表依次推导出来.分区表有64个字节,占据其所在扇区的[441-509]字节.要判定是不是分区表,就看其后紧邻的两个字节(也即[510-511])是不是 "55AA",若是,则为分区表.
二.分区表的结构
分区表由4项组成,每项16个字节.共4×16 = 64个字节.每项描述一个分区的基本信息.每个字节的含义如下:
分区表项含义
字节 含义
0 Activeflag.活动标志.若为0x80H,则表示该分区为活动分区.若为0x00H,则表示该分区为非活动分区.
1,2,3 该分区的起始磁头号,扇区号,柱面号磁头号 -- 1字节, 扇区号 -- 2字节低6位,柱面号 -- 2字节高2位 + 3字节
4 分区文件系统标志:
分区未用: 0x00H.
扩展分区: 0x05H, 0x0FH.
FAT16分区: 0x06H.
FAT32分区: 0x0BH, 0x1BH, 0x0CH, 0x1CH.
NTFS分区: 0x07H.
5,6,7 该分区的结束磁头号,扇区号,柱面号,含义同上.
8,9,10,11 逻辑起始扇区号。表示分区起点之前已用了的扇区数.
12,13,14,15 该分区所占用的扇区数.
分区表项有几个字节比较重要,下面分别阐述之: 1、(1,2,3)字节
磁头号由(1)字节8位表示,其范围为(0 -- 28 - 1),也即(0 磁头-- 254磁头)。
扇区号由(2)字节低6位表示,其范围为(0 -- 26 - 1),由于扇区号从1开始,所以其范围是(1扇区-- 63扇区)。
柱面号由(2)字节高2位 + (3)字节,共10位表示,其范围为(0 --2 10 - 1),也即(0 柱面-- 1023柱面)。
当柱面号超过1023时,这10位依然表示成1023,需要注意。
(5,6,7)字节含义同上。
2、(8, 9, 10, 11)字节
如果是主分区表,则这4 个字节表示该分区起始逻辑扇区号与逻辑0扇区(0柱面,0磁头,1扇区)之差。如果非主分区表,则这4 个字节要么表示该分区起始逻辑扇区号与扩展分区起始逻辑扇区号之差,要么为63。详细情况在后面有所阐述。
注意: 1、扇区上的字节是按左边低位,右边高位的顺序排列的。所以在取值时,需要把字节再反一下,让高位字节在左边,低位字节在右边,这一点在读取逻辑起始扇区号和分区大小时需要注意。举个例子:第一项的逻辑起始扇区为(3F 00 00 00),转换为十进制前要先反一下字节顺序,为(00 00 00 3F)然后在转换为十进制,即63 .同理分区大小为(3F 04 7D 00),先反为(00 7D 04 3F)再转换为十进制,即8193087。
2、逻辑扇区号与(柱面,磁头,扇区)的相互转换:
令L = 逻辑扇区号,C = 柱面号,H = 磁头号,S = 扇区号。
每道扇区数 = 63
每柱面磁头数 = 255
每柱面扇区数 = 每道扇区数* 每柱面磁头数
= 63 × 255
= 16065
柱面号下标从0开始。磁头号[0 -- 254],扇区号[1 -- 63]。
逻辑扇区号下标也从0开始。
(柱面,磁头,扇区)转换成逻辑扇区号的公式为:
L = C×16065 + H ×63 + S - 1 ;
比如(1柱面,1磁头,1扇区),其逻辑扇区号为:
L = 1×16065 + 1×63 + 1 - 1
= 16128
逻辑扇区号转换成(柱面,磁头,扇区) 公式为:
C = L / 16065
H = (L % 16065) / 63
S = (L % 16065) % 63 + 1
比如逻辑扇区号 16127:
C = 16127 / 16065 = 1
H = (16127 % 16065) / 63 = 0
S = (16127 % 16065) % 63 + 1 = 63
即(1柱面,0磁头,63扇区)
3、分区表上有四项,每一项表示一个分区,所以一个分区表最多只能表示4个分区。主分区表上的4项用来表示主分区和扩展分区的信息。因为扩展分区最多只能有一个,所以硬盘最多可以有四个主分区或者三个主分区,一个扩展分区。余下的分区表是表示逻辑分区的。
这里有必要阐述一点:逻辑区都是位于扩展分区里面的,并且逻辑分区的个数没有限制。
4、分区表所在扇区通常在(0磁头,1扇区),而该分区的开始扇区通常位于(1磁头,1扇区),中间隔了63 个隐藏扇区。
三.分区表链的查找
分区表链实际上相当于一个单向链表结构。第一个分区表,也即主分区表,可以有一项 描述扩展分区。而这一项就相当于指针,指向扩展分区。然后我们根据该指针来到扩展分 区起始柱面的0头1扇区,找到第二个分区表。对于该分区表,通常情况下:第一项描述了 扩展分区中第一个分区的信息,第二项描述下一个分区,而这第二项就相当于指向第二个分 区的指针,第三项,第四项一般均为0。我们可以根据该指针来到扩展分区中第二个分区起 始柱面的0头1扇区,找到第三个分区表。以此类推,只到最后一个分区表。而最后一个分 区表只有第一项有信息,余下三项均为0.相当于其指针为空.所以只要找到了一个分区表就可 以推导找出其后面所有分区表。不过该分区表前面的分区表就不好推导出来了。但令人高兴 的是这个链表的头节点,也即主分区表的位置是固定的位于(0柱面, 0磁头, 1扇区)处, 我们可以很轻易的找到它,然后把剩下的所有分区表一一找到。
以笔者的硬盘为例:一个主分区(C盘), 一个扩展分区.扩展分区中有两个逻辑分区(D盘,E盘)其分区表链示意图如下:
图一 分区表链示意图
(一).读取(0柱面,0磁头,1扇区)处C盘的主分区表: [80 01 01 00 0B FE 7F FD 3F 00 00 00 3F 04 7D 00 ]
[00 00 41 FE 0F FE FF FF 7E 04 7D 00 1F 2C B4 00 ]
[00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
[00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
第一项:
(80)(01 01 00)(0B)(FE 7F FD )(3F 00 00 00 )(3F 04 7D 00)
描述的是C盘的情况。
1.(80):表示C盘为活动分区。即系统会从C盘启动。
2.(01 01 00):表示C盘的起始扇区为(0柱面,0磁头,1扇区)。
3.(0B):表示C盘的文件系统为FAT32。
4.(FE 7F FD):
(FE) 16 = (254) 10 (7F) 16 = (0111 1111) 2 (FD) 16 = (1111 1101) 2
磁头号:(254) 10;
扇区号:(11 1111) 2 = (63) 10.
柱面号:(01 1111 1101) 2 = (509) 10
故C盘结束扇区为(509柱面,254磁头,63扇区)。
5.(3F 00 00 00):
反向,(00 00 00 3F) 16 = (63) 10,为C盘起始逻辑扇区号与逻辑0扇区号之差。表示C盘前面已有63个扇区,这63个扇区为系统隐藏扇区。
6. (3F 04 7D 00):
反向,(00 7D 04 3F) 16 = (8193087) 10。表明C盘有8193087个扇区。即(0柱面,1磁头,1扇区)至(509柱面,254磁头,63扇区)
共有8193087个扇区。
第二项:
(00)(00 41 FE)(0F)(FE FF FF)(7E 04 7D 00)(1F 2C B4 00)
描述的是扩展分区的情况。
1. (00): 表示该分区不是活动分区。
2. (00 41 FE):
(00) 16 = (0) 10 (41) 16 = (0100 0001) 2 (FE) 16 = (1111 1110) 2
磁头号:(0) 10;
扇区号:(00 0001) 2 = (1) 10.
柱面号:(01 1111 1110) 2 = (510) 10
所以扩展分区的起始扇区为(510柱面,0磁头,1扇区)。
3. (0F): 表示该分区为扩展分区。
4. (FE FF FF):
(FE) 16 = (254) 10 (FF) 16 = (1111 1111) 2 (FF) 16 = (1111 1111) 2;
磁头号:(254) 10;
扇区号:(11 1111) 2 = (63) 10.
柱面号:(11 1111 1111) 2 = (1023) 10
但这是不准确的,因为当柱面号的真实值超过1023时,表示柱面号的10位也依然是1023。
5. (7E 04 7D 00):
反向,(00 7D 04 7E) 16 = (8193150) 10. 表示扩展分区的起始扇区号为8193150,即(510 柱面,0磁头,1扇区)。这是真实准确的,
我一般都用这一项来定位分区起点。
6. (1F 2C B4 00):
反向, (00 B4 2C 1F) 16 = (11807775) 10. 表示扩展分区共有11807775个扇区。通过上面得到的起点和分区的大小,
可以推导出扩展分区的结束位置:8193150 + 11807775 = 20000925号扇区,即(1244 柱面,254磁头,63扇区)。
二.查找D盘分区表 根据上面的信息,第二个分区表,也即D盘分区表在(510柱面,0磁头,1扇区)处。读取该扇区,得到分区表如下: [00 01 41 FE 0B FE FF 7B 3F 00 00 00 BF A3 5D 00 ]
[00 00 C1 7C 05 FE FF FF FE A3 5D 00 21 88 56 00 ]
[00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
[00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
第一项:
(00)(01 41 FE)(0B)(FE FF 7B)(3F 00 00 00 )(BF A3 5D 00)
描述的是D盘的情况。
1.(00):表示D盘不是活动分区。
2.(01 41 FE):
(01) 16 = (1) 10 (41) 16 = (0100 0001) 2 (FE) 16 = (1111 1110) 2.
磁头号:(1) 10;
扇区号:(00 0001) 2 = (1) 10.
柱面号:(01 1111 1110) 2 = (510) 10;
故D盘开始扇区为(510柱面,1磁头,1扇区)。
3.(0B):表示D盘的文件系统为FAT32。
4.(FE FF 7B):
(FE) 16 = (254) 10 。 (FF) 16 = (1111 1111) 2 (7B) 16 = (0111 1011) 2.
磁头号:(254) 10;
扇区号:(11 1111) 2 = (63) 10.
柱面号:(11 0111 1011) 2 = (891) 10
故D盘结束扇区为(891柱面,254磁头,63扇区)。
5.(3F 00 00 00):
反向,(00 00 00 3F)16 = (63)10,为D盘起始逻辑扇区号(510柱面,1磁头,1扇区)与扩展分区起始逻辑扇区号
(510柱面,0磁头,1扇区)之差。表示D盘前面已有63个扇区,这63个扇区为系统隐藏扇区。
6. (BF A3 5D 00):
反向,(00 5D A3 BF) 16 = (6136767) 10。表明D盘有6136767个扇区。
通过上面得到的起点和分区的大小,可以推导出D盘的结束位置:8193150 + 63 + 6136767 = 14329980号扇区。
即(891柱面,254磁头,63扇区)。与上面的正好吻合。
第二项:
(00)(00 C1 7C)(05)(FE FF FF)(FE A3 5D 00)(21 88 56 00)
描述的是E盘的情况。
1. (00): 表示E盘不是活动分区。
2. (00 C1 7C):
(00) 16 = (0) 10 (C1) 16 = (1100 0001) 2 (7C) 16 = (0111 1100) 2
磁头号:(0) 10
扇区号:(00 0001) 2 = (1) 10
柱面号:(11 0111 1100) 2 = (892) 10
所以E盘的起始扇区为(892柱面,0磁头,1扇区)。
3. (05): 表示E盘的在扩展分区里面。
4.(FE FF FF):
(FE) 16 = (254) 10 (FF) 16 = (1111 1111) 2 (FF) 16 = (1111 1111) 2
磁头号:(254) 10
扇区号:(11 1111) 2 = (63) 10
柱面号:(11 1111 1111) 2 = (1023) 10
但这是不准确的,原因同上。
5.(FE A3 5D 00):
反向,(00 5D A3 FE) 16 = (6136830) 10. 这一项非常重要,它定位了E盘分区表所在扇区。其值为E盘分区表所在扇区号
与扩展分区起始扇区号之差。所以,E盘分区表所在扇区号为:
8193150 + 6136830 = 14329980。即(892柱面,0磁头,1扇区)。
6.(21 88 56 00):
反向,(00 56 88 21) 16 = (5670945) 10.表示E盘共有11807775个扇区。通过上面得到的起点和分区的大小,可以推导出E
盘的结束位置:14329980 + 5670945 = 20000925号扇区,即(1244 柱面,254磁头,63扇区)。
三.查找E盘分区表 根据上面的信息,第三个分区表,也即E盘分区表在(892柱面,0磁头,1扇区)处。读取该扇区,得到分区表如下: [00 01 C1 7C 0B FE FF FF 3F 00 00 00 E2 87 56 00]
[ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
[00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
[00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
该分区表第二项全为0,说明没有下一个分区表了。该分区表就是分区表链的最后一个节点。
第一项:
(00)(01 C1 7C)(0B)(FE FF FF)(3F 00 00 00 )(E2 87 56 00)
该项与D盘分区表的第二项描述的都是E盘的情况,但它们在某些细节上又有所区别。
1.(00):表示E盘不是活动分区。
2.(01 C1 7C):
(01) 16 = (1) 10 (C1) 16 = (1100 0001) 2 (7C) 16 = (0111 1100) 2.
磁头号:(1) 10
扇区号:(00 0001) 2 = (1) 10
柱面号:(11 0111 1100) 2 = (892) 10
故E盘起始扇区为(892柱面,1磁头,1扇区)。
3.(0B):表示E盘的文件系统为FAT32。
4.(FE FF FF):
(FE) 16 = (254) 10 。 (FF) 16 = (1111 1111) 2 (FF) 16 = (1111 1111) 2.
磁头号:(254) 10;
扇区号:(11 1111) 2 = (63) 10.
柱面号:(11 1111 1111) 2 = (1023) 10
但这是不准确的,原因同上。
5.(3F 00 00 00):
反向,(00 00 00 3F) 16 = (63) 10.这一项与D盘分区表相应项有所不同.为E盘起始逻辑
扇区号(892柱面,1磁头,1扇区)与(892柱面,0磁头,1扇区)之差。表示E盘前面已有63个扇区, 这63个扇区为系统隐藏扇区。
操作系统无法对这些扇区进行读写,所以可以把自己的秘密信息写在这里.
6. (E2 87 56 00):
反向,(00 56 87 E2) 16 = (5670882) 10。表明E盘有5670882个扇区。而D盘分区表相应项为5670945. 5670945 - 5670882 = 63.
正好等于63个隐藏扇区.这是因为D盘分区表描述的是(892柱面,0磁头,1扇区) 到 (1244 柱面,254磁头,63扇区) 之间的扇区数。
而E盘分区表描述的是(892柱面, 1磁头,1扇区) 到 (1244 柱面,254磁头,63扇区) 之间的扇区数。
四.结束语
至此,我们已经打通了整个分区表链.以后在某个链节点数据受损时,也可以根据上下节点的信息而手工定位并修复之。
修复工具可采用可读写磁盘的Winhex.