分享
 
 
 

Grub轻松解决单硬盘3OS+n个Linux多系统启动

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

版权:本文为likuku原创,只要承认作者的版权,允许任意转载,但是不得用于商业目的。

因为要学习Linux和Unix,不得在一块硬盘上安装4个操作系统:

FreeBSD(Unix最纯的一种)+Win98+RedHat9+红旗4。安装不难,可是要想让他们和睦共处,,可我花了一番功夫!经过一星期的死磨硬泡,总算搞定!这期间,我在网上发现这也算是个热点话题,干脆也把我的体会也告诉大家。

1-0-1 开端:

因为Linux特殊的硬盘管理模式,可以说是"固定"式的:决不会因为硬盘的增减、BIOS中 硬盘启动顺序更改,而造成像Windows里的分区号的变更/混乱。因此其下的GRUB启动管理器是实现多系统启动的最佳工具。

Grub的功能强大、支持16位色1024分辨率开机背景、更改开机菜单简单方便、故障恢复也很简单。因为Grub是一个独立的,有他自己的一套命令行指令(可以脱离操作系统运作)。

相比有人用NT/2K/XP的Ntload来实现,这需要获得其他系统启动分区的启动扇区文件。这个要直接读写硬盘扇区,你要是不会Linux/Unix,在Windows/Dos下,简直是恶梦!!操作难度高,出错?!后果不堪设想!

同样是获得启动扇区 在Linux/Unix下只要一个简单的 dd if=/目的分区of=/输出路径/输出文件的指令行就OK。

2-0-1 安装系统前的分区规划:

因为一块硬盘最多只可划分4个主分区。扩展分区算作一个主分区,它只能有一个!

2-0-a.假若你要装BSD,要给它分一个主分区(分区类型不限,先别问为什么)。

2-0-b.假若你要装MS Windows 请给每个Windows分一个主分区。

2-0-c.确认你已经没有需要安装在主分区上才能使用的系统/已经分完了3个主分区。

2-0-d.如上一步已经确认,则可以把剩下的空间全交给扩展分区。

2-0-e.假若你还需要更多的Win分区空间,可以在扩展分区里继续分些。

2-0-f.确认完成后,删除先前给BSD分好的分区。

2-0-g.保存分区表,重启生效。

#注意:不要激活任何分区/设为活动Active分区,到下一步再作。

BSD的"类型安装",选Xuser,只需要不到400M空间。

没有给Linux分区,这不要紧,当安装时再分更方便。建议如果用XWindow图形界面,最少给每个Linux留2.5G空间。

3-0-1 安装系统:

按照下面顺序安装

3-0-a.安装Windows大家都会吧?

如多个Windows,要装哪个分区就先把那个分区激活,然后就直接装在C:里,是WinNT/2K/XP的,一定要手动设置为是单个系统启动,不要多系统菜单,也可以自己编辑根目录下的隐藏boot.ini把多系统的其他选项行去掉。如不把前面预留给BSD的分区干掉现在说不定很容易搞错。我是用Ghost系统镜像灌的,不会出错!当然,你也用Ghost的,就不用设置活动分区这些。

3-0-b.安装BSD时,要选择是否安装BootManger一定选None跳过,这里不用!

3-0-a.安装Linux,直接在扩展分区分区就行,全装成逻辑分区!毕竟主分区很宝贵!或者你早用完了!

