关于dos启动的一些知识

关于dos启动的一些知识       最近装一个linux版本,就要用到dos,找来找去,忙乎了半天,又是缺文件,又是改配置。发现,一直用dos,但是还没有好好研究它。要研究dos,得从它的启动信息开始。。。。   一、DOS启动过程:开机->IO.SYS->MSDOS.SYS->CONFIG.SYS->COMMAND.COM->AUTOEXEC.BAT一般来说需要修改的是MSDOS.SYS、C

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
 
       最近装一个linux版本,就要用到dos,找来找去,忙乎了半天,又是缺文件,又是改配置。发现,一直用dos,但是还没有好好研究它。要研究dos,得从它的启动信息开始。。。。

 
 
 

一、DOS

启动过程:开机->IO.SYS->MSDOS.SYS->CONFIG.SYS->COMMAND.COM->AUTOEXEC.BAT

一般来说需要修改的是MSDOS.SYS、CONFIG.SYS和AUTOEXEC.BAT(若要激活成功教程硬盘逻辑炸弹,则可修改IO.SYS),而涉及到启动光盘制作的则主要是CONFIG.SYS和AUTOEXEC.BAT(使用一些DOS工具)

1、CONFIG.SYS
CONFIG.SYS是系统启动配置文件,它主要用于加载内存管理程序、设置扩充内存及扩展内存、加载有关硬件驱动程序,设置有关环境变量等,为用户计算机的正常使用创造必要的用户环境。

用法:

[menu]

menuitem=CDROM,CDROM——Start computer with CD-ROM support. //菜单选项及说明

menuitem=CDUSB,CDUSB—-With CD-ROM and USB device support.

menuitem=DOSONLY,DOSONLY—-DOS Prompt only.

menudefault=CDROM,30   //默认菜单选项及等待时间

menucolor=7,0   //菜单颜色

[COMMON]   //所有选项的共同配置

device=himem.sys   //加载扩展内存管理器

device=emm386.exe noems //管理高端内存并在扩展内存中模拟扩充内存供某些软件使用

files=30   //表示可同时打开的文件数,一般可选择20-50,系统默认为8

buffers=30   //表示磁盘缓冲区的数目,通常设置为20-30左右,缺省值一般为15

dos=high,umb //将DOS的系统文件移入高端内存,空出更多的基本内存给其他软件使用。

devicehigh=ramdrive.sys /E 8192 //将内存虚拟磁盘驱动载入高端内存,并设定磁盘大小为8MB

lastdrive=z

[CDROM]   //各选项独自的配置,[]中的名字必须和[menu]中的选项相同

devicehigh=oakcdrom.sys /D:mscd001
//将ATAPI光驱驱动程序加载入高端内存


[CDUSB]

devicehigh=oakcdrom.sys /D:mscd001


//将USB驱动程序加载入高端内存
DEVICEHIGH=ECHO.SYS L/o/a/d/i/n/g SCSI//USB /d/r/i/v/e/s /s/u/p/p/o/r/t…

DEVICEHIGH=DUSE.EXE INT EMU CDW=3 DDW=3 XFER=32 DRIVES=2 CDD=USB-CD

DEVICEHIGH=USBASPI.SYS /R /NORST

DEVICEHIGH=ASPIOHCI.SYS /INT /ALL

DEVICEHIGH=ASPIUHCI.SYS /INT /ALL

DEVICEHIGH=DI1000DD.SYS

DEVICEHIGH=USBCD.SYS /D:USB-CD

DEVICE=ECHO.SYS

[DOSONLY]

如果无需使用多种配置,则不用[menu]段,直接写配置就ok了

2、AUTOEXEC.BAT

电脑每次启动时都会自动寻找AUTOEXEC.BAT批处理文件,从而可执行一些每次开机都要执行的命令,比如设置路径PATH、加载鼠标驱动MOUSE、磁盘加速SMARTDRV等。

与上面的CONFIG.SYS相对应的内容:

@ECHO OFF //不显示命令行

if %config%==DOSONLY goto DOSONLY

set EXPAND=YES //set后面的EXPAND相当于一个字符串变量,下同

set DIRCMD=/O:N

set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15

set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C

set temp=c:/

set tmp=c:/

call setramd.bat %LglDrv% //call调用另一批处理文件,执行完后返回,相当于函数调用,               //setramd.bat为设置内存虚拟磁盘

goto %config% //跳转,此处的%config%相当于一个标签,其内容为所选的菜单的名字

:CDROM

