发信人: Wwashington()
整理人: jiaxu2000(2004-03-30 09:36:52), 站内信件
|
发信人: Wwashington (Jacky), 信区: WinNT 标 题: OS Loader 的应用心得(战略篇) 发信站: BBS 水木清华站 (Tue Oct 13 08:48:34 1998)
序言: 偶在青蛙的 NT 斑竹马上两届任满, 该退休乐. 想想看没什么送给大家的, 最后决定还是再写 一两篇水分少些的文章吧.这份 OS Loader 的 应用心得应该是最后一篇乐. 目录: OS Loader 的应用心得(战略篇) OS Loader 的应用心得(怀旧篇) OS Loader 的应用心得(维护篇)
版权声明: =====> 为促进技术交流, 也为了杜绝抄袭, 特声明如下, 本文 属非赢利技术交流, 任何人可以在不修改原文以及保留 清华的文件头(包括原作的出处--水木清华,作者信息及 发文时间)的情况下自由转载. 作者 Wwashington @ 水木清华站.
关于本文: 本文是关于中文 Win98 + 中文 WinNT4 的 OS Loader + 英文 Dos 6.22 的 一个技术文档, 如果要查英文的全面的资料, 请参考下列网址: http://home.netvigator.com/~nazareth/comp/multi-os/ 偶发现他的文章主要针对英文版的, 而且用 英文书写,所以就萌发了写这个中文版的念头. 值得庆幸的是, 在写<OS Loader 的应用心得> 的同时, 解决了以前的一个关于 Winboot.sys 的问题, 算是了却了一个旧愿.
热身练习: 在读本文之前, 我们假定泥已经 知道如何设置 Win98 的 MSDOS.SYS 文件里 的 BootMulti=1 以及已经把 DOS62 的启动 文件 IO.DOS,MSDOS.DOS,COMMAND.DOS 放到 乐 C: 盘的根目录, 而且泥也知道 NT 引导, 知道如何安装 OS Loader, 请参见偶的一篇 老文章 <不装 NT 用 OS Loader(终结版)>, 偶认为有以下几种方法更新 NT 引导记录, 1. 从光盘运行 Winnt /b, 去找光盘很烦. 2. 从硬盘运行 Winnt /b, 只需两个文件. 3. 用 NT 的紧急修复盘 , 选修复引导区, 但是软盘的速度是乌龟的啦, 呵呵 ... 以上方法偶推荐第二种,因为它快,就酱紫.
先说怎样获取 w98 和 msd 的 bootsect 吧, [01] 在 Win98 的 F8 选 DOS71 下, c: cd c:\winnt\osloader Winnt /b 然后就 cd c:\ attrib -h -s -r *.* copy bootsect.dos bootsect.w98 这个 bootsect.dos 是 Win98 的引导 记录, 需要预先保存起来.
[02] 安装好 OS Loader, 就可以从那个 Microsoft Windows 选项中 Boot 到 Dos622, 然后可以看到 Jo.sys 以及 MSDOS.w40, Command.w40, 此时重新 启动机器,用 Dos62 软盘引导, 并且 sys a: c: c: cd c:\winnt\osloader Winnt /b 然后就 cd c:\ attrib -h -s -r *.* copy bootsect.dos bootsect.msd 这个 bootsect.dos 是 DOS62 的引导 记录, 也需要预先保存起来. 现在泥该 明白偶为甚摸要分开 w98 和 msd 两个 不同后缀的文件乐吧 ...
硬盘重启的时候泥就回发现多乐一项 "MS-DOS" , 那就是说 Boot.ini 里面 C:\ 项目也即是 C:\Bootsect.dos 的 内容是 Bootsect.msd 的, 而不是那个 Bootsect.w98 的, 因此我们通过启动 几次后的实践认为, C:\Bootsect.dos 并非简单的等于 DOS62 或 Win98, 而 是相对 NT 而言的其他 MS 产品如 DOS 和 Win98 的引导记录 , 所以我们完全 有必要把 w98 和 msd 的 Bootsect 分 开存放.
至于软盘启动前为甚摸要先起到 Win98 里的 Dos62 , 主要是让当前的系统文件 例如 IO.SYS 和 MSDOS.SYS,Command.com, 还有启动文件 Config.sys和Autoexec.bat 都是属于 DOS62 的, 泥用 sys a: c: 去 刷新引导区的时候, 不至于把属于 Win98 的 文件也给干掉乐, 那样子非常倒霉的哦 ...
[03] 关于 Linux 下 Bootsect, 可以参照下面的 例子, 其中 if 应该为泥的 root 分区, dd if=/dev/hda7 of=/dosc/bootsect.lrh bs=512 count=1 Bootsect.lrh 表明我们用的是 Red Hat Linux. 关于 FreeBSD 的 Bootsect, 先做一个 Lilo 起 FreeBSD 的盘, 然后把 /dev/fd0 的引导区读出, 具体方法建议大家参考青蛙大学精华区的中文帮助, 高级进阶里的系统引导部分, 有篇详细的文章.
其实大家很容易就发现, OS Loader 一般支持 10 个 Item, 如果 Default 的值不等于前 10 个 Item 的时候,OS Loader 最多可以支持 11 个 Item , 在敲 Winnt /b 后重起就知道啦. 现在贴两个 Boot.ini 例子, 一个是用来测试 /win95 和 /win95dos 开关的, 另一个是真正 实用的 .
REM 测试版的 Boot.ini [Boot Loader] Timeout=18 Default=C:\
[Operating Systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT WS 4.00" multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT WS 4.00 [VGA mode]" /basevideo /sos multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT WS 4.00 [DBG mode]" /basevideo /sos /crashdebug C:\ ="Microsoft MainRecord" C:\Bootsect.w98="Microsoft Windows 98 (/Win95)" /Win95 C:\Bootsect.msd="MS-DOS Ver 6.22 (/Win95DOS)" /Win95DOS C:\Bootsect.w98="Microsoft Windwos 98" C:\Bootsect.msd="MS-DOS Ver 6.22" C:\Bootsect.lrh="Linux Redhat 5.1"
REM 实用版的 Boot.ini [Boot Loader] Timeout=18 Default=C:\
[Operating Systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT WS ENG 4.00" multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT WS ENG 4.00 [VGA mode]" /basevideo /sos multi(0)disk(0)rdisk(0)partition(2)\WINNT.CHS="Windows NT WS CHS 4.00" multi(0)disk(0)rdisk(0)partition(2)\WINNT.CHS="Windows NT WS CHS 4.00 [VGA mode]" /basevideo /sos C:\ ="Microsoft MainRecord" C:\Bootsect.w98="Microsoft Windows 98" /Win95 C:\Bootsect.msd="MS-DOS Ver 6.22" /Win95DOS C:\Bootsect.bsd="Free BSD 2.2.7" C:\Bootsect.lrh="Linux Redhat 5.1" C:\Bootsect.lsw="Linux Slackware 3.5"
-- ※ 来源:.广州网易 BBS bbs.nease.net.[FROM: sst.guangzhou.g]
|
|