论文部分内容阅读
女朋友的电脑不能启动了,小西很自然地担当起维修重任。他把一张工具光盘放到光驱中,重启电脑,没用多长时间,BIOS欢快地发出“滴”的一声,似乎在向主人报告:自检通过,基本硬件正常。接着,就发生了一些奇妙的事情……
BIOS开始检测CMOS中的参数设置,找到“First Boot Device”(第一优先开机设备)项,它发现小西在这里设置的是“CDROM”。BIOS一下子明白了:原来主人要从光盘装载系统启动电脑。于是它命令光驱道:“兄弟,请定位到光盘的第17扇区(Sector 17),读取它开头部分的信息。”
光驱挠了挠头,“光盘的第17扇区在哪儿?”“真笨,就是从偏移地址34816处开始的地方啊,用十六进制表示就是8800h。”“好的,这就去。”呵呵,“偏移地址”好专业啊,要是你不明白,就自己看看右边的图1吧。
图1
BIOS检测光驱读出的信息为“02 43 44 30 30 31 01 00 00 57 00 69 00 6E 00 33 00 32”,转成ASCII码就是“.CD001...W.i.n.3.2”。显然这只是一张普通的数据光盘而非可启动光盘,可启动光盘开始的信息应该是“00 43 44 30 30 31 01 45 - 4C 20 54 4F 52 49 54 4F”(.CD001.ELTORITO)。BIOS马上把这一意外消息告知小西,它在屏幕上打出一行字:Non system disk or disk error(非系统盘或者磁盘错误)。
小西看到屏幕上的出错提示,才发现放错光盘了,赶紧换上Windows 98启动光盘,重启电脑。BIOS尽职尽责,又重新检测一遍硬件,并依旧检测光盘第17扇区的信息,这次它发现确实是张可启动的光盘,于是继续向下搜索,它知道在8847h处应该能找到Boot Catalog(启动目录)的地址,如图2所示,该处为13h,换算成十进制就是19,这等于告诉BIOS:启动目录在第19扇区呢。
BIOS立即命光驱从第19扇区(偏移地址:9800h)读取启动目录数据(见图3)。这一启动目录数据,包含了启动光盘的ID号、适用于何种平台等信息,并标出了可启动的系统映像文件的地址,根据这一地址,BIOS就可以找到系统映像文件并读入内存,然后通知CPU开始执行操作指令启动系统,它自己也就功成身退了。当然,上面的一系列过程小西并不清楚,他只知道已顺利启动系统了,便开始一心一意帮MM的电脑排除故障。
光盘的数据记录格式与磁盘不同,它是把数据记录在一条由内向外、连续的螺旋形路径上,称之为光道。这条螺旋形光道可以划分成若干轨道(track),轨道又可以划分成更小的数据段,即扇区。在CD-ROM黄皮书(Yellow Book)中,定义一片CD-ROM可包含333000个扇区,而每个扇区又包含了2352个字节,其中2048个字节是用来存放用户数据的,剩下的304字节则分别是同步信息、地址指针文件头、错误修正与错误侦测码等,这些个304字节的资料都是在刻录CD-ROM时由刻录机本身或刻录软件自动产生的,不包含在数据区中。所以,当我们推算第17扇区的偏移地址时,只要计算17×2048即可得出,其他扇区地址依此类推。
在标准的CD光盘中,最前面的16个扇区没有用到,第17个扇区则包含了主卷描述符(Primary Volume Descriptor),接下来是任意数目的次卷描述符(Secondary Volume Descriptor),最后则是终结卷描述符(Set Terminator Volume Descriptor)。在符合ISO 9660规格的CD-ROM中,主卷描述符永远位于第17个扇区中,并且这个扇区的开头字符串一定是"CD001"。El Torito规格在CD-ROM中增加了两项数据记录,分别是引导记录(Boot Record)和引导目录(Boot Catalog)。
BIOS开始检测CMOS中的参数设置,找到“First Boot Device”(第一优先开机设备)项,它发现小西在这里设置的是“CDROM”。BIOS一下子明白了:原来主人要从光盘装载系统启动电脑。于是它命令光驱道:“兄弟,请定位到光盘的第17扇区(Sector 17),读取它开头部分的信息。”
光驱挠了挠头,“光盘的第17扇区在哪儿?”“真笨,就是从偏移地址34816处开始的地方啊,用十六进制表示就是8800h。”“好的,这就去。”呵呵,“偏移地址”好专业啊,要是你不明白,就自己看看右边的图1吧。
图1
BIOS检测光驱读出的信息为“02 43 44 30 30 31 01 00 00 57 00 69 00 6E 00 33 00 32”,转成ASCII码就是“.CD001...W.i.n.3.2”。显然这只是一张普通的数据光盘而非可启动光盘,可启动光盘开始的信息应该是“00 43 44 30 30 31 01 45 - 4C 20 54 4F 52 49 54 4F”(.CD001.ELTORITO)。BIOS马上把这一意外消息告知小西,它在屏幕上打出一行字:Non system disk or disk error(非系统盘或者磁盘错误)。
小西看到屏幕上的出错提示,才发现放错光盘了,赶紧换上Windows 98启动光盘,重启电脑。BIOS尽职尽责,又重新检测一遍硬件,并依旧检测光盘第17扇区的信息,这次它发现确实是张可启动的光盘,于是继续向下搜索,它知道在8847h处应该能找到Boot Catalog(启动目录)的地址,如图2所示,该处为13h,换算成十进制就是19,这等于告诉BIOS:启动目录在第19扇区呢。
BIOS立即命光驱从第19扇区(偏移地址:9800h)读取启动目录数据(见图3)。这一启动目录数据,包含了启动光盘的ID号、适用于何种平台等信息,并标出了可启动的系统映像文件的地址,根据这一地址,BIOS就可以找到系统映像文件并读入内存,然后通知CPU开始执行操作指令启动系统,它自己也就功成身退了。当然,上面的一系列过程小西并不清楚,他只知道已顺利启动系统了,便开始一心一意帮MM的电脑排除故障。
光盘的数据记录格式与磁盘不同,它是把数据记录在一条由内向外、连续的螺旋形路径上,称之为光道。这条螺旋形光道可以划分成若干轨道(track),轨道又可以划分成更小的数据段,即扇区。在CD-ROM黄皮书(Yellow Book)中,定义一片CD-ROM可包含333000个扇区,而每个扇区又包含了2352个字节,其中2048个字节是用来存放用户数据的,剩下的304字节则分别是同步信息、地址指针文件头、错误修正与错误侦测码等,这些个304字节的资料都是在刻录CD-ROM时由刻录机本身或刻录软件自动产生的,不包含在数据区中。所以,当我们推算第17扇区的偏移地址时,只要计算17×2048即可得出,其他扇区地址依此类推。
在标准的CD光盘中,最前面的16个扇区没有用到,第17个扇区则包含了主卷描述符(Primary Volume Descriptor),接下来是任意数目的次卷描述符(Secondary Volume Descriptor),最后则是终结卷描述符(Set Terminator Volume Descriptor)。在符合ISO 9660规格的CD-ROM中,主卷描述符永远位于第17个扇区中,并且这个扇区的开头字符串一定是"CD001"。El Torito规格在CD-ROM中增加了两项数据记录,分别是引导记录(Boot Record)和引导目录(Boot Catalog)。