当前位置:  技术问答>linux和unix

如何实现双启动的问题?

    来源: 互联网  发布时间:2014-12-06

    本文导语:  我的机器现在装上了win2000和linux,在设置的时候可能出错了,所以不能实现双启动,我默认的是win2000,无法出现选择操作系统的界面,我想问一下如何解决这个问题啊?请帮忙,谢谢! | 以下是网上下载,...

我的机器现在装上了win2000和linux,在设置的时候可能出错了,所以不能实现双启动,我默认的是win2000,无法出现选择操作系统的界面,我想问一下如何解决这个问题啊?请帮忙,谢谢!

|
以下是网上下载,未经自己证实。仅供参考!
————————————————————————————————————

      今天,象你我这些技术专家,经常不得不应付以下情形,就是让LINUX和NT两个不同的系统在同一台机器中和平共处。已经有了许多相关的HOW-TO文献--去看一看是个不坏的建议--去看如何设定LILO(The Linux Loader,Linux引导程序)以完成此类工作的那些。遗憾的是,经典文献基本没有涉及NT 引导程序。是的,我知道对不少人而言,Linux和NT间存在着门户之争:-) 但从一个IT技术者的角度而言,主要目标只是如何圆满完成这个工作而已。 

      现实生活中的很多时候,要求我们安装Linux时,不能去改变已有的NT引导方式。比如, 很可能那是你老板的机器,并且他/她非常喜欢自己的机器永远以自己熟悉的方式启动;-) 本文将集中介绍如何设定NT引导程序使其能引导Linux(当然也要能继续引导NT!) 

      我希望这些小技巧能使Linux的使用者以最简单的方式达到通过NT引导程序来启动Linux的目的。以下介绍适用于采用Intel兼容CPU的NT4.0服务器和工作站。 

引子 
   你费了好多口舌,终于让老板同意在她的机器上装Linux。她NT用得很开心,Word啦,Excel啦,还有其它小东东,得心应手。她也并不固执,决定也可以试试Linux的啦,Linux装就装吧,不过有一个条件:她喜欢继续通过她熟悉的,能启动NT或DOS的那菜单来引导。她的意志就是你的意志,于是你决定不用LILO来双重引导她的机器。 

  MBR有所帮助     你应该牢牢记住的最重要的一点是,许多软件产品会利用硬盘上面仅有的那个宝贵的主引导记录(Master Boot Record,MBR)NT是这样,没有选择余地;Linux也可以这样,如果你喜欢。机器的BIOS会执行储存在当前激活分区的信息,来初始化你希望的操作系统。

      NT安装后,MBR会被修改成去引导一个在激活分区的根目录下,叫NTLDR的程序。原来的MBR会被存到一个叫BOOTSECT.DOS的小文件中。NT安装完成后要记住绝不能覆盖这个MBR, 否则NT将无法启动。以防万一, NT的用户需要NT的应急修复磁盘(Emergency Repair Disk,ERD)。 

      记住了这些后,就要注意设定LILO时*不能*装到MBR中去,而是装到Linux的root分区中去。这样,对NT而言,不会带来问题;而Linux没有MBR也可以活下去。 

NT之引导过程     
  当NTLDR启动, NT用户看到"OS Loader V4.xx" 后,它会切换处理器到386状态,并启动一个非常小的文件系统。接着,它会去读BOOT.INI文件,看是否有其它操作系统存在,并显示一个选择菜单。下面是一个典型的BOOT.INI:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)WINNT

[operating systems]
multi(0)disk(0)rdisk(0)partition(2)WINNT="NT V4 is here"
multi(0)disk(0)rdisk(0)partition(2)WINNT="NT V4 VGAMODE" /basevideo /sos
C:="DOS is here"
  TBOOT.INI有两部分构成。 "boot loader section"部分指定菜单在屏幕上的停留时间,和缺省菜单选项。"opearating systems section" 部分指定可选的操作系统种类。可以看到机器可以启动NT(以标准模式或VGA安全模式)和DOS。从这个例子我们可以推断,DOS从硬盘C:(第一个硬盘的第一个分区)启动,而
NT从第二个分区启动。典型安装时,会以DOS的FAT文件系统格式化一个C:的分区,然后将NT装在另外一个NTFS(NT文件系统)的分区。 
      如果用户选择了启动NT, 另外一个程序NTDETECT.COM,就会开始进行硬件检查。如果一切正常,NT内核就会被装入,正如我们都知道的那样。 

      再来看如果启动的不是NT的情形。此时,NTLDR 需要知道非NT OS引导所必需的引导扇区是哪个。此时,相应的引导扇区映象必须要在一个小小的512字节的文件中。比如,要引导DOS,NTLDR 将会寻找一个叫BOOTSECT.DOS的引导扇区映象文件。 这个映象文件是NT的安装程序产生的。
  

    那么, 引导Linux又是怎样呢?这很简单,需要的只是一个引导扇区映象文件,姑且称之为BOOTSECT.LIN (在本文稍后会看到如何得到这个文件)。 必须将BOOTSECT.LIN 放到C:, 并要修改 BOOT.INI。此时"operating systems ection"部分看起来应该是这样的: 