LH A:/MSCDEX.EXE /D:mscd001 /L:%CDROM%   //加载CD-ROM驱动到高端内存,lh即loadhigh

path=A:/;%CDROM%:/Tools;%CDROM%:/Tools/ghost;%CDROM%:/Tools/pq;%CDROM%:/Tools/hd;%CDROM%:/Tools/dm;c:/windows;c:/windows/command   //设置文件查找路径

IF ERRORLEVEL 1 SET CDPROB=1

smartdrv.exe   //加载磁盘高速缓存,对硬盘上的文件进行拷贝的话必须加载,否则速度极慢

call cramd.bat   //cramd.bat的内容:

      //@echo off

      //set comspec=%RAMD%:/command.com

      //copy a:/*.* %RAMD%:/ >nul

      //设定COMMAND.com为内存虚拟盘中COMMAND.com,并把软盘镜像中的文件拷到         //内存虚拟盘%RAMD%中

a:/mouse.com >nul

%CDROM%:

GOTO QUIT

:CDUSB

goto quit

:DOSONLY

goto QUIT

:QUIT

set CDPROB=

set LglDrv=

TW /np /n3 > nul //TW为天汇中文系统,以便显示中文,需拷到启动镜像中

cls   //清屏

echo 谢谢使用   //echo后面的是在屏幕上显示的信息

pause   //显示Press any key to continue… 等待用户按任意键后继续

call help.bat

3、DOS启动盘中的部分文件的说明

Aspi2dos.sys、Aspi4dos.sys、Aspi8dos.sys、Aspi8u2dos.sys和Aspicd.scys:以上五个文件为实模式的Adaptec光驱驱动程序

Oakcdrom.sys:ATAPI光驱驱动程序

Btcdrom.sys、Flashpt.sys和Btdosm.sys: Mylex/BusLogic光盘驱动程序

Config.sys:用于加载设备驱动程序  

Drvspace.bin:DriveSpace压缩驱动程序

Himem.sys:扩展内存(XMS)管理器

Io.sys:实模式操作系统

Msdos.sys:系统引导选项配置文件

Ramdrive.sys:启动创建一个虚拟盘

Autoexec.bat:含可执行指令的自动批处理文件

Setramd.bat:搜索第一个可用于虚拟盘的驱动器盘符

Command.com:命令解释程序

Sys.com:系统传输工具,用于制作最基本的MS-DOS启动盘  

Edb.cab:内含可提取工具的CAB文件  

Extract.exe:从CAB文件提取文件的工具

Fdisk.exe:磁盘分区工具

chkdsk.exe:磁盘检测工具

scandisk.exe:磁盘扫描工具

Findramd.exe:启动时探测虚拟盘的实用程序

Smartdrv.exe:启用磁盘高速缓存工具

—————————————————————————————————————————————————-

二、镜像制作

事实上大部分工具软件镜像都可以从网上下载到,不过如果你实在找不到现成的,或想自己做个最新版本的,那么就可能会涉及到下面所讲的东西

1、直接修改

如果你有旧版本的镜像文件的话,一般来说,只要更新替换里面的文件就可以使镜像处于最新版本了。

2、制作新的镜像

有些工具无需特别的运行环境,此时只需对一个98启动盘镜像修改就可以了,像Ghost、PQ、DiskGenius等就属于此。此时注意适时加载SmartDrv.exe等(偶尔会对config.sys中的内存管理设定有些要求)就可以了,某些情况下若要对NTFS系统操作的话,就得加载NTFS For DOS之类的软件了,有了上面的一些DOS基本知识,这些应该不会很难了

相对的,某些工具是需要特别的运行环境的,基本上也就是基于其它DOS或Linux,部分修改起来相当麻烦,所以网上基本上是搜不到相应的镜像下载的,这里也不涉及这些。我们可能用到的可能也就是一些专用的磁盘修复工具,如IBM(日立)的DFT、西部的DLGDIAG等,其中Seagate的较新版本的SeaTools所用的OnTrack系统的独占性要求很高,不用其本身的引导文件开机直接引导的话,似乎都无法运行。

新镜像制作实例:

下面以江民KV2005的DOS杀毒盘为例,大致介绍一下镜像的制作

所需的一些工具:

VMWare(里面的镜像软驱非常好用,而且装软件也不会对当前系统造成影响)

WinImage(读取VMWare里的软驱的内容,做成IMA镜像文件)

EasyBoot(制作超大的软盘镜像)

具体步骤://①②③④⑤⑥⑦⑧⑨⑩

