一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx

上传人:b****3 文档编号:5321758 上传时间:2022-12-15 格式:DOCX 页数:49 大小:1.21MB
下载 相关 举报
一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx_第1页
第1页 / 共49页
一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx_第2页
第2页 / 共49页
一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx_第3页
第3页 / 共49页
一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx_第4页
第4页 / 共49页
一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx

《一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx》由会员分享,可在线阅读,更多相关《一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx(49页珍藏版)》请在冰豆网上搜索。

一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文.docx

一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现学士学位论文

北方民族大学

学士学位论文

论文题目:

一个计算机工厂自动化网络拷盘系统NTFS分区子系统的设计与实现

 

北方民族大学教务处制

一个计算机工厂自动化网络拷盘系统

NTFS分区子系统的设计与实现

 

摘要

随着计算机的应用越来越广泛,使用计算机的人群也随之扩大,计算机工厂在出厂机器的时候一般都需要帮用户预装好操作系统,但由于硬盘的容量越来越大,传统那种使用硬盘拷贝机进行扇区对扇区拷贝的方式效率越来越低下,已不能满足计算机工厂的需要。

解决上述问题的办法就是开发一个高效的自动化拷盘系统。

为了解决计算机预装系统效率低的问题,国内某计算机生产商自主研发了自动化网络拷盘系统,研发工作的基本思路是针对计算机工厂批量生产,通过多层次的软件体系结构设计,实现一个集基于Linux操作系统的服务器子系统、平台无关的客户端子系统和NTFS分区子系统为一体的“计算机工厂自动化网络拷盘系统”。

该系统通过网络同时对几十台计算机,甚至上百台计算机进行磁盘拷贝,由于避免了传输无效数据和采用P2P加速技术,使整个磁盘拷贝过程在十几分钟内完成,不仅可以大大提高计算机工厂的生产效率,还可以大幅度节省工厂的生产成本。

本文描述了从需求调研到设计再到实现一个计算机工厂自动化网络拷盘系统的NTFS子系统。

该子系统主要功能是解析Windows系统常用的NTFS文件系统的数据组织方式,提取出母盘中NTFS分区的数据文件,并在子盘中进行数据恢复,为其他子系统提供高速读写NTFS文件系统中的数据的统一接口。

 

关键词:

文件系统,数据恢复,Windows,NTFS

 

DesignandImplementationoftheNTFSPartitionSubsystemofacomputerfactory’sAutomaticNetworkingCopyDiskSystem

 

Abstract

Withtheapplicationofthecomputermoreandmorewidely,usingthecomputercrowdalsobeexpanded.Computerfactorygenerallyneedstohelptheusertopre-installedoperatingsysteminthefactorymachines.Duetoharddrivecapacityisincreasing,thetraditionalmethodofusingtheharddriveduplicatortocopydiskssector-by-sector,that’sefficiencyislowerandlower.Itcannotmeettheneedsofthecomputerfactory.Thewaytosolvetheproblemistodevelopanefficientautomaticcopydisksystem.

Inordertosolvetheproblemoflowefficiencyofcomputerpre-installedoperatingsystem,acomputermanufacturerresearchanddevelopmentanAutomaticNetworkingCopyDiskSystem.ThebasicideaoftheR&Dworkisthroughingmulti-layeredsoftwarearchitecturedesigntoachieveanAutomaticNetworkingCopyDiskSystemwhichcontainsaserversubsystemontheLinuxoperatingsystem,aplatform-independentclientterminalsystemandaNTFSpartitionssubsystemforthecomputerfactory’smassproduction.Thesystemthroughthenetworkandthedozensofcomputers,orevenhundredsofcomputer’sdiskarecopiedatthesametime.DuetoavoidingcopytheinvaliddataandusingtheP2Ptransmissionacceleratingtechnology,thewholediskcopyprocessinlessthan20minutesisfinished.Itnotonlycangreatlyimprovecomputerfactoryproductionefficiency,butalsocansavetheplantproductioncost.

Thispaperdescribesthedemondresearch,designandachievetheNTFSPartitionSubsystemofacomputerfactory’sAutomaticNetworkingCopyDiskSystem.ThemainfunctionoftheNTFSPartitionSubsystemisanalysingthewaytoorganisedataofNTFSfilesystemthatWindowsgenerallyuse,extracttingthedataintheNTFSpartitionsofthebase-drive,andrecoveringdataintothetargetdrive.TheNTFSPartitionSubsystemalsoprividestheunifiedinterfacesthatcanreadandwritedatainNTFSpartitioninhighspeedtoothersubsystems.

