文风就是文章所体现的思想作风,或文章写作中某种倾向性的社会风气。人们在某一方面表现出来的一贯态度和行为叫作风。撰写毕业论文也有个作风问题,我们在毕业论文写作中所表现出来的作风就是文风。人的作风与世界观有着密不可分的联系,毕业论文中的文风也不例外。一个人有怎样的思想、立场、作风,就表现怎样的文风。明朗人冯时可在《雨航杂录》里说:“文如其人哉!人如其文哉!”就是说为人怎样,就写出怎样的文章。如果思想正确、态度鲜明、作风正派,写出论文来就有一定的准确和鲜明性;如果朝气蓬勃,思维敏锐,写出论文来就可能生动活泼;一个作风浮华的人,写出论文来决不会朴实;一个思想贫乏的人,写出论文来一定空洞无物。文风不是个别的文章现象,而是具有普遍性和倾向性的文坛风气。毕业论文的文风应该是一定的时代精神和社会风尚在论文中的反映,应该是一些有着相同或相近世界观、思想作风、思想方法的人,在论文写作中的一贯表现。
文风和风格既有联系又有区别,不能等同。论文文风是论文的作风。论文的风格是指论文的特色和气派。我们可以要求论文作者树立良好的文风,因为这是对论文作者最起码的要求,但却不能要求每个论文作者具有同样的风格,因为风格是论文作者创造性的表现、成熟的表现。我们要求每个论文作者树立良好的文风,摒弃不良文风;但风格却鼓励多样,提倡风格百花齐放。
二、文风的表现和要素
(一)文风在论文中的表现
1.文风在论文内容上的表现。
优良文风和恶劣文风在论文内容上的表现,突出地反映在三个方面,即真实与虚伪,充实与空洞,新鲜和陈腐。
①真实和虚伪。
真实,就是论文的材料既具有客观实在性,又能体现历史必然性。正如列宁所指出的,只有“从事实的全体总和,从事实的联系去掌握事实”,事实才是“胜于雄辩的东西”;但是如果事实“是片断的和随便挑出来的,那么事实就只能是一种儿戏,或者甚至这儿戏也不如”(《列宁全集》第23卷第279页)因此,构成论文的材料必须既是真实、可信的,又是能体现历史的必然性的。
虚伪,就是与必然发生或者已经发生的事实相背离,论文的材料违背事实。
②充实与空洞。
充实,就是内容丰富。充实以真实为前提,翔实地表述真实的事理。马克思说,充实的文风要“三多”:“多说些明确的意见,多注意一些具体的事实,多提供一些实际的知识。”(《马克思思格斯全集》第27卷第436页)撰写毕业论文时应做到明确地提出问题,具体地分析问题,合理地解决问题,力求用事实说话,以理服人,理论与实践相结合。
空洞,就是空虚,言之无物,在文辞中没有内容或不切实际。同志曾把“空话连篇,言之无物”列为“党八股”的第一条罪状。
⑧新鲜与陈腐。
新鲜,是指论文主旨正确有新意,论文材料新颖别致,不搬弄前人之说,也不套袭旁人之文思。毕业论文要求多种多样,新鲜别致,每个人的毕业论文应力求有新意。
陈腐,是指毕业论文陈旧荒谬,材料雷同不新鲜。陈腐文风传播陈腐的思想观点,毒害人们的思想、意识,造成颓废风气,压抑人们的创造力。
2.文风在论文形式上的表现。
形式受内容制约,而又影响内容的表达。文风在论文形式上的表现反映在三个方面。
①新颖与老套。
新颖的形式式有助于毕业论文充分表达新鲜的内容,新鲜的内容则要求新颖的形式来表达。我们所说的力求新颖,并不是矫揉造作,而是以自然为基础,顺应新鲜的内容。
老套,是陈旧的东西。雷同老套的论文形式,不能表现日新月异,瞬息万变的大干世界。者套的形式总是与陈腐的内容相结合,而与新颖的内容相冲突。
②质补与浮华。
质朴,就是朴实不浓艳。浮华就是艳丽而不实在,专门追求华丽的词藻,不讲求实际的形式。
②精当与冗长。
精当,就是以尽可能省俭的文字表达尽可能多的内容。撰写毕业论文要求做到要言不烦,言简意赅,“文约而事丰”。冗长就是以偏长的篇幅表达偏少的内容。用刘知己的话来说,就是“虚益散辞,广加闲说”。
(二)论文文风形式的话要素
1.文风的时代特征。
论文的文风是一定的时代精神、社会风气在论文上的反映。它总是当时政治生活的产物,是受政治情况的决定和制约的。换句话说,在文风上总是打着时代的烙印的。以“五四”的文风为例。从清末到“五四”,文章发生了一次重大变革,用白话代替了文言。这次文风的变革,是巨大的空前的。其主要原因,是精神的解放。当时形成了这样一种风气:思想自由,学术民主,精神得到了大大的解放。从另一个角度说,文风也会对政治思想、社会风习有反作用,它能够直接、间接产生一定的影响。例如,在“”时期,“帮八股”极为流行,作用极坏,这也从反面说明了文风对于时代的巨大影响。那一段时间“帮八股”文风的流行,产生的 恶劣影响,对于政治生活、社会风气,都有极大的坏作用。
2.文风的个人风格。
二、毕业论文的指导
确定“题目—毕业生—指导教师”后,立即通知相关教师和毕业生。规定指导教师必须在第七学期末放假前与学生首次见面。师生面谈之后,可以对毕业论文题目做出适当调整。尤其是指导教师可以对论文的开展思路进行介绍,给学生提供相关书籍及参考资料,以便学生可以尽快入门。第八学期开学后正式开始毕业论文的写作。为提高毕业论文的质量,加强对教师和学生的管理,突出教师的指导作用,我们制定了一些具体措施:
(一)平时的过程监督。
要求每个学生每月至少提交两份活动记录,反映其在毕业论文写作过程的不同阶段遇到的问题和进展;同时,要求每位指导教师每月对每个学生至少提交一份指导记录,用以记录学生的学习研究状况。
(二)在期中教学检查时重点抽查。
在期中教学检查阶段,指导小组对毕业论文的进展情况进行详细的抽查,主要措施有:1.检查学生的活动记录和指导教师记录;2.组织学生座谈会,了解学生的写作进展状况;3.举行中期论文进展汇报,要求学生将前期的工作以及后续打算制成PPT,向指导小组答辩,指导小组和指导教师根据学生的汇报情况提出进一步的指导意见。
三、毕业论文的答辩
(一)规范论文终稿的格式。
学校出台“本科生毕业论文(设计)格式规范”文件,对毕业论文的格式做出统一要求。
(二)设置教师互评小组。
毕业论文的终稿提交前,指导小组原则上让研究方向接近的教师相互评阅毕业论文,建立若干个两人或三人的互评小组,撰写指导教师评阅书和评阅教师评阅书。
(三)毕业论文的答辩分组。
1.答辩小组的学生成员:
为了便于选拔优秀的毕业论文,事先通知打算申报优秀毕业论文的学生提出申请,在得到指导教师同意后将其确定为有效候选者。根据多年的经验,为了更好地体现公平公正的原则,将申报优秀的学生放在一个答辩小组,便于比较。然后,根据当年的毕业生人数,将剩下的学生根据人数平均分成若干小组,同时,兼顾指导教师的专业以及所带的学生人数,便于各小组有差不多人数的指导教师,并对学生毕业论文的内容有所了解。
2.答辩小组的教师成员:
原则上所有指导本科生毕业论文的教师都是答辩小组成员。每小组配小组长一名,答辩秘书一名。分配原则是尽量让指导教师在自己所指导学生的答辩小组,同时,兼顾每个答辩小组中高级职称和中级职称教师的数量。
(四)答辩工作。
1.准备工作。
学生在提交终稿后,要制作答辩的PPT。此外,还要确定各答辩小组的答辩秘书,通常是在征询相关教师意见的基础上优先考虑新进的年轻教师,同时,明确答辩秘书和答辩小组长的职责和具体工作。在学校文件的基础上,细化具体的毕业论文综合成绩的评价方式,即“指导教师评阅成绩”“评阅教师评阅成绩”以及“现场答辩成绩”的各自权重。
2.答辩工作。
(1)现场答辩:各答辩小组组长主持答辩工作,学生根据答辩秘书排好的答辩次序,依次进行答辩。学生报告六分钟,回答问题四分钟。教师就学生论文的创新点、收获、困难等技术问题进行提问,同时,检查学生的论文格式是否规范,并提出建议。答辩秘书记录答辩过程中的问题,小组的教师成员现场打分。
(2)成绩评定:
学生答辩结束后,答辩秘书计算各位教师给学生打分的平均分作为该生的答辩成绩,然后根据权重算出学生的综合成绩,小组教师成员召开评议会,进而确定学生毕业论文的等级———优、良、中、及格、不及格。
3.后期工作。
(1)学生方面:
学生根据答辩时教师提出的建议修改论文,在规定时间内经指导教师审核后上交。
(2)教师方面:
指导教师在审核通过的学生毕业论文上签字,并将材料交给答辩秘书。答辩秘书负责整理答辩记录、答辩评语,填写答辩成绩,经答辩小组长签字后,按期提交院办。
四、毕业论文工作的思考
(一)组织工作。
指导小组成立后,应定期开展交流活动,制定各种实施细则。比如,起草《本科生毕业答辩秘书工作细则》,明确答辩秘书的具体工作。
(二)鼓励论文题目来源于科研项目和实践教学项目。
对毕业论文来源于教师科研项目的学生,给予经济上的奖励。
二、本科毕业论文的目标定位
本科毕业论文是基于一定目标之上的教学行为或师生互动过程,如何定位本科毕业论文,绝非轻易之事。任何系统都具有整体性、有序性、集合性和相关性的共性,决定了子系统的目标、功能和结构必须与大系统和外部环境相匹配。本科教育的诸要素———学科、课程设置、教师、教学理念、学术氛围、社会环境等,无不对本科论文子系统的运行产生直接或间接的影响。鉴于创新的时代意义,社会对大学生创新能力培养一度非常关注,并将毕业论文视为“培养学生工程实践能力和创新能力的重要手段”;甚至“期望毕业论文实现对四年所学知识的全面升华,期望不同层次本科院校所有学生的论文都能标新立异,提出新问题,或解决他人之未解决”,这既脱离了本科教育的现实,又背离了《高等教育法》“本科教育应当使学生具有从事本专业实际工作和研究工作的初步能力”和《学位条例》授予学士学位条件之一是“具有从事科学研究工作或担负专门技术工作的初步能力”的规定,无异“揠苗助长”,事倍功半。高校本科论文所遭受的质疑和指责,多半由此而生。可见,毕业论文的目标设定,需要审慎分析适时发展的外部环境和社会需求,准确定位,不可随波逐流、盲目拔高、妄谈“创新”。
作为人才培养模式的一个子系统,毕业论文的目标设定与功能实现必然依赖于整体系统的功能发挥,并受外部(主要是社会)环境因素影响。系统内部的影响因素主要包括:课程设置、专业实习和教学实践环节、教学理念、监控体系等。其中,课程设置的目标、教学理念和考核方式等,直接决定了学生是否具备了“创造性学习”的基础。毕业设计应该是学生既有的创新能力的系统训练与提升,而非“从零开始”的学习与培养,质量监控体系的有效运行是毕业论文目标实现的最后防线。基于上述环境分析以及学生能力和诉求的差异化,本科论文目标设定应该区分对待,分设基本目标和发展目标。基本严格限定在基础知识的综合运用,基本技能的初步培养与实践,以及科学严谨的工作作风的初步养成;发展目标可以定位于“创新能力”的培养。我院在会计学专业培养方案中,将培养目标定位于“具有一定的科学研究能力”,并将撰写毕业论文的目的限定在“提高学生综合运用所学的基础理论知识、专业知识去发现、分析和解决会计、审计、内部控制和公司治理等领域中的实际问题的能力;理顺会计、审计、内部控制等理论和实践的正确关系,培养严谨的科学态度和认真踏实的工作作风;掌握撰写达到相应水平的学术论文的一般程序和方法”,既能适应用人单位对人才素质的要求,又符合我院学生实际情况,符合《高等教育法》和《学位条例》的相关规定,可资借鉴。
三、本科毕业论文制度的现实困境
现实中,影响目标实现的因素有很多,比如制度本身的合理性,制度是否具备了良好的配套措施和制度环境,组织和人员是否得力,等等。概括起来,核心的问题无非两个:一个是激励机制是否有效,另一个是约束机制是否有力。从激励机制来看,由于毕业论文答辩处于毕业前的最后阶段,此时,绝大多数同学已经签订工作合同,学校的评优评奖基本上也已尘埃落定,学生参加论文答辩的诉求基本上限于毕业,拿学位,论文成绩的好坏几乎没有什么区别,考核评价应有的激励功能严重缺失,很大程度上导致学生积极性不高、时间精力投入不够。加之学院一贯以来通过率极高的传统,不及格的威慑力几乎荡然无存,论文质量更加难以保障———指导老师催得紧,学生做得就认真些,若是指导老师松懈,学生就更加不当回事了。从约束机制来看,当前毕业论文考核采用五级计分制,教务处对优秀和及格两类要进行重点检查。由此,成绩多集中分布于“良好”和“中等”两个等级。虽然学校也对毕业论文工作进度做了适时的监控,但学校层面的检查以“抽查”方式进行,抽查名单出来后临时准备照样可以过关,监督的效力大打折扣;加之学生自身和指导老师在认知态度、知识结构和时间精力等方面的制约,特别是“在大学生毕业论文同就业之间存在一定的时间冲突的情况下,指导老师往往因为学生的就业问题而放松管理”,毕业论文质量受到严重冲击。
四、保障本科论文质量的制度安排
(一)时间安排
保障毕业论文质量,需要同时解决激励不足和约束不力的困境,而时间安排又是二者的前提。可尝试将毕业论文工作整体前移一个学期,即第6学期初期开始启动,第7学期期末结束。调整的目的,一是与毕业实习和择业错开时间,二是便于实施激励和约束;同时,在毕业实习之前接受系统的专业知识和初步研究能力的训练,还能够帮助学生全面认识和提升自己,更有针对性地选择实习单位和就业方向,增进毕业实习的功效。然而,毕业论文时间调整必然涉及相关规则的现实和整个人才培养方案的相应调整,难度较大,推进的具体思路尚需审慎论证。国内已有类似的探索,如黑龙江大学探索“分批答辩,适当提前”的策略,即满足学生合理的个性化需求(考研、就业等),又不放松毕业论文的质量要求;集美大学的实践效果也表明,绝大多数同学希望毕业论文(设计)能提前到第七学期进行修读,提前修读毕业论文质量明显提升,且更有助于用人单位的接收。
(二)激励机制
将原来的采用五级记分制(优秀、良好、中等、及格和不及格)缩减为三级(优秀、合格和不合格):“合格”论文满足基本目标即可;“优秀”论文要实现发展目标。激励机制旨在促进发展目标的实现。一方面优秀论文比例不做严格限制,但其产生过程需要接受严格监督;另一方面,给予优秀论文的学生一定物质奖励,同时与第8学期评奖、评优、保研、入党和推荐工作相挂钩,同等条件下优先考虑;部分奖项(比如优秀毕业生)可以将其设定为必要条件。
毕业论文致谢200字一:在本人的写作过程中,___老师给予了大力的帮助和指导,在此深表感谢!同时也感谢其他帮助和指导过我的老师和同学。
最后要感谢在整个论文写作过程中帮助过我的每一位人。 首先,也是最主要感谢的是我的指导老师,___老师。在整个过程中他给了我很大的帮助,在论文题目制定时,他首先肯定了我的题目大方向,但是同时又帮我具体分析使我最后选择失地农民的养老保险这个具体目标,让我在写作时有了具体方向。在论文提纲制定时,我的思路不是很清晰,经过老师的帮忙,让我具体写作时思路顿时清晰。在完成初稿后,老师认真查看了我的文章,指出了我存在的很多问题。在此十分感谢李老师的细心指导,才能让我顺利完成毕业论文。
其次,要感谢帮我查资料的张超同学,后期因为实习的关系,不能随时去学校的图书馆查阅资料,在此也十分感谢他能抽出时间帮我找的一些外文资料。
毕业论文致谢200字二:值此本科学位论文完成之际,首先要感谢我的导师___老师。_老师从一开始的论文方向的选定,到最后的整篇文论的完成,都非常耐心的对我进行指导。给我提供了大量数据资料和建议,告诉我应该注意的细节问题,细心的给我指出错误。他对分时电价领域的专业研究和对该课题深刻的见解,使我受益匪浅。_老师诲人不倦的工作作风,一丝不苟的工作态度,严肃认真的治学风格给我留下深刻的影响,值得我永远学习。在此,谨向导师___老师致以崇高的敬意和衷心的感谢!
毕业论文致谢200字三:在本论文的写作过程中,我的导师___老师倾注了大量的心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我表示衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。
写作毕业论文是一次再系统学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始。
从论文选题到搜集资料,从写稿到反复修改,期间经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中心情是如此复杂。如今,伴随着这篇毕业论文的最终成稿,复杂的心情烟消云散,自己甚至还有一点成就感。那种感觉就宛如在一场盛大的颁奖晚会上,我在晚会现场看着其他人一个接着一个上台领奖,自己却始终未能被念到名字,经过了很长很长的时间后,终于有位嘉宾高喊我的大名,这时我忘记了先前漫长的无聊的等待时间,欣喜万分地走向舞台,然后迫不及待地开始抒发自己的心情,发表自己的感想。这篇毕业论文的就是我的舞台,以下的言语便是有点成就感后在舞台上发表的发自肺腑的诚挚谢意与感想:
毕业论文致谢200字四:我要感谢,非常感谢我的导师许静老师。她为人随和热情,治学严谨细心。在闲聊中她总是能像知心朋友一样鼓励你,在论文的写作和措辞等方面她也总会以“专业标准”严格要求你,从选题、定题开始,一直到最后论文的反复修改、润色,许老师始终认真负责地给予我深刻而细致地指导,帮助我开拓研究思路,精心点拨、热忱鼓励。正是许老师的无私帮助与热忱鼓励,我的毕业论文才能够得以顺利完成,谢谢许老师。
我要感谢,非常感谢邱铮学长。正在撰写硕士研究生毕业论文的他,在百忙之中抽出时间帮助我搜集文献资料,帮助我理清论文写作思路,对我的论文提出了诸多宝贵的意见和建议。对学长的帮助表示真挚的感谢。
我要感谢,非常感谢__学弟们。他们为我提供了写作论文的重要工具——电脑。甚至为了让我方便进出他们的寝室专门为我配备了一把钥匙,而且四台电脑的密码也都一一告知于我,任我选用,让很非常感动。对学弟们的支持和帮助表示万分感谢。
毕业论文致谢200字五:为期一个学期的毕业论文(设计)已让我非常痛苦的接近尾声了,我的四年大学生涯也即将圈上一个句号。此刻我的心中却有些怅然若失,因为那些熟悉的会计系的恩师们和各位可爱的同学们,我们也即将挥手告别了。
四年间,每次走进会计系教研室都会让我感受到一种亲切热情的氛围。无论是学习、工作生活上的问题,恩师们都会悉心给以指导解答,让我倍受感动。也就是在这里,给我的大学生涯设计点上了第一个逗号。我的学术论文创作的开始,也是从这里起步的。从某种意义上可以说,今日的毕业论文(设计)其实从大一时已经开始了。
会计系的老师们,给我四年的学习、成长创造了一个良好的环境,引导我充分利用学校的学习资源,去发展、充实自我,而不曾虚度光阴。在此,我真诚的向你们道一声:“谢谢!”。
毕业论文致谢200字六:时光荏苒,不觉四年已到头。毕业答辩之后,很多熟悉的形影也许就将从身边永远地失落了。每年的这个时候,校园总难掩物是人非的感伤。
想对身边的同学、朋友、老师、食堂的大厨……所有我所认识与不认识的人,对校园里的花草树木、错落有致的高楼矮房……一切生灵和据说没生命的事物,对这一切的一切说声谢谢!四年,我们一起演绎了这六百亩土地的电闪雷鸣,一起体味这两百个礼拜的悲欢离合。相聚是缘,泪痕与汗渍、辛酸与甜蜜、浅薄与深沉,都融入这方寸之地,散落于每一个角落,不分彼此,直至永恒。我欣慰地知道,多年以后这里依然会到处充盈着我的气息,承载着我的青春岁月,对此我满怀感激。
我要感谢,非常感谢邱铮学长。正在撰写硕士研究生毕业论文的他,在百忙之中抽出时间帮助我搜集文献资料,帮助我理清论文写作思路,对我的论文提出了诸多宝贵的意见和建议。对学长的帮助表示真挚的感谢。
我要感谢,非常感谢xx学弟们。他们为我提供了写作论文的重要工具——电脑。甚至为了让我方便进出他们的寝室专门为我配备了一把钥匙,而且四台电脑的密码也都一一告知于我,任我选用,让很非常感动。对学弟们的支持和帮助表示万分感谢。
相关的论文致谢样本 ·毕业论文致谢如何写 ·课程设计论文致谢词 ·博士生论文致谢范例 ·硕士研究生毕业论文感谢信 ·本科毕业论文致谢 ·大专毕业论文致谢词
我要感谢,非常感谢自己。在论文的写作过程中,自己总是积极主动的,主动与老师同学们沟通,不耻下问。通过写作论文,我更加深刻理解了“态度决定一切”这句话。
毕业论文的标题不能象小说、散文那样经过艺术加工而引起读者的好奇心。论文的题目要让人一看就能直接了解它的论文。因此,拟题要采取直接、正面的提高论文内容的方法,而不要采取奇特的艺术手法。标题不可过长,尽量在20个字以内。
2. 目录 毕业论文篇幅长的要写出目录,使人一看就可以了解论文的大致内容。目录要标明页数,以便论文审查者阅读方便。
3. 内容摘要 内容摘要要求把论文的主要观点提示出来,便于读者一看就能掌握论文内容的要点。目前比较通用结构式摘要,包括研究目的、方法、结果和结论。摘要应有高度的概括力,且要全面反映论文要点,简明、明确、畅达。
4.正文 正文包括前言、材料与方法、结果、讨论。主要包括序论、本论文、结论三个主要部分。序论要对论题的主旨、写作的动机和理由、研究的方法以及论文的内容加以简要说明,通常几百字即可。本论是全篇论文的核心,在篇幅上占得最多,写时必须慎重对待,这一部分,作者要对所研究的问题进行分析、论证、阐明自己的观点和主张。结论,要把这部分写得简明扼要,既要考虑与序论部分相照应,还要考虑与本论部分相联系。结论应是本论部分阐述的必然结果。讨论部分可以展开写,写前人的研究情况与自己的研究结果比较,提出自己的观点和主张,提出值得进一步研究的方向和倾向性意见。
5.参考文献 毕业论文的卷末要列出参考文献。列出参考文献的好处是:一旦发现引文有差错,便于查找;审查者从所列的参考文献中可以看出论文作者阅读的范围和努力的程度,便于参考。
6.论文的装订 论文的有关部分全部抄清完了,经过检查,再没有什么问题,把它装成册,再加上封面。
毕业论文的封面要朴素大方,要写出论文的题目、学校、科系、指导教师姓名、作者性名、完成年月日。论文的题目的作者姓名一定要写在表皮上,不要写里面的补页上。封面可以这样写(不同学校有不同的要求):
一般说,教师、专家所提出的问题,仅涉及该文的学术范围或文章所阐述问题之内,而不是对整个学科的全面知识的考试和考查。
毕业论文答辩的主要目的,是审查文章的真伪、审查写作者知识掌握的深度,审查文章是否符合体裁格式,以求进一步提高。学生通过答辩,让教师、专家进一步了解文章立论的依据,处理课题的实际能力。这是学生可以获得锻炼和提高的难得机会,应把它看作,治学的“起点”。
(一)答辩的准备工作
学生可以从下列问题(第4~10题)中,根据自己实际,选取二三个问题,作好汇报准备,(第1~3题必选)。时间一般不超过10分钟。内容最好烂熟于心中,不看稿纸,语言简明流畅。
1.为什么选择这个课题(或题目),研究、写作它有什么学术价值或现实意义。
2.说明这个课题的历史和现状,即前人做过哪些研究,取得哪些成果,有哪些问题没有解决,自己有什么新的看法,提出并解决了哪些问题。
3.文章的基本观点和立论的基本依据。
4.学术界和社会上对某些问题的具体争论,自己的倾向性观点。
5.重要引文的具体出处。
6.本应涉及或解决但因力不从心而未接触的问题;因认为与本文中心关系不大而未写入的新见解。
7.本文提出的见解的可行性。
8.定稿交出后,自己重读审查新发现的缺陷。
9.写作毕业论文(作业)的体会。版权所有
10.本文的优缺点。
总之,要作好口头表述的准备。不是宣读论文,也不是宣读写作提纲和朗读内容提要。
(二)答辩会程序
1.学生作说明性汇报。(5~10分钟)
2.毕业答辩小组提问。
3.学生答辩。(一定要正面回答或辩解,一般允许准备10至20分钟)。
4.评定成绩。(答辩会后答辩小组商定,交系、院学位委员会审定小组审定。)
(三)学生答辩注意事项
1.带上自己的论文、资料和笔记本。
2.注意开场白、结束语的礼仪。
3.坦然镇定,声音要大而准确,使在场的所有人都能听到。
4.听取答辩小组成员的提问,精神要高度集中,同时,将提问的问题――记在本上。
5.对提出的问题,要在短时间内迅速做出反应,以自信而流畅的语言,肯定的语气,不慌不忙地―一回答每个问题。
6.对提出的疑问,要审慎地回答,对有把握的疑问要回答或辩解、申明理由;对拿不准的问题,可不进行辩解,而实事求是地回答,态度要谦虚。
7.回答问题要注意的几点:
(1)正确、准确。正面回答问题,不转换论题,更不要答非所问。
(2)重点突出。抓住主题、要领,抓住关键词语,言简意赅。
在搜集资料的过程中,我认真准备了一个笔记本。我在学校图书馆,大工图书馆搜集资料,还在网上查找各类相关资料,将这些宝贵的资料全部记在笔记本上,尽量使我的资料完整、精确、数量多,这有利于论文的撰写。然后我将收集到的资料仔细整理分类,及时拿给导师进行沟通。
4月初,资料已经查找完毕了,我开始着手论文的写作。在写作过程中遇到困难我就及时和导师联系,并和同学互相交流,请教专业课老师。在大家的帮助下,困难一个一个解决掉,论文也慢慢成型。
4月底,论文的文字叙述已经完成。5月开始进行相关图形的绘制工作和电路的设计工作。为了画出自己满意的电路图,图表等,我仔细学习了Excel的绘图技术。在设计电路初期,由于没有设计经验,觉得无从下手,空有很多设计思想,却不知道应该选哪个,经过导师的指导,我的设计渐渐有了头绪,通过查阅资料,逐渐确立系统方案。方案中LED显示屏行、列驱动电路的设计是个比较头疼的问题,在反复推敲,对比的过程中,最终定下了行驱动电路采用74LS154译码器,列驱动电路采用74HC595集成电路。
当我终于完成了所有打字、绘图、排版、校对的任务后整个人都很累,但同时看着电脑荧屏上的毕业设计稿件我的心里是甜的,我觉得这一切都值了。这次毕业论文的制作过程是我的一次再学习,再提高的过程。在论文中我充分地运用了大学期间所学到的知识。
我不会忘记这难忘的几个月的时间。毕业论文的制作给了我难忘的回忆。在我徜徉书海查找资料的日子里,面对无数书本的罗列,最难忘的是每次找到资料时的激动和兴奋;亲手设计电路图的时间里,记忆最深的是每一步小小思路实现时那幸福的心情;为了论文我曾赶稿到深夜,但看着亲手打出的一字一句,心里满满的只有喜悦毫无疲惫。这段旅程看似荆棘密布,实则蕴藏着无尽的宝藏。我从资料的收集中,掌握了很多单片机、LED显示屏的知识,让我对我所学过的知识有所巩固和提高,并且让我对当今单片机、LED显示屏的最新发展技术有所了解。在整个过程中,我学到了新知识,增长了见识。在今后的日子里,我仍然要不断地充实自己,争取在所学领域有所作为。
1.能正确地体现党和国家的有关方针政策,能很好地综合运用所学的理论与本专业的有关知识。2.能密切联系本系统、本部门、本单位的工作实际。分析问题正确、全面,具有一定深度或有所创见,对实际工作有一定的指导意义。
3.中心突出,论据较充足,结构严谨,层次分明,表达能力较强。
4.材料丰富,数据可靠,能运用科学方法进行加工整理。
(二)良好
1.能正确体现党和国家有关政策,能较好地运用所学理论与专业有关的知识。
2.能较好地联系工作实际,分析问题比较正确、全面,对指导现实工作有一定的参考作用。
3.中心明确,论据较充足,层次较分明,文句通顺,有较好的表达能力。
4.材料比较丰富,数据基本可靠,能较好地进行加工整理。
(三)及格
1.能正确理解党和国家有关方针与政策,在理论上没有原则性的错误,能基本掌握和运用本专业已学的有关知识。
2.尚能联系工作实际,基本上能表达自己的观点,有一定的分析问题与解决问题能力。但分析问题较肤浅,或只能罗列现象,中心不够突出。
3.有一定的论据,主要数据基本可靠,文句尚通顺。
4.有一定的原始材料,进行了一定程度的加工整理。
(四)不及格
凡有以下条款之一者,应评为不及格。
1.违背党和国家的有关方针、政策,或在理论上有原则性错误,掌握已学有关专业知识很差。
2.文章无中心,层次不清,.逻辑混乱,文句不通。
3.材料零乱不全或主要数据失真,加工整理差。
4.主要内容基本抄袭他人成果。
(五)凡属抄袭他人成果或属他人的论文,一经发现查实,即取消评阅、答辩资格。
以上评阅标准,一要严格掌握,不可降低标准,拔高分数;二要因时因地制宜,但在同一时间、同一批学员中,应“一碗水端平”,不可对不同的人采用不同的标准。
二、评语的写法
毕业论文的评语有两种:一是指导导师意见,二是答辩委员会意见。
(一)指导导师意见的写法
指导导师意见,主要是从写作角度对全篇论文作出评价。评价要点是:
1.观点是否正确、鲜明;
2.论据是否充分;
3,分析是否全面;
4.结构是否合理;
5.语句是否通顺;
6.有无现实指导意义。
下面是《对制止中小学乱收费现象的几点思考》一文的评语:
本文能理论联系实际,对当前中小学乱收费现象的表现及其产生原因作了较全面的分析,并提出了制止措施,对实际工作有一定的参考作用。文章结构合理,条理分明,论据较充分,语句通顺。
(二)答辩委员会意见的写法
1.答辩态度如何;
2.思路是否清晰;
3.回答是否准确;
4.语言是否流畅;
5.对原文不足方面有无弥补。
下面是中央党校函授学院86级学员大专毕业论文《私营企业问题与对策思考》一文的答辩委员会意见,不仅对答辩情况作出了客观评价还肯定了论文选题及创见性。对指导导师意见作了必要的补充。
windows xp 的安装时间在约20~30分钟左右,这还不算更新windows安全补丁、系统优化以及软件安装的时间,平均来算,要完全安装一个可用的(包含常用补丁和软件,以及必要的系统优化)windows xp操作系统,至少需要1个小时左右的时间。
对于做硬件维护的人们来讲,系统的这个安装和调试时间无论如何都是不能被很好接受的事实。即使硬件维护人员可以勉强接受这个安装时间,很多情况下,要使用计算机来办公的人员更难接受这个漫长而浪费时间的过程。这的确和高效率的社会结构不符,和高节奏的社会工作生活更不相符。
一直在探寻一种方法,在于如何高效的进行系统的维护乃至重新安装,如何把原来近1小时才能完成的繁杂工作控制在15分钟以内完成。
为解决系统安装过于繁杂耗时的问题,我首先考虑到的是利用微软自己的所谓“封装部署工具”(sysprep)。
所谓封装部署,是微软为大企业用户提供的一种结构化的部署操作系统的工具。可以在一台计算机上把已经做好各种调试的系统进行再封装,封装完毕的系统,可以部署到其他计算机中,部署时间相当的短,大概仅仅5~6分钟,极大的提高对计算机系统的维护效率。
但是封装部署是有条件的,即仅适用于封装的源计算机和用于部署的目标计算机必须具有相同硬件抽象层 (hal),即不相同硬件配置的机器不能互相部署对方机器上封装好的操作系统,这样就会对当今繁杂的计算机硬件配置中进行封装和部署造成极大的障碍。
通过对微软的操作系统longhron各内测版本进行启动过程的跟踪,发现微软在longhron启动参数中提供了/detecthal 接口,依靠这个接口,我们可以让计算机在启动时自动检测硬件抽象层(hal),通过了这个检测,封装完的系统在部署到不同的计算机中时,就不会出现由于硬件抽象层(hal)的不同而造成的系统在部署过程中由于对硬件的依赖而造成的种种非正常运行。
这个研究成功后,一个被调试好的系统(包括系统补丁追加、系统优化、常用软件安装)可以在进行封装后,高效的部署到任何硬件配置的其他计算机上,极大的缩短进行计算机维护的时间,极大的提高计算机维护的效率。
1.base 基本封装与部署的实现
1.1系统的封装与部署
系统的封装与部署,这个概念出自microsoft(微软)。在microsoft的windows系列系统光盘中,包含企业部署工具(deploy.cab),deploy中包括了几个可供管理员和 it 专业人士用来将 windows 部署到组织中多台计算机上的工具。
deploy.cab包括:setupmgr.exe、sysprep.exe、cvtarea.exe、oformat.com。
setupmgr.exe,中文译为:安装管理器,为预安装 microsoft 操作系统和各种应用程序自动创建和修改分布共享的向导。简单来说,这个工具主要是用来自动创建安装windows操作系统的自动应答文件,可以让系统的安装做到“无人职守”,即在系统的安装过程中,无需任何人为的干预。
sysprep.exe,中文译为:系统准备,准备计算机硬盘,以便进行磁盘复制、审核并交付客户。在分发前必须运行 sysprep 以重新封装计算机。sysprep 包含下列组件:sysprep.exe、setupcl.exe、factory.exe、sysprep.inf 和 winbom.ini。应用程序文件(sysprep.exe、setupcl.exe 和 factory.exe)是必需的,而且它们互相依存。简单来说,这个工具用于重新封装已经在计算机上安装好的系统,封装完毕的映像可以通过介质复制到其他计算机上,当获取封装好的映像的计算机启动时,sysprep.exe将调用%windir%\system32\setup.exe在获取映像的计算机中重新部署系统。这种部署类似于直接安装系统,但是速度要比正常安装快许多倍。
cvtarea.exe,一个用于在 fat32 或 fat 文件系统上创建文件并分析那些文件放置情况的灵活工具。使用 cvtarea 工具,您可以创建连续的文件并将其放在磁盘上的特定位置。
oformat.com,创建 fat32 卷,该卷中的簇以某种优化方法取整,以便在以后将其转换为 ntfs 文件系统格式。
总体而言,随着技术的发展,可以替代cvtarea.exe和oformat.com的工具出现了许多,setupmgr.exe用于生成无人职守安装应答文件,sysprep.exe是用于系统封装的主要工具。
1.2 setupmgr
获得封装好的系统映像的计算机,第一次启动时,将会自行进行系统部署,系统部署过程中,会提问用户有关产品密钥、时区、计算机名称、管理员密码等等,这个和普通的系统安装的步骤一样(当然,比普通安装快速的多),每次都去输入这些,无非会降低工作效率。
利用setupmgr.exe,可以为系统部署创建一份自动应答文件,当系统部署时碰到各种需要用户来确认的信息时,直接去这份自动应答文件中寻找预先规定好的答案,而无需提示用户输入。
setupmgr.ex的使用方法十分简单,安装提示一步步写下去即可。
写完后,即可单击“完成”,这样就可以完成所有有关无人职守安装模式的设定了。设定完成后,系统会自动生成sysprep.inf文件,这个文件中记录了所有有关自动应答的答案。
部署时,sysprep.inf置于%systemdrive%\sysprep文件夹中,即可执行无人职守的部署安装。
1.3 sysprep
1.3.1系统封装部署基本流程
一般流程为:
1>常规安装windows到被设置为启动的硬盘的第一分区(一般为c盘);
2>对系统做应有的系统补丁添加、驱动安装、系统优化调整、常用软件安装等;
3>在c盘根目录下创建sysprep文件夹,放入企业部署工具(deploy.cab)中的相应各文件;
4>使用setupmgr.exe创建自动应答文件;
5>运行sysprep.exe来封装当前系统为系统映像;
6>关闭计算机,利用第三方软件复制下这个系统映像(c盘全部),一般使用ghost;
7>利用网络或其他介质(光盘)复制该映像到其他计算机进行部署。
1.3.2 系统封装
做完上节中步骤的前4步,就可以进行对系统的封装了,运行c盘根目录下创建sysprep文件夹中的sysprep.exe,进入一下界面:
这是一个很简洁的界面,背后却包含着很高的技术含量。
“不重置激活的宽限期”,将以当前系统的激活剩余时间为主,做封装的系统是如果是免激活的windows,这一项应选中。
“使用最小化安装”,在xp以后的版本中,系统可以以“欢迎使用”方式安装,也可以使用经典的2000模式即“最小化安装”模式进行安装,一般选中“使用最小化安装”。
“不重新产生安全标识符”,即不重新产生sid,以当前系统的sid为准,这会一定程度的加快封装部署速度,但是会令部署后的系统产生不稳定,不建议选中。
“检测非即插即用硬件”,这会令系统强行检测非即插即用硬件,不建议选中。
“关机模式”,用来设定执行完封装以后要执行什么,有“关机”、“重新启动”和“退出”三种模式。
选择完毕后,单击“重新封装”,sysprep将当前系统自动封装为系统映像。
系统映像封装完毕后,无论是自动还是手动,重启计算机后,直接用带ghost工具的光盘由光盘直接启动计算机,使用ghost备份当前c盘系统磁盘映像。
备份完毕后,我们就得到了可以用来部署在其他计算机上的系统映像了。使用光盘或者网络等介质,将这个磁盘映像再次使用ghost恢复在其他计算机的c盘上,被恢复的计算机启动时会自动开始部署系统。
1.4 综述
本章主要陈述了关于windows操作系统的基本封装与部署的实现,微软的企业部署工具的效率和自动化程度相当高,封装和部署过程都比较简单。
但现在有一个很重要的问题,按照微软企业部署工具中deploy.chm中的简述,企业部署工具对于源计算机和目标计算机需要有相同hal(硬件抽象层)。
所谓hal,是由硬件制造商提供的一种薄层软件,为操作系统高层隐藏或抽象硬件差异。通过 hal 提供的筛选器,不同类型的硬件看起来与操作系统其余的硬件很相似。这样允许操作系统从一个硬件平台移植到另一个硬件平台。hal 还提供了允许单个设备驱动器在所有的平台上支持同样设备的例程。
封装好的系统在部署到硬件配置差异较大的计算机中时,特别是跨平台的计算机(intel cpu+intel主板做的映像部署到amd cpu+nvidia主板上时),会由于hal的差异而造成各种各样的不稳定乃至挡机,这就和要运用封装部署方式来快速安装系统的初衷不一致了。如果不能有良好的兼容性,即使能快速安装系统也完全是徒劳。
在随后的一章里,将完美解决这个问题,让对硬件平台有依赖的系统封装部署,变为只对硬件配置没有依赖的“万能的”封装部署。
2.unlimited万能封装与部署的实现
2.1 突破硬件限制的三个问题
2.1.1计算机电源管理模式
不同计算机的电源管理是不一样的,共有standard、acpi uniprocessor、acpi multiprocessor、mps uniprocessor、mps multiprocessor、compaq systempro、acpi这7种,这7种电源管理模式分别适用于7种类型的计算机。
截止windows server 2003的企业部署工具,运用sysprep有一个限制,就是仅适用于用于封装的源计算机和进行部署的目标计算机必须具有相同硬件抽象层 (hal)。
没有相同的hal,会造成电源管理模式不能正确判断。网络中提出了不用的hal检测解决方案,如acpi封包、死性不改的电源模式等等。但是这些都不能做到100%的电源判断正确,而且检测会需要额外的文件,并且可能多次重启计算机,耗费了时间。
问题1,怎么让sysprep突破不能自动检测电源管理的限制?
2.1.2计算机硬盘
计算机硬盘的发展可谓迅速。容量的提升,个人计算机硬盘容量从97年以前的个位数容量,突破到2007年现在的三位数容量。硬盘接口也一直在改变,从ide到sata,再从sata到sataii,从前一直在服务器上使用的scsi磁盘技术和raid磁盘阵列技术也渐渐的被使用到个人计算机中。(ide属于并口硬盘,sata和scsi都属于串口硬盘,raid属于硬盘阵列技术)。
在部署过程中,由于磁盘类型不同,需要不同的硬盘驱动(一般都是关于串口磁盘和磁盘阵列的驱动)。如果部署过程中不能正确加载硬盘驱动,则会造成不能进入系统甚至不能启动。
问题2,如何突破s&r&s(sata & raid & scsi)硬盘类型的限制?
2.1.3驱动残留
进行封装的源计算机如果和进行部署的目标计算机硬件差异很大,例如amd cpu+nvidia主板的源计算机做的系统映像部署到intel cpu+intel主板的机器上,在源计算机上装载的驱动程序肯定是在目标计算机上用不到了。即使目标计算机和源计算机硬件差异不大,但硬件技术差异很大,例如intel cpu+intel主板的源计算机做的系统映像部署到intel cpu+intel主板的机器上,源计算机为intel 865主板,而目标计算机为945主板,源计算机上的驱动也是铁定用不到的。
这些驱动的残留不仅仅是会留下系统垃圾的问题,如果源计算机上的驱动自动强行去识别目标计算机上的硬件,很有可能会造成系统的不稳定乃至蓝屏崩溃。
问题3,如何突破不同硬件驱动冲突的限制?
2.2 突破hal限制
2.2.1 longhorn的启示
windows server 2003之前,sysprep受到“必须源计算机与目标计算机有着相同的hal”的限制,在hal不相同的时候,不能正确判断计算机电源管理模式。
从2003年windows server 2003到2006年底windows vista的中的3年中,微软在研发vista的时候,了以内部研发编号命名的windows longhorn测试版。
windows longhorn与以往的windows在启动时有着一定的区别。
第一,ntldr 有一定区别,提供了“/detecthal” 接口;
第二,boot.ini也支持“/detecthal”参数,以实现与ntldr的结合;
第三,inf文件夹中有了“dtecthal.inf”, 提供各种hal类型检测的参数说明。
有了这三个文件,可以让计算机在开机启动时即自动检测 hal,从而可以自动判断电源管理选项。
2.2.2 移植longhorn的hal判断
现今大多数人还是以使用windows 2000/xp为主,所以,即使longhorn的hal判断再怎么强悍,不能移植到2000/xp中,也就不能使用。
以下是在2000/xp总移植并使用longhorn的hal判断的具体方法:
1>从系统中提取相应的hal文件包:(win2000在sp4.cab、windows xp sp2在sp2.cab中)
halacpi.dll
halapic.dll
halmps.dll
halaacpi.dll
halmacpi.dll
hal.dll
ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe
提取完毕后将hal.dll更名为halstnd.dll,ntoskrnl.exe更名为ntkrnlup.exe;
2>将上述相应的hal文件包拷贝到准备封装的系统的%windir%\system32\下;
3>将longhorn的“dtecthal.inf”拷贝到准备封装的系统的%windir%\inf\下;
4>修改c:\boot.ini
在准备封装的系统后面加上 /detecthal参数如:
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\windows="microsoft windows xp professional" /fastdetect /detecthal
5>将longhorn版本的ntldr拷贝到从c:\,覆盖原有的ntldr;
6>删除准备封装的系统的hal信息,删除注册表中以下键值,如果提示权限不足不能删除,则可用setacl.exe来修改权限再删除。
hkey_local_machine\system\controlset001\enum\acpi_hal
hkey_local_machine\system\controlset001\enum\root\acpi_hal
hkey_local_machine\system\controlset002\enum\acpi_hal
hkey_local_machine\system\controlset002\enum\root\acpi_hal
hkey_local_machine\system\controlset003\enum\acpi_hal
hkey_local_machine\system\controlset003\enum\root\acpi_hal
hkey_local_machine\system\currentcontrolset\enum\acpi_hal
hkey_local_machine\system\currentcontrolset\enum\root\acpi_hal
至此,突破了hal限制的系统就已经准备完毕。由于这个技术本身就出自微软,所以对电源管理的判断几乎是100%。
突破hal限制的系统可以部署在任何hal环境的计算机上,不再有“源计算机和目标计算机需有相同的hal”的限制。
2.1.1节中提出的问题完美解决
2.3 突破s&r&s 硬盘限制
确定目标计算机上可能用到的所有大量存储控制器,对于可能存在于目标计算机上的每个大量存储控制器,创建其硬件 id 的列表。
2.3.1对于在 windows 产品 cd 中提供的大量存储控制器
可以创建具有以下部分的 sysprep.inf 文件:
[sysprepmassstorage]
hardware_id = path_to_device_inf
其中:
hardware_id
在设备的 .inf 文件中指定的即插即用 id。
path_to_device_inf
.inf 文件的路径,该文件中包含待安装控制器的即插即用 id。
例如,要支持 windows xp 自带的不同 ide 控制器(pci 和 intel),该部分如下所示:
[sysprepmassstorage]
pci\ven_8086&dev_1222 = "%windir%\inf\mshdc.inf"
pci\ven_8086&dev_1230 = "%windir%\inf\mshdc.inf"
pci\ven_8086&dev_7010 = "%windir%\inf\mshdc.inf"
pci\ven_8086&dev_7111 = "%windir%\inf\mshdc.inf"
pci\ven_8086&dev_2411 = "%windir%\inf\mshdc.inf"
pci\ven_8086&dev_2421 = "%windir%\inf\mshdc.inf"
pci\ven_8086&dev_7199 = "%windir%\inf\mshdc.inf"
2.3.2 对于 windows 产品 cd 上没有提供的大量存储控制器
将目标计算机上的大量存储控制器的驱动程序文件复制到您计算机上的文件夹中 – 例如,复制到主计算机硬盘驱动器上的 %systemdrive%\pnpdrvrs\storage 中。
按以下格式向 [sysprepmassstorage] 部分中添加几行内容:
hardware_id = path_to_device_inf, disk_directory, disk_description, disk_tag
其中:
hardware_id
在设备的 .inf 文件中指定的即插即用 id。
path_to_device_inf
.inf 文件的路径,该文件中包含待安装控制器的即插即用 id。
disk_directory
第三方提供的软盘上的文件夹名称,该文件夹中包含大量存储驱动程序的副本。
disk_description
在第三方提供的 txtsetup.oem 文件中指定的软盘说明。
disk_tag
在第三方提供的 txtsetup.oem 文件中指定的软盘的磁盘标记。
将驱动程序文件放置到由 sysprep.inf 中 [sysprepmassstorage] 部分指定的位置。例如,要支持新的 qlogic 驱动程序,如果将文件复制到 c:\drivers\storage 文件夹,则添加如下行:
[sysprepmassstorage]
pci\ven_1077&dev_1080 = "c:\drivers\storage\qlogic\qlogic.inf", "c:\drivers\storage\qlogic", "qlogic software disk", "c:\drivers\storage\qlogic\qlogic
2.3.3 突破s&r&s实例
1>收集需要的srs驱动,方便期间,直接下载dps提供的massstorage 驱动:
/driverpacks/download.php?pag=m
2>解压驱动到c:\drivers 。
3>编辑sysprep.ini 加入以下内容
installfilespath=c:\sysprep\i386
然后在[sysprepmassstorage]段中添加需要的串口磁盘驱动,根据dps驱动包的说明书,一般只集成intel、nvidia、uli、via、sis、amd的串口磁盘驱动即可,在对应的驱动包中的inf文件中,可以获得硬件的即插即用id。
例如:
[sysprepmassstorage]
pci\ven_1022&dev_7469=c:\drivers\m\am\amdeide.inf
pci\ven_1002&dev_4349=c:\drivers\m\at\atiide.inf
pci\ven_10b9&dev_5215=c:\drivers\m\au\1\aliide.inf
pci\ven_10b9&dev_5219=c:\drivers\m\au\1\aliide.inf
pci\ven_10b9&dev_5229=c:\drivers\m\au\1\aliide.inf
pci\ven_10b9&dev_5228=c:\drivers\m\au\2\m5228.inf
pci\ven_10b9&dev_5281=c:\drivers\m\au\2\m5281.inf
pci\ven_10b9&dev_5287=c:\drivers\m\au\3\ulisata.inf
pci\ven_10b9&dev_5288=c:\drivers\m\au\4\ulisata.inf
pci\ven_10b9&dev_5289=c:\drivers\m\au\5\ulisata.inf
pci\ven_8086&dev_2652&cc_0104=c:\drivers\m\in\1\iastor.inf
pci\ven_8086&dev_27c3&cc_0104=c:\drivers\m\in\1\iastor.inf
pci\ven_8086&dev_2682&cc_0104=c:\drivers\m\in\1\iastor.inf
pci\ven_8086&dev_27c6&cc_0104=c:\drivers\m\in\1\iastor.inf
pci\ven_8086&dev_2822&cc_0104=c:\drivers\m\in\1\iastor.inf
pci\ven_8086&dev_2652&cc_0106=c:\drivers\m\in\1\iaahci.inf
pci\ven_8086&dev_2653&cc_0106=c:\drivers\m\in\1\iaahci.inf
pci\ven_8086&dev_27c1&cc_0106=c:\drivers\m\in\1\iaahci.inf
pci\ven_8086&dev_27c5&cc_0106=c:\drivers\m\in\1\iaahci.inf
pci\ven_8086&dev_2681&cc_0106=c:\drivers\m\in\1\iaahci.inf
pci\ven_8086&dev_2821&cc_0106=c:\drivers\m\in\1\iaahci.inf
pci\ven_8086&dev_24df&cc_0104=c:\drivers\m\in\1\o\iastor.inf
pci\ven_8086&dev_25b0&cc_0104=c:\drivers\m\in\1\o\iastor.inf
pci\ven_10de&dev_008e=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_00d5=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_00ee=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_00e3=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_0036=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_003e=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_0054=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_0055=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_0266=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_0267=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_036f=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_037e=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_037f=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_03f6=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_03f7=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_10de&dev_03e7=c:\drivers\m\n\tm\nvatabus.inf
pci\ven_1039&dev_0181=c:\drivers\m\si\1\sisraid1.inf
pci\ven_1039&dev_0180=c:\drivers\m\si\2\sisraid.inf
pci\ven_1039&dev_0182=c:\drivers\m\si\3\sisraid2.inf
pci\ven_1106&dev_3349&cc_0104=c:\drivers\m\v\1\viamraid.inf
pci\ven_1106&dev_6287&cc_0106=c:\drivers\m\v\1\viamraid.inf
pci\ven_1106&dev_0591&cc_0104=c:\drivers\m\v\1\viamraid.inf
pci\ven_1106&dev_3249&cc_0104=c:\drivers\m\v\1\viamraid.inf
pci\ven_1106&dev_3149&cc_0104=c:\drivers\m\v\1\viamraid.inf
pci\ven_1106&dev_3164&cc_0104=c:\drivers\m\v\1\viamraid.inf
pci\ven_1106&dev_0581&cc_0104=c:\drivers\m\v\1\viamraid.inf
pci\ven_1106&dev_7372&cc_0104=c:\drivers\m\v\1\viamraid.inf
pci\ven_1106&dev_4149=c:\drivers\m\v\2\viapide.inf
pci\ven_1106&dev_0571=c:\drivers\m\v\3\vminiide.inf
pci\ven_1106&dev_3149&cc_0101=c:\drivers\m\v\3\vminiide.inf
pci\ven_1106&dev_0591&cc_0101=c:\drivers\m\v\3\vminiide.inf
pci\ven_1106&dev_5337&cc_0101=c:\drivers\m\v\3\vminiide.inf
pci\ven_1106&dev_3349&cc_0101=c:\drivers\m\v\3\vminiide.inf
pci\ven_1106&dev_5287&cc_0101=c:\drivers\m\v\3\vminiide.inf
pci\ven_1106&dev_3164&cc_0101=c:\drivers\m\v\3\vminiide.inf
pci\ven_1106&dev_0581&cc_0101=c:\drivers\m\v\3\vminiide.inf
pci\ven_1106&dev_5324&cc_0101=c:\drivers\m\v\3\vminiide.inf
pci\ven_104b&dev_1040=c:\drivers\m\vm\vmscsi.inf
4>在c:\sysprep 目录下建立 i386\$oem$目录,在c:\sysprep\i386\$oem$ 中建立cmdlines.txt 文件,在文件中加入
[commands]
"c:\sysprep\sysprep -clean"
这样就会在最小化安装的过程中禁用所有因为在目标计算机上不存在而未安装的大量存储控制器。
至此,一个突破了s&r&s限制的系统映像准备完毕。
执行sysprep进行封装,在封装的过程中,系统会自动安装 srs驱动。在最小化安装的时候会删除多余的驱动。
2.1.2节中的问题,这里也就已经解决了。
2.4 多余驱动的卸载
做封装所用的计算机中所使用的驱动程序,在被部署的计算机上大多数不再有用(除非都被部署在相同硬件配置的计算机上)。所以,我们要一一删除源计算机中的这些驱动,以免残留的驱动造成部署的不正常。
卸载驱动,在“设备管理器”(我的电脑,属性,硬件,设备管理器)中列出所有设备,然后一一卸载。
在设备管理器中,可以看到当前正在使用的所有硬件设备。
1>常规驱动的卸载
除“ide ata/atapi控制器”和“计算机”以外的其他设备,一一展开,然后卸载即可。
2>更改ide模式
由于不同计算机的ide控制器差异比较大,如果出现错误的识别,将会出现不能开机的情况,所以,这里预先将ide控制器设置为“标准双通道”,在部署时,安装程序将自动寻找和起匹配的ide控制器驱动程序。
3>计算机电源管理
计算机电源管理分为许多种,可以适用于不同类别的计算机。如果电源管理判断不正确,将会造成计算机的不正常。在计算机识别电源管理之前,需要将电源管理设为标准模式以基本适用于所有的计算机,这种标准模式仅仅可以保证计算机正常启动,但是不能保证最高效的运行。
将计算机的电源管理模式设置为standard pc以后,在部署时,由于我们适用了longhorn的hal自动判断,计算机将会在启动时自动修改standard pc为被部署计算机的电源管理模式。
至此,突破了硬件限制的系统映像也被修改了出来,系统映像可以被部署到不同硬件配置的机器中了。
2.1.3节中的问题被解决。
2.5 综述
在不同硬件配置的机器中适用系统部署受到种种制约,本章分为3块解决了映像系统万能部署的3条限制。
longhron的自动hal判断,解决了源计算机与目标计算机在不同hal模式时不能进行部署的问题。
s&r&s驱动的集成,解决了系统部署在不同硬盘模式的情况下进行部署的问题。
驱动的卸载,解决了系统部署在不同硬件配置的计算机下进行的问题。
这3条限制被突破以后,系统部署时,不必再遵循源计算机和目标计算机必须相同配置的原则,真正可以实现无限制的“万能部署”。3.auto 自动封装与部署的实现
3.1 自动封装与部署的意义和理论实现
3.1.1自动封装的意义
1>封装测试需要很多次的重复
封装一个可以部署的系统映象并不难,但是封装一个比较完美的可以满足各项要求的系统映象却是一个特别花费时间和精力的工作,需要很多次的重复制作。仅上一章中所提到的各种限制的突破,如果每次测试都时候都做一次,也会消耗很多的时间。
能不能让这些手工的机械化的操作变成自动的?
2>频繁的手工操作容易造成错误
即使是一个对封装十分了解的人,在多次的执行封装中,也难免会出现遗漏和失误,毕竟封装的步骤一环扣一环,虽然不繁琐也难免会造成错误。
怎么让封装的流程变的自动而无需人手工参与?
3>封装的普及
很多it工作者并不十分了解封装与部署,却一样想做出自己的系统映象用来部署,由于工作等原因实在没有时间去系统的学习,难道封装只能掌握在少数人手中?
怎么让封装更为普及化,让没有太多封装知识和经验的人也能迅速的进行系统封装?
3.1.2 系统封装和部署的详细流程
1>系统安装、补丁、软件等;
[封装]:
2>在系统光盘上找到deploy.cab,解压到%system%\sysprep;
3>运行setupmgr.exe创建无人职守部署应答文件sysprep.inf;
4>突破hal限制,把于hal相关的文件都放置在%windir%下相应位置,提取longhorn的ntldr1,修改boot.ini;
5>突破s&r&s限制,把所有串口磁盘和磁盘阵列驱动都放置在%systemdrive%\drivers下,在sysprep.inf中的[sysprepmassstorage]段下添加磁盘驱动位置等信息;
6>卸载各种驱动,修改ide控制器为标准双通道,修改计算机电源管理为standard pc;
7>运行sysprep.exe进行系统封装;
8>关闭封装源计算机;
9>dos模式启动封装源计算机,使用ghost备份下封装完的系统映象;
[部署]:
10>使用ghost恢复系统映象到部署目标计算机;
11>部署目标计算机,系统运行%windir%\system32\setup.exe来部署计算机映象。
3.1.3 自动封装的理论实现
纵观流程,封装过程基本上可以分为相关文件的复制、对文件的调整、相关软件的运行、对系统的调整四部分。
相关文件的复制,简单说,就是把应该放在哪儿的文件放在哪儿,这些文件都是特定的,进行封装必然要用到这些文件,所以,可以预先把这些文件提取出来放置在一个另外的文件夹中,然后用winrar压缩为自解压文件并设定解压位置,这样到用这些文件的时候直接双击自解压包,这些要用到的文件就会各自解压到自己应该在的位置上。
对文件的调整,主要是替换longhorn的ntldr,以及修改boot.ini,这个我们可以用命令行修改系统自身的ntldr为ntldr.bak,修改系统自身的boot.ini为boot.ini.bak,然后把 longhorn的ntldr和修改好的boot.ini复制到原系统ntldr和boot.ini的位置。当系统部署完毕后再把原始的ntldr和boot.ini替换回来,虽然替换回原有的不是必须的,但是个人认为,保持原系统的原始性一定程度上有利于系统的稳定性。
相关软件的运行,这个主要是sysprep,如果每次要为sysprep设置相同的执行方式,那么sysprep提供很多的运行参数,添加参数运行sysprep,就免去了每次都要去点击封装选项的问题。
对系统的调整,主要是卸载驱动以及调整计算机电源管理和ide控制器。虽然这个可以使用自动化实现,但是个人认为这个手工还是比较保险。
3.2 实现自动封装与部署
3.2.1 文件的自动复制
建立如下目录,以d:\es文件夹为例:
d:\es\ sysprep\ cvtarea.exe
d:\es\ sysprep\ oformat.com
d:\es\ sysprep\ setupcl.exe
d:\es\ sysprep\ sysprep.exe
d:\es\ sysprep\ sysprep.inf
d:\es\ sysprep\ setacl.exe
d:\es\sysprep\autosysprep.cmd
d:\es\sysprep\cmdline.reg
d:\es\windows\ inf\ dtecthal.inf
d:\es\windows\ system32
d:\es\windows\ system32\ halaacpi.dll
d:\es\windows\ system32\ halacpi.dll
d:\es\windows\ system32\ halapic.dll
d:\es\windows\ system32\ halmacpi.dll
d:\es\windows\ system32\ halmps.dll
d:\es\windows\ system32\ halstnd.dll
d:\es\windows\ system32\ mscomctl.ocx
d:\es\windows\ system32\ ntkrnlmp.exe
d:\es\windows\ system32\ ntkrnlpa.exe
d:\es\windows\ system32\ ntkrnlup.exe
d:\es\windows\ system32\ ntkrpamp.exe
d:\es\windows\ allusrrun.cmd
d:\es\ drivers
d:\es\ bootl.ini
d:\es\ ntldrl
说明:
1>es文件夹模拟c盘根目录,所有文件排布和此后要复制到c盘中的排布是一样的;
2>sysprep中的所有文件在第一章中介绍过,sysprep文件夹将在系统部署最小化安装时自动删除,setacl.exe是提升权限以修改注册表的工具,autosysprep.cmd是自动进行封装所用的批处理,cmdline.reg将在3.2.3中详细说明;
3>inf和system32文件夹中的各文件在第二章中介绍过,用于longhorn的自动hal判断;
4>allusrrun的用处后面详细介绍;
5>bootl.ini是为hal自动判断所写好的boot.ini文件,内容为:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\windows="microsoft windows xp professional" /fastdetect /detecthal
6>ntldrl是longhorn的系统引导文件,同样用于自动hal判断。
7>drivers中放置串口磁盘和磁盘阵列驱动
文件打包:
选择最常用的压缩工具winrar来进行打包es文件夹中的所有文件,设定默认解压缩路径为c:\并且设置解压模式为“隐藏启动对话框”和“覆盖所有文件”,这几个选项的设定可以保证文件不会复制到错误的位置。
3.2.2 自动封装的实现
autosysprep.cmd的内容如下(以封装xp系统为例):
rem 自动封装,静默模式、最小化、不重置激活事件、清空事件查看器日志、不重启计算机
start /wait c:\sysprep\sysprep.exe -quiet -mini -activated -reseal -noreboot
rem 导入cmdline.reg键值(3.2.3中介绍)
start /wait regedit.exe /s c:\sysprep\cmdline.reg
rem 取消xp的ntldr权限,改名为ntldrxp,再恢复其权限
attrib c:\ntldr -h -s -r
ren c:\ntldr ntldrxp
attrib c:\ntldrxp +h +s +r
rem 取消longhron的ntldrl的权限,改名为ntldr,再恢复其权限
attrib c:\ntldr1 -h -s -r
ren c:\ntldr1 ntldr
attrib c:\ntldr +h +s +r
rem取消xp的boot.ini权限,改名为bootxp.ini,再恢复其权限
attrib c:\boot.ini -h -s -r
ren c:\boot.ini bootxp.ini
attrib c:\bootxp.ini +h +s +r
rem 取消longhron的bootl.ini的权限,改名为boot.ini,再恢复其权限
attrib c:\boot1.ini -h -s -r
ren c:\boot1.ini boot.ini
attrib c:\boot.ini +h +s +r
rem 进入sysprep文件夹内
cd\
cd\sysprep
rem 使用setacl来取消有关源计算机hal的注册表信息的权限,以便随后的修改
setacl machine\system\controlset001\enum\acpi_hal /registry /grant everyone /full
setacl machine\system\controlset001\enum\root\acpi_hal /registry /grant everyone /full
setacl machine\system\controlset002\enum\acpi_hal /registry /grant everyone /full
setacl machine\system\controlset002\enum\root\acpi_hal /registry /grant everyone /full
setacl machine\system\controlset003\enum\acpi_hal /registry /grant everyone /full
setacl machine\system\controlset003\enum\root\acpi_hal /registry /grant everyone /full
setacl machine\system\currentcontrolset\enum\acpi_hal /registry /grant everyone /full
setacl machine\system\currentcontrolset\enum\root\acpi_hal /registry /grant everyone /full
rem 删除源计算机的hal注册表信息
reg delete hkey_local_machine\system\controlset001\enum\acpi_hal /f
reg delete hkey_local_machine\system\controlset001\enum\root\acpi_hal /f
reg delete hkey_local_machine\system\controlset002\enum\acpi_hal /f
reg delete hkey_local_machine\system\controlset002\enum\root\acpi_hal /f
reg delete hkey_local_machine\system\controlset003\enum\acpi_hal /f
reg delete hkey_local_machine\system\controlset003\enum\root\acpi_hal /f
reg delete hkey_local_machine\system\currentcontrolset\enum\acpi_hal /f
reg delete hkey_local_machine\system\currentcontrolset\enum\root\acpi_hal /f
rem 以下用于intel cpu + intel 主板的源计算机,intel的这两组键值容易造成部署到非intel硬件计算机中的蓝屏事故
rem使用setacl来取消有关当前intel 主板的注册表信息的权限,以便随后的修改
setacl machine\system\controlset001\services\intelide /registry /grant everyone /full
setacl machine\system\controlset002\services\intelide /registry /grant everyone /full
setacl machine\system\controlset003\services\intelide /registry /grant everyone /full
setacl machine\system\currentcontrolset\services\intelide /registry /grant everyone /full
rem使用setacl来取消有关当前intel cpu的注册表信息的权限,以便随后的修改
setacl machine\system\controlset001\services\intelppm /registry /grant everyone /full
setacl machine\system\controlset002\services\intelppm /registry /grant everyone /full
setacl machine\system\controlset003\services\intelppm /registry /grant everyone /full
setacl machine\system\currentcontrolset\services\intelppm /registry /grant everyone /full
rem 删除有关intel主板的注册表信息
reg delete machine\system\controlset001\services\intelide /f
reg delete machine\system\controlset002\services\intelide /f
reg delete machine\system\controlset003\services\intelide /f
reg delete machine\system\currentcontrolset\services\intelide /f
rem 删除有关intel cpu的注册表信息
reg delete machine\system\controlset001\services\intelppm /f
reg delete machine\system\controlset002\services\intelppm /f
reg delete machine\system\controlset003\services\intelppm /f
reg delete machine\system\currentcontrolset\services\intelppm /f
3.2.3 部署过程的调整
部署过程,其实就是系统映象恢复到目标计算机上,目标计算机启动,系统会自动运行%windir%\system32\setup.exe来部署系统。
如果我们想在setup.exe前或者后运行点什么,该怎么办?例如,我们要在setup.exe运行后将原来系统的ntldr和boot.ini恢复回来,而不是使用longhorn的,怎么办?
经过对比封装前和封装后的注册表,发现目标计算机启动后,将要进行部署时并非是一定要运行%windir%\system32\setup.exe,而是运行系统注册表中“hkey_local_machine\system\setup”分支下的“cmdline”键值所指定的应用程序。在系统封装完成时,“hkey_local_machine\system\setup”分支下“cmdline”键值被修改为“setup.exe”,这就是为什么目标计算机启动后会运行setup.exe来部署系统的原因。
我们自己写一个批处理,批处理的内容包括运行setup.exe和恢复原有ntldr、boot.ini,把这个批处理的名字定名为“allusrrun.cmd”,并且把“hkey_local_machine\system\setup”分支下“cmdline”的键值由“setup.exe”修改为“allusrrun.cmd”。这样源计算机启动的时候并非运行setup.exe来部署系统,而是运行allusrrun.cmd。
allusrrun.cmd的内容如下:
rem 把我们修改的cmdline键值重新置空
reg delete hkey_local_machine\system\setup /v cmdline /f
rem 部署系统,全新安装、最小化执行
setup.exe -newsetup –mini
rem 修改longhorn的ntldr权限,并删除
attrib c:\ntldr -h -s -r
del c:\ntldr
rem 修改先前备份的xp的ntldrxp权限,改名回ntldr,恢复权限
attrib c:\ntldrxp -h -s -r
ren c:\ntldrxp ntldr
attrib c:\ntldr +h +s +r
rem 修改longhorn的boot.ini权限,并删除
attrib c:\boot.ini -h -s -r
del c:\boot.ini
rem 修改先前备份的xp的bootxp.ini权限,改名回boot.ini,恢复权限
attrib c:\bootxp.ini -h -s -r
ren c:\bootxp.ini boot.ini
attrib c:\boot.ini +h +s +r
rem修改多启动菜单等待时间为5秒
bootcfg /timeout 5
这样部署过程就被我们调整的如我们所愿了。
3.3 综述
经过3.2节中的几步,自动封装和部署基本被我们实现。
3.1.2中[封装]段的步骤被简化为:
1>运行自动解压缩,把文件解压到相应位置;
2>卸载驱动,手动修改ide控制器和计算机电源管理;
3>运行%systemdrive%\sysprep文件夹中的autosysprep.cmd封装系统;
4>重启计算机,使用ghost备份系统映象。
3.1.2中[部署]段的步骤变为:
1>恢复系统映象到目标计算机;
2>目标计算机启动,自动运行allusrrun.cmd部署系统并还原系统原始的ntldr和boot.ini。
如此以来,系统封装将变的十分简单,不仅给多次测试封装系统带来很大的方便,还能让没有太多封装经验的人迅速封装系统。
系统自动化封装和部署完美实现。
结论
全文分3章讲述了封装部署方法快速安装和部署操作系统的方法。
从第一章的基本实现到第二章的万能实现,再到第三章自动实现,一步步实现了从最基本封装部署到全自动封装部署。