[operating systems]
multi(0)disk(0)rdisk(0)partition(2)WINNT="NT V4 is here"
multi(0)disk(0)rdisk(0)partition(2)WINNT="NT V4 VGAMODE" /basevideo /sos
C:="DOS is here"
C:BOOTSECT.LIN="Now Linux is here"
  修改BOOT.INI, 可以用任何普通ASCII文本编辑器(比如记事本)。这个文件的正常属性为系统-隐藏-只读,所以你必须用 'attrib' DOS 命令或在NT中,用文件属性对话框中来变更属性。   

Linux侧的故事    
   现在我们将注意力转到Linux。我们需要安装Linux,定制LILO,产生BOOTSECT.LIN文件。 


      第一步是装好Linux。我们都知道怎么做:为Linux选适当的系统,SWAP,和用户分区,运行安装程序,等等。一切顺利时,这一步在45分钟之内就可以完成。 

      接下去就要定制LILO。我们知道怎么做,但要注意*不能* 将LILO装到MBR中去(除非你想将NT吞了:-))。设定LILO时,要选择将它装到你Linux 的root分区。如果你还不知道如何设定LILO, 就花几分钟读读HOW-TO文献,或者就用一些好的安装程序,我是用S.u.S.E.的, 因此我的安装程序就是 'yast'
(Yet Another Setup Tool)。 

    LILO定制好之后,(为行文方便, 此处假设Linux的root分区是/dev/hda3)我们必须用'dd'来产生引导记录映象文件。以root Login后,按以下做: 

# dd if=/dev/hda3 bs=512 count=1 of=/dosc/bootsect.lin
  如果没有能将FAT C: partition mount成为 /dosc,譬如说由于这个分区被以NTFS方式格式化,不能访问这个分区。此时可以将 BOOTSECT.LIN写到一个以DOS方式格式化的磁盘中,或者NT能读的其它什么分区也可以。如果BOOTSECT.LIN不是被放到C:,要记住此时应相应修改BOOT.INI文件。
  
    现在你老板可以从她的NT Loader菜单中选择Linux了。NTLDR将会装载BOOTSECT.INI,她就可以看到LILO的提示。她就可以去尝试她新的Linux机器了。最后,你可以设定LILO在选择提示时能去引导Linux和C: 上的DOS。你的老板就可以再次回到C: 分区上的NT Loader。 前文描述的方法可以反复进行,如果你希望能选择引导多个Linux,就必须为每一个Linux都产生一个相应的引导扇区映象文件。 

    
 
 

您可能感兴趣的文章:

  • unix .sh文件系统启动时如何实现自动启动
  • 请教:怎样实现Proftpd为系统启动时自动启动?
  • 如何实现启动一个带控制台的目标程序
  • 如何实现交互化启动
  • ?怎样实现XP和LINUX双启动?谢谢各位了.
  • /etc/rc5.d/S99test.sh这个脚本启动了一个程序,ps -aux查看属主是root,我想让它启动起来的属主不是root,而是www-data.怎么实现?
  • (**100分**)远程用登录linux能否启动Xwindows,如何实现~!
  • pppoe拨号上网后,无法启动pptp实现的vpn
  • Linux Live CD如何实现不启动xWindow界面?
  • 能不能实现windows2000 server和linux双启动?
  • resin可以作为win2000的一个服务启动吗?如何实现
  • 如何实现arm的启动代码
  • PXA270下利用IIS通道实现音频,重复启动死机问题求解
  • 请问如何实现一个按照每天的一个时刻启动的定时器???
  • 怎么实现定时启动一个进程
  • 如何实现用命令启动或停止程序
  • linux怎么实现象win那样的启动载入?
  • linux下如何实现线程的启动,暂停,和退出!
  • 请教高手:如何实现禁止在命令行里启动一个程序?
  • 基本问题:jsp开发的网页能否实现用户控制启动服务器中某应用程序的功能?
  • socket实现多文件并发传输,求助多线程实现问题?
  • 关于linux c程序实现自动实现telnet的问题
  • 在线等待。。。aram开发问题求救。键盘交互这个怎么实现,怎样实现简便
  • 请教:关于如何实现文件监控的问题
  • 用KJAVA实现A6288一个功能的问题
  • jsp分页问题,用Vector怎样实现
  • 关于JAVA反射实现的问题
  • 小弟有如下问题:JAVA中怎样实现对操作平台的句柄!谢谢了:)
  • 代码实现Radius服务模拟的问题,熟悉Radius服务的大虾请进!
  • 〔help〕有关JSP实现注册用户中的类型问题?
  • c编程实现ftp上传文件的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • interface 到底有什么用???实现接口,怎么实现??
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 怎么用Jsp实现在页面实现树型结构?
  • 通过javascript库JQuery实现页面跳转功能代码
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 网站重定向用C语言实现iptables,ACL实现
  • php实现socket实现客户端和服务端数据通信源代码
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 求在freebsd+Squid下实现pc上网的透明代理的实现方法!给出具体配置方法的高分谢!
  • boost unordered_map和std::list相结合的实现LRU算法
  • linux下如实现与window下的驱动器实现文件共享??
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • qt如何实现:操作键盘实现数据的滚动?
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • PING是用TCP,还是用UDP来实现的?或是采用其它协议实现的?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • ejb-ql只能 like '?%' 么?我想实现模糊查寻,想实现 like'%?%' 怎么办??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3