3-0-d.如果硬盘里除了主分区、扩展分区还有空闲的空间,Linux可能会自动把"/"分区,或者"/boot"分区(假如你单独给/boot分区的话)强行转变成主分区。特讨厌!如这样,你要返回上面2-0-e步,手动给Linux分区(每个详细的分区:/、/boot、swap、/usr等,只要大小和你真正的linux分区一样就可以。做好后就可以重新开始安装Linux了。

3-0-e.因为你是把Linux装在逻辑分区,他可能会警告你,不管他,强行设置分区、挂载点、文件系统格式,最好都选择格式化 。

3-0-f.继续安装,只是在安装引导程序GRUB时一定要装在MBR或者叫/dev/hda上!多系统菜单现在不用编辑,装好后再编辑。

3-0-g.假如你只装一个Linux,那就到此结束。

3-0-h.要装多个Linux,那么3f这步,需要注意,Grub只需要在其中一Linux的安装时安装就可以了。其余几个,要直接选择不安装引导程序,安装也完全没有必要,还会造成麻烦。

3-0-i.所有Linux都安装完后,根据系统提示取出光盘,自动重启。启动后就会看到启动菜单。

4-0-1.Grub、Linux分区管理理论基础

Linux管理分区很特别也很先进,但对一般Windows用户来说很陌生,但不难。懂了后就会发现它的巨大好处. Grub因为可视作一个带有一些操作系统基本功能的软件,因此它的硬盘管理/识别规则不同于其他任何操作系统,但和Linux最接近,同样也是"固定不变式的"。下面用个很简单的对比表就可说明它们的关系:

主板IDE接口 Linux环境 Grub

IDE0 主盘------------------------------ /dev/hda--------------------------------hd0

|第一主分区-------------------- /dev/hda1------------------------------hd0,0

|第二主分区--------------------/dev/hda2-------------------------------hd0,1

|第三主分区--------------------/dev/hda3-------------------------------hd0,2

|扩展分区--------------------/dev/hda4-------------------------------hd0,3

|第一逻辑分区-------/dev/hda5-------------------------------hd0,4

|第二逻辑分区-------/dev/hda6-------------------------------hd0,5

|第N逻辑分区--------/dev/hdaN------------------------------hd0,N-1

IDE0 从盘------------------------------ /dev/hb--------------------------------hd1

|第一主分区-------------------- /dev/hdb1------------------------------hd1,0

|第二主分区--------------------/dev/hdb2-------------------------------hd1,1

|第三主分区--------------------/dev/hdb3-------------------------------hd1,2

|扩展分区--------------------/dev/hdb4-------------------------------hd1,3

|第一逻辑分区-------/dev/hdb5-------------------------------hd1,4

|第二逻辑分区-------/dev/hdb6-------------------------------hd1,5

|第N逻辑分区--------/dev/hdbN------------------------------hd1,N-1

IDE1 主盘------------------------------ /dev/hdc--------------------------------hd2

|第一主分区-------------------- /dev/hdc1------------------------------hd2,0

|第二主分区--------------------/dev/hdc2-------------------------------hd2,1

|第三主分区--------------------/dev/hdc3-------------------------------hd2,2

|扩展分区--------------------/dev/hdc4-------------------------------hd2,3

|第一逻辑分区-------/dev/hdc5-------------------------------hd2,4

|第二逻辑分区-------/dev/hdc6-------------------------------hd2,5

|第N逻辑分区--------/dev/hdcN------------------------------hd2,N-1

IDE1 从盘------------------------------ /dev/hdd--------------------------------hd3

|第一主分区-------------------- /dev/hdd1------------------------------hd3,0

|第二主分区--------------------/dev/hdd2-------------------------------hd3,1

|第三主分区--------------------/dev/hdd3-------------------------------hd3,2

|扩展分区--------------------/dev/hdd4-------------------------------hd3,3

|第一逻辑分区-------/dev/hdd5-------------------------------hd3,4

|第二逻辑分区-------/dev/hdd6-------------------------------hd3,5

|第N逻辑分区--------/dev/hddN------------------------------hd3,N-1

5-0-1.检测分区和设置启动菜单:

都装好了么?最好确保现在通过Grub只能启动一个Linux! OK!我们开始!

5-0-a.以root身份进入Linux,在控制台下/终端下,输入fdisk -l小写的哦!注意空格!

我的硬盘分区信息显示如下: (以下#后的是我写的注释,方便读者理解)

[root@SGI root]# fdisk -l

Disk /dev/hda: 20.0 GB, 20020396032 bytes

255 heads, 63 sectors/track, 2434 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/hda1 * 575 765 1534207+ b Win95 FAT32 #我的Win98

/dev/hda2 766 2434 13406242+ f Win95 Ext'd (LBA) #我的扩展分区(在dos下分的)

/dev/hda3 1 574 4610623+ a5 FreeBSD #我的FreeBSD

/dev/hda5 766 1148 3076416 b Win95 FAT32 #我的FAT32逻辑分区

/dev/hda6 1149 1161 104391 83 Linux #红旗Linux的/boot分区

/dev/hda7 1162 1289 1028128+ 83 Linux #红旗Linux的/分区

/dev/hda8 1290 1672 3076416 83 Linux #红旗Linux的/usrt分区

/dev/hda9 1673 1737 522081 82 Linux swap #Linux的SWAP交换分区

/dev/hda10 1738 1747 80293+ 83 Linux #RH 9Linux的/boot分区

/dev/hda11 1748 2129 3068383+ 83 Linux #RH 9Linux的/usr分区

/dev/hda12 2130 2193 514048+ 83 Linux #RH 9Linux的/分区

/dev/hda13 2194 2244 409626 83 Linux #RH 9Linux的/tmp分区

Partition table entries are not in disk order

[root@SGI root]#

有点眼晕是不是?慢慢看就好了!扩展分区不是hda4,这个有点不好解释,和Windows/FreeBSD的安装有关,反正这两个够难侍候,这也就是为什么要先装他们的原因---当分区稳定后再进行多启动设置,一次就行不用反复调整!但逻辑分区不会改变,第一个逻辑分区是hda5嘛!

Device Boot Start End

驱动器/分区 是否激活 起起始数据块 结束数据块

Blocks

数据块数/容量大小(单位:kB)

Id

就是工业上统一的对各种文件系统/分区格式的标识代码,只要你用过专业点的分区工具(如国产的DiskMan也叫DiskGeniue)就很好理解。这些早就成了业界统一的标准!

System

系统,很明显,这是fdisk自动根据文件系统识别出的系统类型。

5-0-b.好了,我们只注意你的系统所在的Device驱动器标识。

Win98 安装在 /dev/hda1

FreeBSD 安装在 /dev/hda3 (我只用了一个分割,实际的只要记下/所在的hdxn代号就可以了.)

5-1-1. Linux稍稍麻烦点,分两种情况:

5-1-a.像我一样,专门给/boot分了一个分区,/boot和/不是一个分区。这就要分别记录/和/boot的分区标识!

5-1-b.直接用/分区,没有专用的/boot分区,那就只记录/分区的标识就可以。

建议专给/boot建一分区,这样启动速度和安全(所有系统稳定后,可把/boot分区设为只读!)更有保障!

5-2-1.我的例子记录的是:

红旗是:/ 是/dev/hda7 /boot 是/dev/hda6 RH9 / 是 /dev/hda12 /boot 是/dev/hda10

5-3-1.辛苦了半天最后一步很简单,就是编辑个文本,大家都会吧?

用个文本编辑器打开/boot/grub/grub.conf文件,我的是红旗的文件,RH的也一样,编辑如下:(#后的都是注释,上面系统原有的,最好别删,那都是规则说明!我写的,你看看就行,不用加进去。)

***注意:Grub里的分区标识和Linux下的不同,请参照 4-1-0转换!***

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You have a /boot partition. This means that

# all kernel and initrd paths are relative to /boot/, eg.

# root (hd0,5)

# kernel /vmlinuz-version ro root=/dev/hda7

# initrd /initrd-version.img

#boot=/dev/hda

default=0 #系统默认选项 (0为第一项,1为第二项,依此类推)

timeout=10 #选单等待时间 单位:秒

splashimage=(hd0,5)/grub/splash.xpm.gz #选单背景画面文件路径

title Red Flag Linux (2.4.20-8)

root (hd0,5)

kernel /vmlinuz-2.4.20-8 ro root=/dev/hda7 vga=785 console=/dev/null CONSOLE=/dev/tty2 acpi=off

initrd /initrd-2.4.20-8.img

title Red Flag Linux (Safe Mode)

root (hd0,5)

kernel /vmlinuz-2.4.20-8 root=/dev/hda7 acpi=off 4

initrd /initrd-2.4.20-8.img

title Red Flag Linux (Console Mode)

root (hd0,5)

kernel /vmlinuz-2.4.20-8 root=/dev/hda7 acpi=off 3

initrd /initrd-2.4.20-8.img

title Red Hat Linux (2.4.20-8) #系统选单标识

root (hd0,9) #系统引导分区(就是/boot所在分区)

kernel /vmlinuz-2.4.20-8 ro root=/dev/hda12 #内核路径 和/分区标识 initrd /initrd-2.4.20-8.img #内核文件系统镜像文件路径

title Windows 98 SE #系统选单标识

rootnoverify (hd0,0) #系统引导分区(就是Win98安装所在分区)

makeactive #自动激活

chainloader +1 #交由此系统自行引导,不可忘记!!忘了,让你发疯我不管!

title FreeBSD 4.8

rootnoverify (hd0,2a) #系统/分区所在的驱动器标识,别忘了加个a ,忘了?同上!

makeactive #同上

chainloader +1 #同上

5-4-1.注意:***这里的设置都是以拥有一个单独的/boot分区为例,如果你没把/boot独立出来,那么你需要作下面的:

5-4-a.把 "root (hd0,9)" #系统引导分区(就是/boot所在分区)修改为你的/分区标识

5-4-b.把"kernel /vmlinuz-2.4.20-8 ro root=/dev/hda12 #内核路径 和/分区标识" 和"initrd /initrd-2.4.20-8.img #内核文件系统镜像文件路径"中的路径都修改为真实的路径如:

"kernel /boot/vmlinuz-2.4.20-8 ro root=/dev/hda12 #/分区标识按实际修改

"initrd /boot/initrd-2.4.20-8.img #内核文件系统镜像文件路径

5-4-2.对于#选单背景你可参照#选单背景画面文件路径的文件自己作,比MS的好多!

5-4-3.确认完工,保存退出,重启就OK。

6-0-1.遇故障,恢复Grub多启动菜单:

虽然Linux很稳定,但也不是铁板一块,再说人的"不稳定性"远胜机器,大部分都是人为失误造成故障。(比如,又胡乱装系统,装那种强制性修改MBR的系统:如MS的。重新大规模分区,造成Linux随完好但是启动不起来的情况。)

这也分两种情况:

6-1-1.Linux系统损坏/删除,这只有在重装Linux时装上Grub了。然后从4-0-1开始了!

6-2-1.Linux系统正常只是MBR损坏/被覆盖了。这样需要重新把Grub装在MBR就OK了。

很简单就三步:

6-2-a.用Linux救援/启动软盘(与你的内核版本一致,或参看《电脑报2001合定本 (上)64页 <制作Linux启动盘的四种方法>》)启动。或者Linux安装光盘启动进入linux seuce 拯救模式。

6-2-b.现用fdisk -l查看分区,然后把你的"启动版"Linux的 /、 /boot 、/usr都mount上来,然后进入mounted的对应原/boot目录.(如有在安装"启动版"Linux时创建的启动软盘,就可省略这一步,应该是可以 直接启动Linux的。(但是当你把Linux装在主分区上,而主分区又改变了,那还是用fdisk 和mount吧!).

6-2-c.确认/boot/grub的路径,执行grub命令,请稍等,Grub在检测完BIOS后会起动,会有一个grub> 的提示符(像个操作系统吧?)

输入以下命令,一次输完:

install_(hd0,5)/grub/stage1_d_(hd0)_(hd0,5)/grub/stage2_p_(hd0,5)/grub/grub.conf

全都正确的话,什么也不会显示,键入quit或exit退出!reboot就好了!

注意:下划线实际为空格!

*这只是针对拥有 Linux下标识为/dev/hda6 即Grub格式 hd0,5 的独立/boot分区的情况!*

6-3-1.对于没有独立/boot分区,只有/分区的用户,可以用:

install_(hd0,6)/boot/grub/stage1_d_(hd0)_(hd0,6)/boot/grub/stage2_p_(hd0,6)/boot/grub/grub.conf

*这是针对只有一个Linux下标识为/dev/hda7 即Grub格式 hd0,6 的/分区情况!

*实际的参数需要fdisk -l 检查和通过4-0-1的对照表来转换!

6-4-0.这第二种方法同样适用于因为MBR被重写/损坏导致的Linux无法启动的情况!

7-4-0.后记:

总算写完了!看来,Linux适应能力够强的!就像,像----病毒!我是在RH9 Gnome环境用OPenOffice写的,还不错,输出的Doc文档,WPS和MS-OfficeWord下都可以正常打开、显示、编辑!当然没有一次死机、蓝屏、崩溃、死锁!

外:一个窍门,因为Linux/Unix和Windows的数据结构不同,用Linux/Unix的编辑器写的中文*.TXT文档在 Windows/Dos下不能正常显示,英文*.TXT也是换行不正确。我经过实验,使用Gnome自带的附件"文本编辑器"写出的中文文档,在KDE下根本无法显示,在KDE下用Kwaiter/Kate写的中文*.txt在Windows下可以显示,但是换行不正常!最好的办法是用OpenOffice写,文件--另存为 "文件类型"选"文字,使用编码的" 接下来的 "字符集"用GB2312 "换段落"用 CR&LF 就OK了!非常棒!

哇!写这篇文档,足足花了7小时40分的工时!算作给自由软件传播作贡献吧

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有