Linux + NT OS Loader mini-HOWTO

资讯 驱动中国 928 次阅读 0 条评论
分享 Q

作者:BerndReichertreichert@dial.eunet.ch
译者:C.W.Huangcwhuang@phys.ntu.edu.tw
v1.11,2September1997翻译日期:11-12November1997


--------------------------------------------------------------------------------
本文件描述了使用WindowsNTbootloader来启动Linux的方法.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

1.摘要
本文件描述了使用WindowsNTbootloader来启动Linux的方法.本过程已在WindowsNT4.0Workstation版及Linux2.0上测试过.



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

2.NTOSLoader是如何运作的?
NTOSloader希望来自其它作业系统的启动磁区变成一档案来取用.它读入这档案并启动选择的作业系统,也就是说,或是不同模式运作的WindowsNT或是任何其它的作业系统.



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

3.如何安装WindowsNT及Linux在同一系统上的提示
3.1安装WindowsNT
先试著安装WindowsNT.如果你想使用NTFS作为你WindowsNT分割区的档案系统,记住,目前版本的Linux无法取用NTFS的分割区.一个可以读NTFS分割区的Alpha版驱动程式可在http://www.informatik.hu-berlin.de/~loewis/ntfs找到.你可建立另外一个FAT分割区作为资料交换用,或是你可以使用DOS格式化的软碟片.


3.2分割磁碟
另外一个mini-howto建议不要使用NT的"磁碟系统管理员"来建立Linux的置换以及根目录分割区.它会留下一些空间.我也建议使用Linux的fdisk.


3.3安装Linux
现在从磁片上启动Linux,建立置换及根目录分割区.Fdisk会将NTFS分割区认为是HPFS分割区,这是正常的.再次从磁片启动Linux并按你的喜好安装Linux.


在安装过程中建议你挂上它找到的HPFS分割区时:忽略它.


3.4Lilo
当你做到安装Lilo的部份时,指定你的Linux根目录分割区作为你的启动装置因为你磁碟的主启动记录(MBR)现在是WindowsNT所有.这表示在你/etc/lilo.conf的root项目及boot项目会有相同的值.如果你有一个IDE硬碟且你的Linux分割区是在第二块分割区上,你/etc/lilo.conf的boot项目看起来会像:


boot=/dev/hda2

如果你有两个磁碟机而且你的Linux位於第二颗磁碟的第一个分割区上,你/etc/lilo.conf的boot项目看起来会像:


boot=/dev/hdb1

以符合你系统的核心执行lilo.如果你不确定的话从磁片上启动以检查核心.


如果你现在无法启动WindowsNT,你有麻烦了.我希望你已经建立了最近的修复磁片.



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

4.Bootpart
有一个由G.Vollant所写的NT程式叫bootpasr可以为你做到下述的两点.Bootpart可在此取得:http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm.


如果你想知道事情是如何运作的,使用第五及第六节描述的步骤.



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

5.Linux部份的工作
你必须从磁片上启动Linux直到NT部份改好为止.


现在你必须从你的Linux根目录分割区中取出启动磁区.如果/dev/hda2是你的Linux分割区,这个dd指令是:


#ddif=/dev/hda2of=/bootsect.lnxbs=512count=1

如果你的bootsect.lnx超过了512个位元组那麽就有些事不对劲.


现在将档案bootsect.lnx拷贝到一片DOS格式化过的磁片中,如果这是你将档案传到NTFS分割区内的方法的话.


你可以这样来拷贝


#mcopy/bootsect.lnxa:

或者用


#mount-tmsdos/dev/fd0/mnt
#copy/bootsect.lnx/mnt
#umount/mnt



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

6.WindowsNT部份的工作
从磁片上将档案拷贝到C:\bootsect.lnx.我不会告诉你怎麽做.(译注:copya:bootsect.lnxc:\,应该会吧.)


就像Linux下的lilo.conf,在WindowsNT中是c:\boot.ini.在你编修它之前用这个指令除去它的系统及唯读属性:


C:\attrib-s-rc:\boot.ini