①在新建或已有的VMWare虚拟机中添加软驱(没有的话),并使用镜像(新建文件floppy.flp),当然也可以使用物理软驱,不过还是算了吧,既慢又容易坏且还得找软盘。

②在VMWare虚拟机中装好操作系统(如xp),安装KV2005

③打开KV2005,选择制作DOS杀毒伴侣,提示需要四张软盘(在这不使用U盘或文件夹方式,因为其它工具很少支持这种制作的)。制作好第一张软盘后,打开WinImage,读出软盘中的内容(见附件1),保存为IMA镜像文件,如kvdos1.ima。用同样的方法制作剩下的三张软盘,并得到kvdos2.ima、kvdos3.ima和kvdos4.ima

④将这四个ima文件从虚拟机中拷到当前系统中(如果虚拟机中有EasyBoot就不用了,不过还是建议在当前系统中装EasyBoot)

⑤打开EasyBoot,选择工具->生成新的软盘印像(这里印像和镜像都是指同样的东西),种子印像文件选择kvdos1.ima,大小选4320(够了),输出文件取名为KVDOS.img,点击生成(见附件2)

⑥用WinImage将那四个ima文件的内容拖出来,并放入KVDOS.img中就ok了

ps:

①虚拟机安装了VMWare Tools后,就可以使用映射网络驱动器来用享当前系统的一些资源了,不过还是用鼠标直接拖动比较方便,按着鼠标左键不放拖动文件就可以了,从虚拟机到当前系统或反过来都行(VMWare 5.0),建议使用VMWare 5.0,文件传送速度快了不少

②如果工具软件不超过两张软盘的容量,则无需使用EasyBoot来制作镜像,直接用WinImage,将镜像更改格式为2.88M就可以了;WinImage7.0已经支持生成任意大小(见附件3)

—————————————————————————————————————————————————-

三、系统文件的制作

关于这方面的内容,本版块的帖子已经相当多,大家可以看看老大的帖子或下载启动光盘制作完全手册看看

在这里,以一个举一反三的例子向大家介绍一下其它一些功能的实现

内容:使用O&O BlueCon XXL Admin Suite制作2000/xp/2003的密码修改镜像,并添加到启动光盘中

热身知识:

2000/xp/2003安装引导过程——先加载光盘引导文件w2ksect.bin(或其它,这个文件在EasyBoot的安装目录的子目录ezboot里)->setupldr.bin->ntdetect.com->再加载驱动程序->读txtsetup.sif->开始光盘安装

所需的一些工具:

O&O BlueCon XXL Admin Suite

WinImage

UltraEdit

EasyBoot

具体步骤:

1、安装O&O BlueCon XXL Admin Suite后,使用O&O BootWizard XXL制作ISO镜像(非常简单,也就不废话了)

2、将该ISO展开,得到win51*.*(取决于制作ISO时所用的系统文件,可用xp或2003的)和文件夹i386(相当于一个软盘启动组),将win51*.*和i386拷到EasyBoot中指定的光盘文件目录下(这里假设为MyCD),将i386改名为pwcr

3、将MyCD/ezboot中的w2ksect.bin改名为pwcr.bin(没有的话自己找一个,多的是),用UltraEdit将pwcr.bin中I386改为PWCR(一处),进入MyCD/pwcr,将setupldr.bin中的i386改为pwcr(四处),即重新指定启动加载的文件的位置

4、在EasyBoot的对应命令菜单中执行 run pwcr.bin就ok了

ps:

1、只要知道这些原理就可以举一反三了,例如把WinPE集成到光盘中。制作n合1的光盘也就多了修改txtsetup.sif,以重新指定安装文件所在位置罢了

2、用EasyBoot制作这样的ISO时,别忘了选上优化光盘文件,这可会省下不少空间(取决文件内容)

**************************特别说明***************************

和winnt.sif一样,txtsetup.sif是制作安装光盘中极为重要的一个文件,里面记录了安装文件所在位置以及安装时文件拷贝的目标文件夹

txtsetup.sif的实际作用其实就是把指定的文件按要求拷贝到预设好的位置上,最可能用到的是以下几段:

[SourceDisksNames.x86]——用代码表示源文件的位置

[WinntDirectories]——用代码表示文件拷贝的目标文件夹,其根目录为%WinDir%,即安装指定的Windows文件夹

[SourceDisksFiles]——根据前面设定的代码表示文件拷贝的具体细节,见下面的例子

