Linux XP 多重启动 问题

Linux XP 多重启动 问题,第1张

安装Linux后硬盘的分区表被Linux下的grub取代,直接删除Linux后grub仍然存在,所以需要把原来的分区表MBR重新安装一下。网上流行的方法是在纯DOS下,执行:fdisk /mbr

本人没用过这条命令,你可以试试。

引用:“如果你只是想开机自动启动到xp,而不在乎启动菜单,那只要修改启动菜单就可以,找到menu.lst,把default项的指向指到xp就可以了

然后timeout=0就可以不显示菜单 直接启动xp. ”

分类: 电脑/网络 >> *** 作系统/系统故障

问题描述:

我安装LINUX和XP遇到这样的问题,首先我装完XP。然后,在LINUX上分出三个区。hda2,(/) had3(boot) hda5(swap)三个分区。XP在hda1里面。但我装上之后安装都一切顺利但重起之后没有启动菜单。进入到>GRUB提示符下了。是不是要在选择引导那步设置一下呀。谁知道帮着解决一下。

解析:

GRUB是一个多重开机管理工具,它可用来启动Linux、BSD、OS/2、BeOS与Windows95/98/NT等众多 *** 作系统,GRUB是一个独立于 *** 作系统之外的开机程序,并不像LILO是依靠Linux才能进行设定与维护,也提供了类似Bash的命令列模式,让使用者更方便地设定GRUB。

取得与安装GRUB:

make install

当make install完成后GRUB也已顺利安装完毕,并有三个指令文件也被安装至系统中:grub、grub-install与mbc。而GRUB的相关档案通常被安装到/usr/local/share/grub的目录下。

接下来先假设硬盘分割如下:

hda1:Windows98 (hd0,0)

hda2:Slackware Linux (hd0,1)

hdb1:Mandrake Linux (hd1,0)

注意的是GRUB认硬盘的方式跟Linux是不一样的,在Linux中第一颗IDE硬盘是hda(SCSI:sda)以此类推,而GRUB则将第一颗IDE 硬盘视为hd0(SCSI:sd0)以此类推;在Linux中第一颗IDE硬盘的第一个分割区是hda1(SCSI:sda1)以此类推,而GRUB将第一颗IDE硬盘的第一个分割区表示为hd0,0(SCSI:sd0,0)以此类推。

制作GRUB启动磁盘:

制作GRUB启动磁盘其实不难,首先需要两个必备档案,分别是stage1与stage2,可以在GRUB的安装目录下的i386-pc目录中找到这两个档案,以及一片已格式化的干净磁盘,然后依照下面的制作步骤就可制作出GRUB的启动磁盘:

cd /usr/local/share/grub/i386-pc/

dd if=stage1 of=/dev/fd0 bs=512 count=1

dd if=stage2 of=/dev/fd0 bs=512 seek=1

制作好了GRUB的开机磁盘之后,就可以试着使用GRUB来进行多重 *** 作系统的开机启动。

利用GRUB开机磁盘启动系统:

接着重新启动系统并设定BIOS由磁盘开机,然后就可以看到grub>的命令列正等待指令,这就是GRUB的命令列环境,表示GRUB已顺利地从启动磁盘加载并正常运作当中了。现在假设要启动上述的Slackware Linux的话,在GRUB提示符号下键入如下的指令,如此就会进入Slackware Linux系统:

grub>root (hd0,1)

grub>kernel /boot/vmlinuz root=/dev/hda2 ro

grub>boot

root 指令会mount后面参数的硬盘分割区位置。当mount完成后kernel指令会加载其参数的系统核心,Linux的核心通常是在/boot目录下名为 vmlinuz的档案。最后的两个参数都是要传给刚加载的核心,root=/dev/hda2是告诉核心根目录的位置是在/dev/hda2,并要求挂载成只读(ro)。

最后执行boot指令以进行Slackware系统的开机启动。同理,位在hdb1上的Mandrake Linux也可以用类似的方式启动:

grub>root (hd1,0)

grub>kernel /boot/vmlinuz root=/dev/hdb1 ro

grub>boot

现在root指令改mount (hd1,0)的分割区,此分割区就是Mandrake Linux的根目录位置。然后kernel指令加载Mandrake的核心文件,告诉核心Mandrake系统的根目录是在/dev/hdb1,并要求挂载成只读。最后以boot指令进行系统的启动。

以上的方式都可以顺利地启动Linux系统,但是对Windows系统可是不管用的,要启动在hda1上的Windows98的话,则要换些指令才行得通,请在GRUB命令列中依序键入下列指令就可以进入Windows98:

grub>rootnoverify (hd0,0)

grub>chainloader +1

grub>makeactive

grub>boot

以rootnoverity 指令让GRUB不要mount (hd0,0)的分割区,只要知道待会是要启动此分割区上的 *** 作系统。chainloader +1的意思是指定此分割区上的第一个扇区来做启动。makeactive指令是要在此分割区上设定active的旗标,只要是Windows的 *** 作系统都是要这么做的。最后以boor指令进行开机。

