《硬盘自由安装操作系统的实现.pdf》由会员分享,可在线阅读,更多相关《硬盘自由安装操作系统的实现.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第l 卷第1 期2 0 0 0 年1 月微诗算撬应薅M I C R O C O M P U T E RA P P L I C A T r O N SV o l,2 1。N o IJ a n,2 0 0 0硬盘自由安装操作系统的实现张红领(浩辩嚣学高等专辩学梭医学工鬈系洛辩4 7 1 0 0 3)李明凡(中莓王商镊行洛粥分辛子洛阳4 7 1 0 0 0)攮要:本文奔缨了一静在霹一鹾盎上鑫鑫安装1 8 释f 可扩宠)操作暴统辩方法,滚方糖在势迸袭存储结 暂、系统启动方法上都有较大改变且稳定性强。无剿作用,再有广泛的适用性。关键谢:操作幕统共事硬盘分区记袭分区j c 总记录I 问题的提出箍着操作系统
2、斡袭锺本的空前多样诧,硬盘空阉的君益扩大,在离一硬盘土安装多种操作系统成为可能。作者曾实现了(见本刊19 9 5 年第1 期2 1 页)在同一硬盘上安装不同版本D O S 藏其毽攥俸系统共4 静,毽壶予该方接保持了传统懿一秘蠡擦,西踅不箍突教4 释攥捧系统的限制。若要在硬盘上根据需要自由安装操作系统,必须对传统系统分区表的结构及系统启动方法避嚣改变。2 解决方法2 1 总体裁劁新的多操作系统安装启动方法须包括如下几步:在所有系统安装之前,把存放分避表将会掰到的奎闻清空 俸安装新操作系统蔺的蓣姓理;接传统方法刨遣一个操作系统的分区井安装该系统;按新的标准处理上一步安装的系统;再安装下一个操作系统
3、。2,2 主要按零细节(1)主引导扇区原分区袭的结构。新方法将主引导扇区(即0 头0 面I 崩区,以后简称1 扇区)酶势区表移囊2 臻区,势对l 褰鼗蒙分嚣表舞鑫空闻进稽了重耨定义,篌褥再安装薪攥捧系统时,分区程序知道已使用多少扇区和上一分区的结束磷头、扇区、柱面号。方法是在1 扇区的壤移0 1 E E H 0 1 F D H 处设置了一个努壤记录,它不是正毒鳆搽謇系统努区记漾,嚣是分区记录的汇总,是将已用硬盘空间合并为一个可识别的虚拟分区,以便再分区时溅开这些空闯。旋常分区记录与努区汇总记录的结梅参霓表I。其中,l 字节;0 0 H,表示该分嚣菲活动;2 字节4 字节:该硬盘安装的第一个操作
4、浆统的第一个分蹑的起始磁头、扇区、磁道号 5字节:选取一不常用系统标卷,C P M 操作系境的橼志D B H,使得分区程序可识别滚分区记录;9 字节1 2 字节:值一般为3 F H,0 0 H、0 0 H、0 0 H。癌于这个分区茫总记录的存在,任何操作系统的分区程序均可蠢看到当前硬盘空间使用情况。车盘于1 9 9 9 0 5 2 4 收到,i 9 9 9 0 9 2 9 收到修改稿 万方数据2 0微计算机廒用2 0 0 0 燕寝1 分区记最结构字节正常分珏记最分区 总记蹬字节拦静静区记录势嚣汇尊记求。势嚣绪柬鞋妥器瓣辩装的最岳一中撵捧系统最后l鲁举标拳O O H。”扁鲑畦巷号一个分区的结束磁
5、头扁醒礴遭号分区起始硬盘第一十操作系统1 特区起始相。怒嚣扇区磁遭号H相对扇区号对崩匿号s操作系统标春D B H13怂K分鞋实瑶赢区数;萎安装的所有操作系统所用赢区(2)0 头0 面2 阈区存储结构。该方法将0 头0 筒2 扇区(以膀简称2 扇区)作为分区表存储扇区,新方法设计最大可安装操作系统数为1 6 个,分区数为3 1 个(可扩充)。扇区偏移0 0 0 0 H 0 0 0 F H 共1 6 个字节分别帮藏1 6 个操作系统所用分区数,例如,0 0 H 处存放硬盘安装酶第一个操瘁系缝掰耀分区数,著玄怒D O S,毒主努逸穰扩爱分嚣,翔该字节瘫臻馋0 2 H,若是u N I x,因它强占一个
6、分区,则该字节为O I H。偏穆0 0 1 0 H 0 1 F F H 为分区记录存放处,固每条分区记录占1 0 H 个字节,所以辨可存放3 1 个分区记录。例如第一个操作系统若有2 个分区,则其分区记录分别存放在偏移0 0 1 0 H 0 0 1 F H、0 0 2 0 H 0 0 2 F H 处。例如,硬擞安装3 个操终系统,接安装颓寤分别鸯D O S 6 2 2、U N I X、W i n d o w s 9 8,D o s 8 2 2 蕊有一主分逸,U N I X仅一个分区,W i n d o w s 9 8 有主分医襁扩展分医,鳓2 赢区结梅如表2 所示。表20 头0 面2 扇暇存储
7、结构2 3 主要程序及分析本方法提供如下程序:所有操作系统安装前的预处理程序i n i t c o m;分区寝处理程序m O V+c o m;安装耪攥俸系统翦羲熟毽程彦p r e。C O r f l;囊主 导攒j 芋b o o t;日 警系统数据备份程序b b a c k c o m#引导系绕数据恢复程序b r e s t c o m。i n k c o m 程序摄为了防止2 扇朕中有垃圾信息影响安装系统,而将该扇区垒部清空。b b a c k c o m、b r e s t c o r n 程序是为了防止意外情况如瘸毒等破坏1、2 扇区而作的保襻及恢复程序,这凡个程序比较簿革故不谗分掇。m
8、o v c o m 是率方法静核心程枣之一,它运嚣时会褥耨努区膏瘸信崽写至分鏊汇总记录,因此霄一点须注意,网正常使用操忭系统时会将其分隧表从2 扇酝碍至1 扇区偏移0 1 B E H 开始处,但它不是新分区,不能再汇总,为避免误写,须在程序中进行判断,从分析硬盘空间分配机制知道,可将分区结束柱面号作为比较标准,若1 分区结柬柱面号小于或等f 汇总分区表熬结束桂嚣号,虢证瞬菝攥傺系缓静分区已蔽激憝遘,翟蓐嚣舅 莲该萝,镬刘,矮遣行汇总。该程序首先麴断1 扇区现谢分区是否已梭汇总,若未汇总砌传送分区记录劐2 扇区 万方数据第1 期微计算魂疲用Z 1枢应穰移处,诗箕分区记录个数,雩至2 扇区握应傣移
9、楚,汇总谈次分区瓣用赢嚣数,攘上分区 c 总记录中1 3 字节16 字节所记实用廓区数,将其和鞲八分区汇总记录相应位置,取得1 扇区最后一分区的络柬磁头、桂匿、扇区号写入分驻汇总记录对应处,若分区汇总记录其蚀项为奎,劂将t 扇区酋分区稽应值写入,最詹将1 崩区分区记录清奎(但不清分区滋总记录)。p r e c o r n 的作用是清空正常启动硬盘时1 扇区分区表中写入的分区记荣。再次分区前,须将它清除,奢捌会导教分速镑误。另外,该程序还可戡检测目前2 旃区中逐能安装多少个操作系统(1 6 减去2 扇鼠0 0 0 0 H O O O F H 中不为0 0 H 的字节个数,如表2 情况,该值为1
10、3)、还可存放多步个分区记漾(3 1 减去2 萄嚣0 0 1 0 H 0 1 F F H 孛不空静分区记录个数,鞠裘2,该值为2 7),以免安装时出现2 扇区空间用完的情况。舞主g|导程疼b o o t 矮写入1 摩逸孝发撂 搴曩,它是率穷洼静叉一孩心箨_ 亭,怒在蒙主i 导程序基础上修改成的,其改动部分如下:硬盘自举时先将2 扇赋读至内存偏移0 8 0 0 H 0 9 F F H 照,然嚣显示提示售感B O o T;,可键人1 9 及a g,对应襄动搽 擘系统1 t s,程序累计所选操作系统前之操作系统所用分区记录数,根据此数找到该操作系统对成的分区记录起始地址,再根据内存偏穆0 8 0 0
11、 H 0 8 0 F H 中存放的该操作系统艇用分嫩记录数,读出耀应数鼓的分迸记录至1 扇区偏移t 0 1 B E H 开始处,写盘,转至原主引导程序日i 导。例如:硬斑安装宥如表2 所示的3 个操作系统,若选择窟动W i n d o w s 9 8,即第3 个操作系统,掰键入3,主;|静程序累计第1、2 个操作系统所用分隧记录数为2 个(D 0 s 6 2 2 的1 个加U N I X 的1 个),因每个分区记录为1 0 H 个字节,所以第1、2 个操作系统所用字节为2 0 H夺,魏上编移筵始遗攮0 0 1 0 H,得窭笫3 夺撵作系统翡分区记录获0 0 3 0 H 帮始,叉翔该操作系统所用
12、分区记录为2 个,所以从内存偏移0 8 3 0 H 开始读2 0 H 个字节到1 扇区偏移0 1 B E H楚,即挺W i n d o w s 9 8 麓努嚣 蠢录正礁读至1 密医。魏对1 囊薤豫了一个不活动翡分医汇慧诡录外,其他与一般扇蹴无区别,可以由原主引导程序正常启动。b o o t 的主要源程序段见附录。2。4 参操作系统安装步骤作张干净的D O S 系统盘,拷入程序i n i t c o m、m o v c o i T l、p r e o o m、b b a c k c o r n、b r e s t c o r n 和烹引导程序b o o t;用该软盘启旗枧器,运行i n i t,
13、c o r n;按藏裳方法安装一个操作系统;逆行m o v c o i 、。处理中安装的操作系统的分区记录;若要一次安装完多个操作系统,则转,否则转;将主引导程序b o o t 装入1 扇区(不能破坏分区表,仅在首次安装攥作系统时装入一次邵可),结策安装,蒋启动机器,邵按新方法启动,感觉有必要时,运行b b a c k c o m,备分1、2 崩区的数据,无论何时想再安浆新操作系统,从开始;运行程痔p r e C O m,转。3 结寒语本方法较好地解决丁多操作系统菇享硬擞的问题,具有极强的实用价值。方法原理简洁、龌了,稳定性极强,蚕会产生援谤犁巷瑶。方法设计辩充分考虑了与原有豁准豹兼蒋。瑟活运
14、用该方法,王五能快速恢复被病毒破坏的系统。作者在硬盘上用该方法实际安装了同种及不同种撮作系统共1 6 个,十分方便,安装后使用正常,广大读卷可放心使尾。该方法的不足之处是删除及合并努区方面问题没有解决,即若1、2、3、4 分隧均占用,删去2、4 分区,再次分区时,2 分区虽然空闲,但分医程序不能识别。2 分避不能再使用,只有4 分区及硬盘以前采用之空简能被识别和分配。万方数据徽诗葵祝瘦耀2 0 0 0 燕瓣荣:裳;l 导援痒b o o t 生鬟漂程垮段M O VA X。0 2 0 1 读2 崩区刘内存M O VB X。0 8 0 0M O VC X,0 0 0 2M O VD X,8 档0I
15、N T1 3J M FF L lF L 9:I-。I X S BC M PA L,2 4 是否遇到$符J ZF L?C M PA L。0 0珏F L 8P U s HS IM O V馘,0 0 0 7M O VA H,0 E 显示挺承信患I N T1 0P O p掰J M PF L 9F L I M O VS I,0 7 8 0|提示糖慧q O O T$”j M PF L 9F L 7 tM O Vs I,o s。8f 犍A 一争遴舞M O VD I 0 0 1 0M O VA H。0 0I N T1 6M O VA H 0 0C M PA L,0 D 擎试鸯造鼙一十操律系鞔J N zF L
16、l 2M O VA L。J M PF L l 3F L l 2;C M PA L,3 l 判鞲键 壤楚蒋在l 9 燕瓣内J BF L lC M PA L,3 9I GF L l 5S U BA L,3 1;转换为内部值J M PF L l 3F L t S:C M PA L,6 1,翔拼键 德是否在8 g 莲藩蠢J BF I 1C M PA L,6 7J GF L lS U BA L,5 8F L l 3 t A D D掰+A X 求如辑选操作系统雀犏移8 0 0 H 8 1 0 H 蚋位甓C M PB Y T EP T R s I ,0 0J ZF L lM O VB L 0 0M O VS
17、 I,0 8 0 0M o VD L 0 0F L l 7:C 酲PD L,A j J G EF L l 6A D DB L,s I;幂计攥俸系统新瓣势区记录慧个数IN(:DL烈C鬟J M PF L 7F L l 8 t N CB 王,M O VA X 0 0 0 8M O VD L,s I,墩出所选操作幕境分区记袋个数M U I D L潆密谈撵作幕缝努嚣鞋录抟字鼓M O VC X,A X 淇值班C X 中斟0 V双,0 8 0 0M o VA X 0 0 1 0醚U L 班,求出所选操作系统分区记录起始悄移地址A D DS I,A XP U S HS IP U S HC XM O VD I。
18、0 7 B E 薄室1 襄嚣i 3 努逞记录M O VA X,0 0 0 0醅p VC X,1 8P E P N Zs T O S WP O PC XP O PS IM O VD I,0 7 B E;从求出的偏移地址起传进C X 个字到1 扇融势区表R E P N ZM o V S WM O VB Y T EP T R 0 7 B E 。8 0;鞋1 势嚣先活蚤M O VA X,0 3 0 1I 写盘M O V蕊0 8 M O VC X,0 0 0 1M O VD x。0 0 8 0I N 丁1 3M O VB L,0 4 M PF L l 8 转麟童l 尊茬窿 万方数据硬盘自由安装操作系统的实现硬盘自由安装操作系统的实现作者:张红领,李明凡作者单位:张红领(洛阳医学高等专科学校医学工程系,洛阳,471003),李明凡(中国工商银行洛阳分行,洛阳,471000)刊名:微计算机应用英文刊名:MICROCOMPUTER APPLICATIONS年,卷(期):2000,21(1)本文链接:http:/