发布网友 发布时间:2022-04-23 07:38
共2个回答
热心网友 时间:2022-06-17 19:46
修改Grub的配置文件
引用:
在Linux下配置GRUB实现多系统引导 收藏
我在Linux下的GRUB配置如下(并是我今天刚刚试验成功的)稍后会稍加解释:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=-1
splashimage=(hd0,2)/boot/grub/splash.xpm.gz
title Red Hat Linux
root (hd0,2)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
title FreeBSD 6.0
rootnoverify (hd0,1)
makeactive
chainloader +1
title Microsoft Windows XP
root (hd0,0)
makeactive
chainloader +1
我在这里的系统安装顺序是Windows XP ==〉 FreeBSD ==〉 Red Hat Linux ,而且三个系统同时安装在了同一块硬盘上,如果你想将不同的操作系统分散安装在不同的多块硬盘上的话,就需要对如上配置稍加改动即可(见最后)。
其实系统安装顺序在这里是无所谓先后的(因为在后期这些都是可以改变的),关键是你想让那个操作系统的引导程序占据磁盘的MBR,Master Boot Recorder,然后来配置它并实现多系统引导。值得注意的是不同的操作系统,在配置多系统引导时是所采取的配置方法是有所不同的。我在这里选择了由Linux来完成这项工作(因为我认为这样比较简单,嘿嘿,其实是我不会其他方法,555555……Good Good Studying)。
接下来让我们来看一下我是如何配置Linux下的/boot/grub/grub.conf文件的好了:
首先,如果你也是按照我的系统安装顺序,在你的机器上也安装了这些系统的话,起初(也就是在刚刚安装完这三个系统后)在启动机器时就会由Linux的MBR程序来启动一个多引导菜单来共您选择要进入的操作系统。而这时你会发现,菜单中已经存在了我们先前安装的Windows XP(这其实就省去了我们许多麻烦)和Rad Hat Linux,可是我们的FreeBSD却不见了(同样,如果你最后安装的是FreeBSD,Red Hat Linux也不会在选择菜单中出现,这就需要到FreeBSD系统下去配置了,该问题本人还没有解决,见笑了),这是我们就需要到Linux下打开/boot/grub/grub.conf文件作少许配置就OK了。
然后,我们先来了解一下有关/boot/grub/grub.conf文件中的配置选项:
--> default=0
默认的操作系统就是由default控制的。default后加一个数字n,表明是下面由title选项分别指出的第 n+1个操作系统。需要注意的是,GRUB中,计数是从0开始的,第一个硬盘是hd0,第一 个软驱是fd0,等等。所以,default 0 表示默认的操作系统在这儿是 Red Hat Linux 如果你修改成1就是FreeBSD作为默认启动操作系统(这一点应该很明确了)。
--> timeout=-1
timeout表示默认等待的时间,这儿是-1秒钟,表示无限期地等待用户选择。如果改成一个大于0的正整数n的话,他就表示在秒内用户还没有作出选 择的话,系统将自动选择默认的操作系统;当然你可以改成任何你乐意的时间。
--> splashimage=(hd0,2)/boot/grub/splash.xpm.gz
指定开机画面文件splash.xpm.gz的位置,也可以splash /boot/logo/800x600x8.img。
--> title Red Hat Linux
title选项用于指定在选择菜单中显示的对应操作系统的标签,可以由你任意指定,只要你愿意可以给它任何不相干的名字。
--> root (hd0,2)
这里用root选项来指定你的GRUB根分区(也就是Linux操作系统的/boot所在分区),值得注意的是这里的root与Linux操作系统中的root不是一码事。
--> kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
这里使用kernel选项来指定了Linux内核的位置,和Linux根分区的位置(也就是‘/’分区),ro就是readonly的简写拉。
--> initrd /boot/initrd-2.4.18-14.img
initrd指定了Linux初始化影像文件。
--> rootnoverify (hd0,1)
和root类似,但是不mount该设备(注意这里不要安装,也就是不要使用root替换,有时会有问题)。这个命令用在当GRUB不能识别某个硬盘文件系统,但是仍然必须指定根设备是使用,尤其对这里的Windows和FreeBSD有用。
--> makeactive
激活当前分区,这条指令的对象只能是PC上的主分区,不能是扩展分区。这里XP和FreeBSD这符合这一规则。
--> chainloader +1
指定从当前分区读出第一个扇区进行引导。这里的用法在 Windows XP 和 FreeBSD 的来看观念都是一样的了。
至此,我们的GRUB配置已完成,重新启动一下机器,看下结果把,Good Luck for U!!
--> 当你有两块硬盘,一个无法从第二块硬盘启动的操作系统,例如你把Windows XP安装到了你的第二块硬盘上,就可以使用map命令.你能够将 hd0 映射为 hd1 ,将 hd1 映射为 hd0。换句话说,你可以虚拟的交换两个硬盘而启动所需要的操作系统 。也许你需要在你的/boot/grub/grub.conf配置文件中作如下改动 :
title Microsoft Windows XP
map (hd0) (hd1) <== 只是做了如下两行的改动,很简单的吧,快去试试看吧,再次Good Luck for U!!!!
map (hd1) (hd0)
root (hd1,0)
chainloader (hd1,0)+1
makeactive
参考资料:http://blog.csdn.net/CrazyJeff_Liu/archive/2006/01/15/579768.aspx
热心网友 时间:2022-06-17 19:46
sudo dd if=/dev/sda(或hda,依据实际) of=/home/用户名/mbr bs=512 count=1(此命令将主引导扇区备份成一个文件)
重装windows,将所得的mbr文件(名字可以随便改)放入C盘,修改C:\boot.ini文件,加入新行C:\mbr="Ubuntu 9.10"
(方法二)得到上述mbr文件后,重装windows,用cd等进入ubuntu live cd,
sudo dd if=/那个mbr文件 of=/dev/sda(或hda) bs=446
重启,进入原来的ubuntu
sudo grub-mkconfig
注:重装时不要增减分区