精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● WinNT系统>>【磁盘与文件系统】>>OS Loader 的应用心得(战略篇)

主题:OS Loader 的应用心得(战略篇)
发信人: 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]

[关闭][返回]