KeyWords:

FileSystem,DataRecovery,NTFS,Windows

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

1绪论

1.1引言

目前国内的计算机生产商在出厂计算机的同时,一般都会帮用户预装Windows系统,当然考虑到成本问题,也可能会帮用预装FreeDOS、Linux等免费的操作系统,但国内大多数用户习惯使用Windows,所以大部分计算机预装的都是Windows。

这就带来一个问题,计算机生产商不可能像普通用户那样去给计算机安装Windows,因为通过正常方法安装一个Windows系统至少需要10-15分钟,这样就会大大影响生产效率。

传统方法是把安装好系统的硬盘作为母盘,使用硬盘拷贝机进行扇区对扇区的拷贝,但也只能同时进行一块到5块至10块硬盘的拷贝,效率仍然不高。

因为传统方式是扇区对扇区拷贝的,空白区域也会进行拷贝,所以随着硬盘容量越来越大,拷贝效率也越来越低,已经不能满足计算机生产商的需要。

1.1项目背景及意义

本人之前在国内某大型计算机生产商厂实习,为了解决计算机预装系统效率低的问题,该公司自主研发了自动化网络拷盘系统,研发工作的基本思路是针对计算机工厂批量生产,通过多层次的软件体系结构设计,实现一个集基于Linux操作系统的服务器子系统、平台无关的客户端子系统和NTFS分区子系统为一体的“计算机工厂自动化网络拷盘系统”。

该系统通过网络同时对几十台计算机,甚至上百台计算机进行磁盘拷贝,由于避免了传输无效数据和采用P2P加速技术,使整个磁盘拷贝过程在十几分钟内完成,不仅可以大大提高计算机工厂的生产效率,还可以大幅度节省工厂的生产成本。

本课题为NTFS分区子系统的设计与实现,该子系统主要功能是分析Windows系统常用的NTFS文件系统的格式,提取出母盘中NTFS分区的数据文件,并在子盘中进行数据恢复。

1.3自动化网络拷盘系统概述

1.3.1系统概述

自动化网络拷盘系统的总体拓扑结构如下图所示,其中服务器包括文件服务器和DHCP服务器。

当某个客户端连接到系统中时,自动获取IP地址,并且通过网络启动,加载一个非常小(8MB)的Linux系统至内存中,然后运行内置在该Linux系统中的客户端程序,向文件服务器请求所需的文件,然后在局域网中包含该文件的机器上下载。

当所有文件下载完成之后该客户机即完成网络磁盘拷贝。

图1.1系统拓扑结构图

1.3.2系统体系结构

自动化网络拷盘系统分为服务器子系统,客户端子系统,NTFS子系统和母盘制作工具。

它们之间的关系如下图所示:

图1.2系统体系结构图

以下分别介绍系统中各个部分:

1)服务器子系统:

服务器子系统包括DHCP服务器和文件服务器,DHCP服务器负责自动给连接到本网络的客户机分配IP地址,文件服务器存储客户机所需要的文件并且负责正确地响应客户机的下载文件请求;

2)客户端子系统:

客户端子系统集成在从服务器下载过来的Linux操作系统的文件系统中,客户端子系统负责根据从服务器下载到的文件列表从服务器或其他客户端请求下载所需要的文件,调用NTFS子系统的写接口,将文件正确地写到磁盘中正确的位置;

3)NTFS子系统:

NTFS子系统负责解析NTFS文件系统,正确地对NTFS文件系统中的所有文件和目录进行快速读写操作。

NTFS子系统根据NTFS文件系统组织数据的方式,向下直接对磁盘的扇区进行读写,向上提供统一的接口,供客户端子系统和母盘制作工具调用;

4)母盘制作工具:

母盘制作工具负责调用NTFS子系统的读接口,将安装好操作系统的磁盘上的分区信息及数据正确地读取出来,并且上传给服务器子系统。

同一批次的计算机通常只需要执行一次这个过程。

2相关技术及开发环境介绍

2.1磁盘分区结构

对于一块硬盘来说,要想存储数据,就必须将其进行划分并格式化成某种文件系统后才能使用。

经过划分后的区域,我们称其为“分区”。

因为我们要给客户预装的是Microsoft公司的Windows系统,而目前的Windows系统分区体系仍旧用的是该公司之前DOS系统采用的DOS分区体系,所以下面主要介绍一下DOS分区体系。

计算机系统为管理好硬盘,需要维护有关各分区的基本信息,建立在0柱面、0磁头、0扇区上的硬盘分区表用来保存这些信息。