使用硬盘上的GRUB开机启动:

GRUB的开机磁盘固然方便好用,但制作GRUB开机磁盘的目的只在于系统救援之用,要能确实享用GRUB的强大功能,最好是可以用硬盘上的GRUB来进行开机,就像LILO一样安装到硬盘的MBR上。

首先要在系统上建立GRUB专用的开机目录/boot/grub,如同制作GRUB的开机磁盘一样须要stage1文件和stage2档,所以请把GRUB 安装目录下的i386-pc目录中的stage1文件和stage2档copy到刚刚建立的/boot/grub目录底下:

mkdir /boot/grub

cp /usr/local/share/grub/i386-pc/stage* /boot/grub

完成之后键入指令GRUB指令进入GRUB命令列环境,在GRUB命令列环境里键入如下的指令:

grub>root (hd0,2)

grub>setup (hd0)

grub>quit

如此即可完成GRUB在/boot/grub中的开机设定,先用root指令mount目录/boot/grub所在的位置,其中的(hd0,2)就是指上面假设的Slackware系统,也就是说/boot/grub目录是在Slackware系统中所建立的。所若是要改成由Windows98来放置 GRUB的stage档的话,就要在Windows98的系统上建立/boot/grub的目录,并将stage1档和stage2档存放在 Windows98上的\boot\grub目录里,而root指令的参数也要改为Windows98所在的分割区,也就是上面假设的(hd0,0)。第二个指令setup是指要将GRUB安装在哪个位置来开机启动,如果是要安装到硬盘的MBR上的话只须加上硬盘的位置如(hd0),若是要安装到硬盘第一个分割区上的第一个扇区的话就要加上分割区的位置如(hd0,0)。

除非是有特殊的情况,不然最好是装在硬盘的分割区上较安全。最后使用quit指令离开GRUB命令列环境。

使用选项清单:

现在虽然可以用GRUB来做多重开机的管理,但每次都要输入繁杂的指令也不方便,因此GRUB也提供了选项清单的方式,让每次开机时只须按上下键选择要开机的系统再按下Enter键即可进行开机而不必再输入任何的指令。GRUB在开机时会先寻找/boot/grub目录下的menu.lst档,找到的话 GRUB就会依照menu.lst文件的内容显示一个选项清单的图形接口,让使用者选择要开机的 *** 作系统。

首先在/boot/grub目录下建立一个新档名为menu.lst,底下是menu.lst文件的设定范例:

#/boot/grub/menu.lst

timeout 30

default 0 #Default Slackware Linux

fallback 1 #Windows98

fallback 2 #Mandrake Linux

color light-green/brown blink-red/blue

# For booting Slackware Linux

title Slackware

root (hd0,1)

kernel /boot/vmlinuz root=/dev/hda2 ro

#For booting Windows

title Windows98

rootnoverify (hd0,0)

chainloader +1

makeactive

#For booting Mandrake Linux

title Mandrake

root (hd1,1)

kernel /boot/vmlinuz root=/dev/hdb1 ro

上面menu.lst文件的范例是针对之前所假设的硬盘分割区上配置的 *** 作系统而设定的。menu.lst是以#符号当作注解的开头,GRUB会忽略所有以 #符号启始的注解行。timeout指令是指GRUB启动之后的等待时间,以秒为单位,所以上面的范例就是等待30秒的意思。default指令就是当 GRUB启动之后等待的时间超过指令timeout所设定的时间的话,就会指令default后面参数所指定的系统,参数0代表menu.lst文件中第一个被设定的 *** 作系统,以上面的范例而言就是指Slackware Linux,因为它是最先被设定的,如果参数改为1的话就是启动Windows98,以此类推。fallback指令是指当GRUB启动指令 default所指定的 *** 作系统失败的话,便会启动指令fallback所指定的 *** 作系统,以上面的范例而言,当Slackware启动失败的话GRUB 就会启动fallback所指定的便是Windows98。指令color可以设定GRUB选项清单的前景/背景的颜色,有关GRUB可以指定的颜色可以查看GRUB的info文件。接下来的指令就是设定 *** 作系统,指令title可以设定该 *** 作系统的标题,而其下的设定的指令?銋窵N是原本在GRUB命令列中所键入的指令是一样的,差别是不用再加上boot指令。

设定好menu.lst文件后,将此设定文件存在/boot/grub目录底下即可,然后重新开机便会看到GRUB漂亮的选项清单,{在就可以试着启动不同的 *** 作系统了。

备注:兄弟看了以上的介绍你应该清楚了吧。

其实很简单就是在开机到grub>画面的时候输入命令:

grub>root (hd0,2)

grub>kernel /boot/vmlinuz root=/dev/hda2

grub>boot(详细盘符还是要仔细看你的磁盘设置)

在一个安装了windows系统的电脑上,另外再安装Linux系统的时候,Linux系统会重新安装引导,自动添加windows的启动项,这样就是双系统了

推荐U盘安装Linux,百度“U盘安装Linux” “U盘安装Ubuntu”等关键词,有很多教程,一看便知~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8630058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存