现在用一编辑器更改boot.ini档案,例如notepad,像这样:


[bootloader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operatingsystems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="WindowsNTWorkstation...
multi(0)disk(0)rdisk(0)partition(1)\WINNT="WindowsNTWorkstation...
C:\BOOTSECT.LNX="Linux"

在本例中只加入了最後一行.在你储存boot.ini後用这个指令回复它的属性:


C:\attrib+s+rc:\boot.ini

在关掉你的WindowsNT并重新启动後你应该会看到像这样的:


OSLoaderV4.00

请选择您想要启动的作业系统:

WindowsNTWorkstationVersion4.0
WindowsNTWorkstationVersion4.0[VGAmode]
Linux

使用↑键和↓键将您想要的选项反白,
选定後请按Enter键确认

选择Linux并会看到


LILOloadingzImage....



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

7.再做一次
每次你Linux分割区的启动磁区被修改後一份新拷贝的bootsect.lnx就必须转移到C:\BOOTSECT.LNX.一个例子是当你重新用lilo安装一新的核心时.因此你可以看出这样的系统并不适合用来测试实验的核心.



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

8.排除问题
如果事情并不按照预期的运作,用一磁片来检查可启动性.如果/dev/hdb1是你的Linux分割区,你的/etc/lilo.conf有下列的项目:


root=/dev/hdb1
boot=/dev/fd0

插入一磁片并执行lilo.现在尝试从磁片上启动.如果你在/dev/hdb1上的Linux无法被启动,那麽NTOSloader也将无法启动它.如果你看到一大堆01010101,表示你的root磁碟无法取用.检查是否你所有的磁碟都被BIOS侦测到.


如果这磁片可以启动你的Linux分割区,你可以用下面指令取出你的启动磁区给NTOSloader用:


#ddif=/dev/fd0of=/bootsect.lnxbs=512count=1


你可保留这磁片在你的WindowsNT安装出问题时作为你的急救磁片.



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

9.其它
9.1参考资料

TheLinux+WindowsNTmini-HOWTO
TheFAQforFreeBSD2.X

9.2感谢

感谢XiaomingYi提示这些过程也在除了第一颗磁碟外的其它磁碟上运作.
感谢FrankDennler提供的磁碟技巧.

9.3回馈
任何意见都很欢迎.


9.4译注:以NTLoader启动FreeBSD
因译者的电脑中除了WindowsNT4.0及Linux之外,还装了FreeBSD2.2,於是就仿照上面的做法试试NTLoader有没有办法启动FreeBSD.我的FreeBSD装在/dev/sda2,也就是FreeBSD的/dev/sd0s2.按照上面的做法我先将/dev/sda2的bootsector存成一档案:


#ddif=/dev/sda2of=/bootsect.bsdbs=512count=1

并将它拷贝到C:\下.再於boot.ini中加入


C:\BOOTSECT.BSD="FreeBSD"

不料这个方法竟然失败了,无法启动FreeBSD!


一方面觉得失望,一方面又不死心.忽然想到,lilo也可以拿来启动FreeBSD.於是,又做了下面的实验,进入Linux後,将/etc/lilo.conf改为:


boot=/dev/fd0
install=/boot/boot.b
vga=normal

other=/dev/sda2
label=FreeBSD
table=/dev/sda
loader=/dev/os2_d.b

放入一格式化过的磁片,再跑lilo-v.然後将磁片的启动磁区变成一档案:


#ddif=/dev/fd0of=/bootsect.bsdbs=512count=1

并放到C:\下.移去磁片後重新开机,在NTLoader的选单下选择FreeBSD,接著就看到:


LILOloadingFreeBSD
>>FreeBSDBOOT@0x10000:639/65536kofmemory
Usage:[[0:][fd](0,a)]/kernel][-abcCdhrsv]
Use1:sd(0,a)/kerneltobootsd0ifitisBIOSdrive1
Use?forfilelistorpressEnterfordefaults
Boot:

我成功了!!



--------------------------------------------------------------------------------

Linux+NTOSLoadermini-HOWTO 学习L
版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友