该扇区是系统中的一个特殊扇区,是完成系统主板BIOS向操作系统交接的重要入口,称为硬盘主引导记录MBR(MasterBootRecorder)或主引导扇区。

所谓特殊,是因为计算机启动时执行完BOIS的启动代码,检查各硬件设备正常后,跳转到MBR的引导代码进行执行;然后定位到活动分区的引导记录,进一步引导及启动系统。

MBR由446个字节的引导代码、64个字节的主分区表及2个字节的签名值“55AA”组成,以下是它们各自的作用【4】:

1)引导代码:

MBR接管系统的控制权后,引导代码负责对其他代码信息进行检查,并进一步引导系统;

2)分区表:

分区表负责描述磁盘内的分区情况,共4个分区表项,每个表项占用16个字节,每个表项描述一个DOS分区,最多可以描述4个主分区;

3)“55AA”有效标志:

“55AA”标志作为有效标志以通知系统该MBR扇区是否有效,如果该标志丢失或损坏,磁盘将会显示为“未初始化”。

在MBR里,只放不多于三个主分区(通常只放一个)剩下的分区,则由与MBR结构很相像的另一种分区结构(EBR,ExtendedBootRecord,也就是扩展分区引导记录)里进行说明。

一个EBR不够用时,可以增加另一个EBR,如此像一根根链条一样地接下去,直到够用为止。

如果分区表中有扩展分区,那么从该扩展分区的第一个扇区。

在这个EBR中,也与MBR一样包含4个分区表项,但不含有引导代码。

EBR中的4个分区表项并不全部使用,而是使用其中的两个【4】:

1)第一个先描述一个文件系统分区以及该分区的大小,这个分区也被称为“二级文件系统分区”

2)第二个分区表项描述出下一个扩展分区的起始位置及大小

每个分区在分区开始的第一个扇区是引导扇区DBR(DOSbootrecord),引导扇区具体的结构根据文件系统的不同而不同,见下一小节的介绍。

2.2NTFS文件系统概述

NTFS与以前的FAT文件系统完全不同,它采取了不同的方式对文件系统中的数据进行管理,甚至包括文件系统管理数据本身。

在NTFS中引入了一些全新的概念和结构,下面介绍一些必要的概念[4]。

1.MFT

MFT,即主文件表(MasterFileTable)的简称,它是NTFS文件系统的核心。

MFT由一个个的MFT项(也称为文件记录)组成,每个MFT项占用1024的空间。

每个MFT项的前部几十个字节有着固定的头结构,用来描述本MFT项的相关信息。

后面的字节用于存放“属性”。

每个文件和目录的信息都包含在MFT中,每个文件和目录在表中至少有一个MFT项。

除引导扇区外,访问其他任何一个文件前都要先访问MFT,在MFT中找到的该文件的MFT项,根据MFT项中记录的信息找到文件内容并对其进行访问。

2.属性

在NTFS中,所有与数据相关的信息都被称为“属性”,文件名属性、日期与时间属性,甚至文件内容与被称为“数据属性”。

NTFS与其他文件系统最大的不同之处就在于,大多数文件系统对文件的内容进行读写,而NTFS则是对包含文件内容的属性进行读写。

3.NTFS元文件

NTFS文件系统被创建时,会同时建立一些重要的系统信息。

这些系统信息也全是以文件的形式存在,被称为元文件。

元文件的文件名都以“$”符号开头,表示其为了隐藏的系统文件,用户不可直接访问。

NTFS中的元文件共有16个,我们主要关心其中的第一个:

$MFT,它其实就是整个主文件表,也就是将整个MFT看作一个文件。

我们访问一个MFT项时,实际就是访问$MFT文件中的某个文件记录。

一个NTFS文件系统大致上可以分为引导区、MFT区、MFT备份区、数据区和DBR备份扇区几个部分,引导扇区必须位于第一个扇区,NTFS卷可以在任意位置存放任意文件。

1)引导区:

引导区部分包含DBR和引导代码,一般系统为其分配16个扇区,但未全部使用;

2)MFT区:

这一块区域存放文件系统的MFT文件,NFTS会尽量保证MFT文件所在区域是一块连续的区域,即尽量保证没有碎片;

3)MFT备份区:

由于MFT文件的重要性,在文件系统的中部为其保存了一个备份(有时也可能不在中部),不过这只是MFT前几个项的备份;

4)数据区:

这块区域用来存放用户数据;

5)DBR备份区:

在卷的最后一个扇区,保存了一份DBR扇区的备份。