下面3段为集成SATA、SCSI等驱动时所用

[HardwareIdsDatabase]——硬件标识

[SCSI.Load]——SCSI驱动加载

[SCSI]——SCSI设备说明

[HiveInfs.Fresh]——全新安装时根据指定的inf文件中的字段添加注册表信息(猜的,不过可能性蛮高的,但是实用性不强)

[HiveInfs.Upgrade]——升级安装时根据指定的inf文件中的字段添加注册表信息(同上括号)

先看看txtsetup.sif中比较常用一行描述([SourceDisksFiles]中):

defragP.chm = 1,,,,,,,21,0,0,defrag.chm

其中:

第一位,即源文件位置位的1,在[SourceDisksNames.x86]中有说明,表示源文件为原版本且在光盘上i386文件夹(常用的还有100,表示源文件为SP补丁中较新版本的文件)

21为文件拷贝目标位置位,指定了该文件拷贝的目标文件夹,在[WinntDirectories]中有说明,表示%WinDir%/help文件夹

上面第一个0为升级代码位,含义为:(升级时)0-总拷贝文件;1-安装文件夹中有该文件才拷贝;2-安装文件夹中有该文件时不拷贝;3-不拷贝文件

第二个0为新安装代码位,含义同上(全新安装时),另外据说此代码若不为0,其前面需多加2个逗号

defrag.chm表示将目标文件改名为此

因此,这一行表明,不管是升级还是全新安装,都将源文件defragP.chm拷贝到%WinDir%/help文件夹下并改名为defrag.chm

再看一个例子:

sp2.cab=100,,,,,,_x,39,0,0

其中:

_x表示文件没有经过压缩,即不是诸如LOGONUI.EX_之类经过cab压缩的,实际上加不加关系好像不大,虽说涉及到layout.inf中文件设定的大小(初步校验文件是否被修改过)

下面举两个实际应用的例子:

1、集成Royale主题

首先对该主题涉及到的文件进行处理:

将Royale.theme中的”Wallpaper=%WinDir%Resources/Themes/Royale/Energy Bliss.jpg”修改为

“Wallpaper=%WinDir%Resources/Themes/Royale/EnergyBliss.jpg”,也就是改一下桌面图片的文件名而已,因为在txtsetup.sif中重命名文件时好像不能有空格符

文件改名(最好符合8.3)

Royale.theme -> Royale.the

Royale.msstyles -> Royale.mst

EnergyBliss.jpg -> Royale.jpg

shellstyle.dll -> Royale.dll

用modifype处理一下Royale.mst文件的校验码,以防文件拷贝时报错(具体哪些文件要处理我也拿不准,修改过的微软的东西可能性比较大,特别是第一位取100而不是1时,是否要处理视具体情况而定)

用makecab压缩一下文件(可以不压),并把文件拷贝到i386文件夹中

修改txtsetup.sif

在[WinntDirectories]中添加

250 = Resources/Themes/Royale

251 = Resources/Themes/Royale/Shell/NormalColor

在[SourceDisksFiles]中添加

Royale.the = 1,,,,,,,129,0,0,Royale.theme

Royale.mst = 1,,,,,,,250,0,0,Royale.msstyles

Royale.jpg = 1,,,,,,,250,0,0,EnergyBliss.jpg

Royale.dll = 1,,,,,,,251,0,0,shellstyle.dll

2、集成安装(以打补丁为例)

将补丁以及xpinstall等相关文件准备好(放在同一文件夹下,并配置好xpinstall.xml,用xpinstall来安装补丁比较美观)

用WinRAR将这些文件做成自解压压缩文件xp_patch.exe,并在自解压选项的模式中指定解包到临时文件夹和全部隐藏(这样就神不知鬼不觉了),以及指定xpinstall为解压后运行的程序

用makecab压缩该文件,并把文件拷贝到i386文件夹中

在[SourceDisksFiles]中添加

xp_patch.exe = 1,,,,,,,1,0,0

在winnt.sif中的[GuiRunOnce]添加

Command0=”%WinDir%/xp_patch.exe”

ps:

1、手动安装(可进修复控制台)时,必须去掉winnt.sif的[Unattended]段,从而导致了OEM的设定无效,对应的文件夹无法自动拷贝系统盘中,但winnt.sif中和该段无关的设置依然是有效的,所以可以设定程序自动运行,剩下的问题也就是程序文件的定位了,利用txtsetup.sif就可以很好地完成这一任务了(当然大部分情况下也可以利用cmdlines.txt来实现,不过某些程序的安装还是建议系统装完后才执行)

