【摘要】
具体描述了在一台富士通
FMV-253L
笔记本上安装
RedHat Linux 9.0
的方案,这一方案不仅因为硬件条件的限制需要采用
Linux
的本地硬盘安装,而且要保证不能破坏原有的引导程序和
Windows 2000
操作系统,所以必须在完成安装后,手工修改原有系统的引导过程而实现多重引导,其中阐述的实验原理和方法可以在各种关于系统安装、维护的场合加以应用。
【关键词】多重引导、主引导记录、
MBR
、
ntldr
、
boot.ini
、
Linux
安装
一、引言
在微型计算机系统应用中,特别是在操作系统研究、教学机房的管理等工作中,经常要在同一台微机上安装多个操作系统,实现多重引导。例如同时安装
DOS
、不同版本的
Windows
、
Linux
等,尤其是在先安装了功能较强的系统引导程序后,却又要安装功能较弱的系统引导程序时,抑或是安装条件有限制且不能影响原有系统时,都需要使用者深入理解不同操作系统下引导程序的工作过程,并且能够灵活运用这些基础知识和相关的工具程序进行调试、改造和修正以实现多重引导。
二、微型计算机的引导过程
从微机上电一开始,首先是
CPU
进行复位,寄存器
CS
的初值被置为
0FFFFH
,寄存器
IP
被初始化为
0
,导致
CPU
从主存的
0FFFF0H
处开始执行
BIOS
程序。
BIOS
结束时要从硬盘上加载主引导纪录
(MBR
——
Main Boot Record)
,硬盘
MBR
是位于硬盘
0
号柱面、
0
号磁头、
1
号扇区
(
主引导扇区
)
的一段
512
字节的程序,不同的操作系统所设计的
MBR
有所不同,此后的引导过程也就有所不同。
对于
Windows NT
系列的操作系统来说,
MBR
结束时要加载活动分区上引导扇区的内容
(
一般被称为引导记录
BR)
。如果主活动分区为第一分区的话,
BR
是位于
0
号柱面、
1
号磁头、
1
号扇区开始的一段程序,一方面它包含
BIOS
参数块
(BPB
——
BIOS Parameter Block)
向操作系统提供磁盘驱动器
(
硬盘
)
的结构和格式信息,另一方面它将从磁盘根目录读取
ntldr
文件。
ntldr
运行时将读取根目录下的
boot.ini
文件,显示引导加载菜单。用户如果选择引导
Windows NT
系列的操作系统则运行根目录下的
ntdetect.com
程序进一步实现操作系统的启动,否则运行根目录下类似
bootsect.dos
的引导记录文件,让该文件去启动其他操作系统。
三、一个待实现多重引导的微机环境
1
、微机硬件配置
待实现多重引导的微机是富士通
FMV-253L
笔记本,只有
b5
纸大小,低功耗,采用全美达
TM5400
处理器模块为核心,接口只设计有
PCMCIA
、
USB
、
LAN
、
Speaker
和
MIC
各一个,支持从
PCMCIA
、
USB
接口的光驱、软驱启动,支持从网络启动。
2
、操作系统安装情况
该笔记本上已安装好
Windows 2000
操作系统,同时在一个隐藏分区中安装了
Windows 98
的基本内核和一款称为“还原精灵”的软件,由“还原精灵”创建了
MBR
,并对系统作了备份,支持起动时按
F11
激活“还原精灵”进行系统恢复。
3
、硬盘及其分区情况
该笔记本硬盘为
10G
,分区情况是:第一分区为
DOS
主引导分区,容量为
3.6G
,但不是活动分区,
Windows 2000
就安装在该分区上,并把它称为
C
,采用
FAT32
文件系统;第二分区为扩展分区,容量为
4.9G
,其上创建了一个容量为
1.9G
逻辑分区,采用
FAT32
文件系统被
Windows 2000
称为
D
,其余
3.0G
空闲留待安装
Linux
使用;第三分区为
DOS
主引导分区,容量为
1G
多,隐藏活动,安装有
Windows 98
的基本引导内核和其他相关软件,比如在此分区包含
PQMagic
,
Ghost
,
Diskgen
等,开机激活还原精灵就是引导到这一分区,并且称为
C
,
Windows 2000
所在分区不可见
。另外以上硬盘的分区情况也是用这里的
PQMagic
调整出来的。
4
、需求目标
现因工作需要在该笔记本上安装
RedHat Linux 9.0
,但是没有外接的光驱、软驱等设备,没有支持网络安装的服务器,又要保护原有的系统软件及引导程序,下面就是在利用
RedHat Linux 9.0
支持的本地硬盘安装方案实现多重引导的方法。
四、安装RedHat Linux 9.0
1
、通过互联网连接到
http://www.redhat.com/download/mirror.html
,下载
Red Hat Linux9.0
的镜像文件保存在
D:/
。
2
、利用
WinRAR
等解压软件从第一镜像文件中提取
dosutils
文件夹及其全部内容到
D:/
。
3
、重新启动机器,按
F11
激活还原精灵,选择
F1
→高级设置→转入
DOS(F7)
、这时启动到
DOS
提示符,隐藏分区称为
C
,原来安装有
Windows 2000
的
C
不可见。这也正是要把
Linux
的安装文件保存在
D
的原因。
4
、切换到
D
进入
dosutils
文件夹运行
autoboot.bat
文件,自动重启开始安装
RedHat Linux9.0
,这里需要注意的是
autoboot.bat
不能在
Windows 2000
的命令提示符窗口中正常运行,所以需要利用还原精灵启动到
DOS
。
5
、关于
RedHat Linux
的详细安装过程这里不再重复,但是为了保护原有的操作系统和引导模式需要特别注意两步关键的操作:
(1)
进行磁盘分区设置时,选择手工分区,且只能使用扩展分区中的预留的空闲空间;
(2)
进行引导装载程序配置时,默认的
GRUB
引导装载程序部分将会被安装在硬盘的主引导扇区,一定要选择“改变引导装载程序”按钮进行修改,即改装到扩展分区上安装
Linux
的逻辑分区上,这样可以保证“还原精灵”创建的
MBR
不会被破坏。
五、修正BOOT.INI实现多重引导
通过以上步骤成功安装
Linux
后重新启动并不能实现
Linux
的引导,这是因为
GRUB
安装到了逻辑分区的原因,为了能够成功启动
Linux
还需进行以下修正操作。
1
、再次利用还原精灵启动到
DOS
,运行
Diskgen
选择“查看→查看扇区”功能把
Linux
所在分区的引导扇区的内容保存成
D:/
下的一个文件,例如可取名为
bootsect.lin
,这就是前面安装
Linux
时要在主引导扇区创建的
MBR
,它是构成
GRUB
的一部分。
2
、重新启动机器运行
Windows 2000
移动
D:/
下的
bootsect.lin
到
C:/
3
、编辑
C:/boot.ini
,文件末尾添加类似
C:/bootsect.lin=”RedHat Linux 9.0”
的一项内容。
注意:这里的
boot.ini
可能是
RHS
属性,要先行修改再编辑。采用
bootsect.lin
居于
D:/
而不移动到
C:/
,同时
boot.ini
中添加
D:/bootsect.lin=”RedHat Linux 9.0”
的方案是不行的,因为这是要利用
Windows 2000
的
ntldr
来加载
Linux
,而
ntldr
只认可主引导分区下的操作系统引导记录
(BR)
文件的原因。
另外要注意的就是:
bootsect.lin
是主引导记录
(MBR)
文件,还不完全等同于概念上的引导记录
(BR)
文件,但是缘于以上安装方法它却存在于引导记录
(BR)
的位置,在
boot.ini
中也是把它当作引导记录文件来用了,而且是因为
GRUB
的强大功能才实现系统成功引导的。但是同样的情况下,如果要把
MSDOS
安装到逻辑分区,象
Linux
一样只作简单的处理就不可行了。
4
、重新启动,则可发现
Windows 2000
和
RedHat Linux 9.0
两个系统启动选择菜单,这是
ntldr
读取
boot.ini
产生的,而且选择
Linux
菜单项,紧接着还会提供一个由
GRUB
生成的系统启动选择菜单,其中包含
RedHat Linux 9.0
和
DOS
两个系统启动选择菜单,如果选择其中的
DOS
菜单项还会返回
Windows
的系统启动选择菜单。
六、总结
操作系统的引导过程都是分阶段来完成的,一般在某一阶段都设计有加载其它操作系统的方案,
Linux
采用开源组织的
GRUB
是这样,微软的
Windows
系列也是这样,而且这样分阶段的引导过程往往与硬盘的结构和格式化信息密切相关。以上实例正是以分析
Windows NT
系列的操作系统的引导过程为主,运用硬盘的结构原理,在有限制的前提条件下完成了
Linux
系统的安装,实现了多重引导。其中对基本原理应用的方法和实验操作的方法,可以根据实际情况加以变化,用来指导其它环境条件下的多重引导实现。
《电脑知识与技术》学术交流 2007年8期