NTFS的引导扇区位于文件系统的0号扇区,其结构如下表所示:

表5-1NTFS引导扇区数据结构【4】

字节偏移

(十六进制)

字节数

含义

00~02

3

跳转指令

03~0A

8

OEM名(明文“NTFS”)

0B~0C

2

每扇区字节数

0D~0D

1

每簇扇区数

0E~0F

2

保留扇区数(Microsoft要求置为0)

10~14

5

未使用(Microsoft要求置为0)

15~15

1

介质描述符

16~17

2

未使用(Microsoft要求置为0)

18~19

2

每磁道扇区数(Microsoft称不对此处值进行检查)

1A~1B

2

每柱面磁头数(Microsoft称不对此处值进行检查)

1C~1F

4

隐含扇区数(Microsoft称不对此处值进行检查)

20~23

4

未使用(Microsoft要求置为0)

字节偏移

(十六进制)

字节数

含义

24~27

4

未使用(此处总为“80008000”)

28~2F

8

文件系统扇区总数

30~37

8

MFT起始簇号

38~3F

8

MFT备份的起始簇号

40~40

1

每MFT项(即文件记录)大小

41~43

3

未使用

44~44

1

每个索引的大小簇数

45~47

3

未使用

48~4F

8

序列号

50~53

4

校验和

54~1FD

426

引导代码

1EE~1EF

2

签名“55AA”

我们主要关心DBR以下几个字段:

MFT文件的逻辑簇号、每个扇区的字节数、每个簇的扇区数,通过这几项,在加上分区表中的分区起始扇区信息,我们便可以找到每个分区的MFT文件在磁盘中的具体位置。

2.3开发环境

2.3.1Ubuntu10.04LTS简介

Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。

Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。

Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助[1]。

Ubuntu项目完全遵从开源软件开发的原则;并且鼓励人们使用、完善并传播开源软件。

也就是Ubuntu目前是并将永远是免费的。

然而,这并不仅仅意味着零成本,自由软件的理念是人们应该以所有“对社会有用”的方式自由地使用软件。

“自由软件”并不只意味着您不需要为其支付费用,它也意味着您可以以自己想要的方式使用软件:

任何人可以任意方式下载、修改、修正和使用组成自由软件的代码。

因此,除去自由软件常以免费方式提供这一事实外,这种自由也有着技术上的优势:

进行程序开发时,就可以使用其他人的成果或以此为基础进行开发。

对于非自由软件而言,这点就无法实现,进行程序开发时,人们总得白手起家。

基于上述原因,自由软件的开发是迅捷、高效和激动人心的!

与大多数发行版附带数量巨大的可用可不用的软件不同,Ubuntu的软件包清单只包含那些高质量的重要应用程序。

注重质量,Ubuntu提供了一个健壮、功能丰富的计算环境,既适合家用又适用于商业环境Ubuntu支持各种形形色色的架构,包括i386(386/486/Pentium(II/III/IV)和Athlon/Duron/Sempron处理器),AMD64(Athlon64,Opteron及64位Intel处理器),以及PowerPC(iBook/Powerbook,G4andG5)等。

Ubuntu10.04LTS(LucidLynx)在2010年4月29日发布,启动速度更快。

Ubuntu的所有版本至少会提供18个月的安全和其它升级支持。

Ubuntu6.06LTS和Ubuntu8.04LTS以及Ubuntu10.04LTS有点特别,它们是长期支持(Long-TermSupport,LTS)版本,已是个准企业级版本,其桌面版本会提供3年支持,而服务器版本则将提供长达5年的支持。

2.3.2EclipseCDT简介

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)[2]。

虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。

Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。

由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

EclipseCDT是Eclipse插件,它将把Eclipse转换为功能强大的C/C++IDE。

它被设计为将Java开发人员喜爱的许多Eclipse优秀功能提供给C/C++开发人员,例如项目管理、集成调试、类向导、自动构建、语法着色和代码完成。

当Eclipse被用作JavaIDE时,它将利用JDK并与之集成。

同样地,CDT将利用标准的C/C++工具并与之集成,例如g++、make和GDB。

这使得CDT在Linux中变得非常流行,这些工具都可在Linux中使用并用于大多数C++开发。

可以在Windows上设置CDT以使用相同的工具。

目前还在努力将CDT与Microsoft的C++工具结合使用,以使CDT对WindowsC++开发人员更有吸引力[3]。

3需求分析

3.1可行性分析

3.1.1经济可行性分析

与该子系统功能类似的有一个叫做ntfs-3g的开源项目,通过它可以在Linux

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1