2、制作 n in 1 的光盘时,安装程序应该是根据setupldr.bin指定的位置去加载winnt.sif和txtsetup.sif,所以启动组要包含特定的winnt.sif和txtsetup.sif(没试过启动组中不包含txtsetup.sif是否ok,实在没空,抱歉)

************************************************************

—————————————————————————————————————————————————-

四、光盘启动菜单

使用EasyBoot做菜单应该说是很简单的了,毕竟EasyBoot本身就非常简单,而且自带的帮助也很详细,要做得漂亮些,菜单条就选用图像文本吧,就像老大的光盘一样

下面bcdw 2.0a1为例,简单介绍一下结合EasyBoot用bcdw直接引导ISO的方法

1、找到bcdw.ini,编辑内容如下:

/BootCD1.iso ;My Bootable CDRom1

/BootCD2.iso ;My Bootable CDRom1

(”/”表明BootCD1.iso和BootCD2.iso均在光盘根目录下,”;”后是菜单显示信息)

2、将bcdw.bin和bcdw.ini拷到MyCD/bcdw文件夹下,并把bcdw自带loader.bin改名为bcdwload.bin,拷到MyCD/ezboot文件夹下

3、制作好BootCD1.iso和BootCD2.iso并拷到MyCD文件夹下

4、在EasyBoot中增加菜单项,执行 run bcdwload.bin

ps:

事实上,这里直接引导iso的类型是有限制的,像Windows和Linux的启动光盘好像都不行,这点确实很可惜,跟CD Shell一样

—————————————————————————————————————————————————-

五、虚拟机测试

建议使用VMWare 5.0或以上版本,不过已装好4.x的虚拟机系统要upgrade到5.0的话并不十分容易,请认真查看说明帮助,测试时要善用snapshot(5.0之后的版本能建立多个snapshot,非常方便),例如在测试cmdlines.txt的作用时,因为该文件是到了组件安装时才拷贝并加载的(还剩十来分钟时的样子),所以可以在之前做个snapshot,iso中更新了cmdlines.txt的相关内容后,直接还原该snapshot就可以使用新的cmdlines.txt设置了

—————————————————————————————————————————————————-

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158883.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 卸载软件包命令_查看rpm包是否安装

    卸载软件包命令_查看rpm包是否安装可以先用rpm-q’xxx’或者rpm-qf’xxx/bin/xxxx.xx’来查询一下所属的rpm包的名字。然后用rpm-e’xxxxxx’来删之。’xxx/bin/xxxx.xx’是一个包中任意的文件’xxxxxx’是查询得到的rpm包的名称    rpm-e的时候后面的文件名不用加版本号 安全地卸载RPM卸载软件包,并不是简单地将原来安

  • Poemscape|Beta阶段第一天[通俗易懂]

    Poemscape|Beta阶段第一天[通俗易懂]Poemscape|Beta阶段第一天

  • 金士顿DataTraveler 100G3 16G的U盘量产过程

    金士顿DataTraveler 100G3 16G的U盘量产过程几年前买的金士顿16GU盘由于这几天安装系统做成了启动盘,刚开始还可以正常,谁知道睡了一觉就废了。第一次尝试修复具体表现:1、插上电脑可以识别盘符,但是打不开,提示请插入U盘。2、磁盘管理中

  • SpringBoot集成Redis和配置Redis做缓存[通俗易懂]

    SpringBoot集成Redis和配置Redis做缓存[通俗易懂]Redis介绍Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单。Redis数据库中所有数据都存储在内存中,由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有非常明显的优势,而且Redis提供了对持久化的支持,即可以将内存中的数据异步写入到硬盘中,且不影…

  • 添加config文件_config配置文件

    添加config文件_config配置文件在我们第一次写web应用程序的时候,我们很快会接触到一个文件,那就是配置文件——web.config。我们的第一个比较深刻的使用就是我们不需要把我们的数据库链接零散的写在我们的代码中了,我们只需要在w

  • Python websocket_php需要编译吗

    Python websocket_php需要编译吗这里很坑爹………地址换了….网上到处都是旧的github地址….更郁闷的是旧地址的代码在centos等各个linux都能编译通过,但是到了mac就郁闷了,各种报错…..坑爹来的然后很多人说hs没在维护了,那是因为他们看到的是旧的git代码地址….囧…..搞死我了,我还真以为他不更新了,看到git项目,3年没更新了,心都凉了……各种找错误各种…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号