分享
 
 
 

小菜鸟与grub的故事

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

记念我花了一个晚上搞定GRUB的艰苦历程,也送给有同样难题的兄弟.

故事是这样的:原先小菜鸟我有一块40G的硬盘,装了2k和98,快乐又太平.后来拿到手RedHat 7.3,不免心痒拿出来装...可是原先40G的硬盘满满当当Linux塞不进,一冲动,就把老奔机器上一块10G的硬盘给卸了,当做我装Linux的硬盘,也省去了分区的麻烦.谁知,麻烦就来了...

好了,不要扔蛋,正题来了.

Linux在安装并配置Loader之时,我理所当然选择了GRUB,但是发现:他要覆盖我/dev/hda1中的mbr,也就是我原先那块40G硬盘的mbr,这还了得?我本来是不想让我原先的硬盘被改写的,那里面的数据对我太重要了,万一一个安装失败,它就给我个boot failure那我岂不是哭死?但是那下拉选单中又没有/dev/hdc1(在我机器上是那个10G小硬盘),无奈之下退出,只好将大硬盘先disable掉.再装,成功了,能写小硬盘的mbr了,我欢欣鼓舞,继续......

于是,问题渐渐显露,我在用Linux时候,想换到Windows下要启动2次:一次先把cmos中的启动顺序该为先启动大硬盘,也就是windows所在硬盘,再存进cmos重新启动,一开始还能忍受,日子久了,不胜其烦...于是萌生了修改grub能启动我的Windows 分区的想法...这也便是痛苦的开始

先是看RH自代的文档盘,找了一个样例文件,如下:

default=linux

timeout=10

color=green/black light-gray/blue

# section to load linux

title linux

root (hd0,1)

kernel /vmlinuz root=/dev/hda5

boot

# section to load Windows 2000

title windows

#(hd1,2)是我机器上装Windows硬盘的id

rootnoverify (hd1,2)

chainloader +1

哟,加3句话可以搞定?好,试试!重启,选择windows,死机...默哀中.除了耳熟能祥的Ctrl+Alt+Del按什么都没用.于是到这里发了贴子,北南老大教育我要多用搜索,脸红,是的,我后来看了他给的几篇文章,GRUB是够清楚了,连它的command line模式我也差不多能用的很熟,可是,大家也猜到了,死机依旧.我当然确定了我没有弄错硬盘分区的id,但是屏幕上没有任何显示!这让大多数的Troubleshooting和FAQ都变的像一纸空文.我快泄气了.

由于不好意思再到论坛里瞎问,只能继续在文档盘里找结果.The Official Red Hat Linux Reference Guide中给出了几个链接,去看看!

第一个去的地方:

http://www.linuxgazette.com/issue64/kohli.html

唔,学到了不少:

Let's try another example with Windows installed in /dev/hda1 or (hd0,0). The procedure for booting with Windows is as follows:

#在menu.lst也就是grub.conf文件中:

rootnoverify (hd0,0)

makeactive

chainloader +1

boot

喔,原来需要加一个makeactive和boot!!怎么都没人高诉我讷?试试!(满心欢喜)

结果,问题依旧....

好把,继续找出路:

http://www.redhat.com/mirrors/LDP/H...-with-GRUB.html

好,Redhat的官方支持,准没错!

嗯,在文档里看到了修改menu.lst文件的另一个版本:

title Windows 2000

unhide (hd0,0)

hide (hd0,1)

hide (hd0,2)

rootnoverify (hd0,0)

chainloader +1

makeactive

需要将非linux分区隐藏?我试试......

死机....

重启....

问题来了!我的GRUB怎么变成文本格式了?!我怎么启动??

真的,GRUB变回了你在控制台中的命令行bash-like方式,这这这,怎能不叫人眼前一黑?

冷静,feng_ye,冷静,想想,对了!一定是hide命令隐藏了linux分区,那么恢复它!通过按<tab>获得帮助,我unhide了所有的分区...按<Esc>,回到了可爱的(可恶的?)GRUB GUI界面(呼~还好,没冲动把Linux重装,因为我没有启动软盘)

看来都不行...在我心灰意懒之余我到了GNU的主页作最后一次挣扎,(谁知,嘿嘿)

http://www.gnu.org/software/grub/

那里有相当专业的FAQ和TroubleShooting, 而我也在那里发现了救命稻草:

原文如下:

If you have installed DOS (or Windows) on a non-first hard disk, you have to use the disk swapping technique, because that OS cannot boot from any disks but the first one. The workaround used in GRUB is the command map (see map), like this:

grub> map (hd0) (hd1)

grub> map (hd1) (hd0)

好像......就是它!!

尔后, 我修改了我的menu.lst,去掉了hide, unhide, 全文件如下:

# 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,1)

# kernel /boot/vmlinuz-version ro root=/dev/hdc2

# initrd /boot/initrd-version.img

#boot=/dev/hdc

default=0

timeout=10

splashimage=(hd0,1)/boot/grub/splash.xpm.gz

title Red Hat Linux (2.4.18-5)

root (hd0,1)

kernel /boot/vmlinuz-2.4.18-5 ro root=/dev/hdc2 hdd=ide-scsi

initrd /boot/initrd-2.4.18-5.img

title Red Hat Linux (2.4.18-3)

root (hd0,1)

kernel /boot/vmlinuz-2.4.18-3 ro root=/dev/hdc2 hdd=ide-scsi

initrd /boot/initrd-2.4.18-3.img

title Windows

map (hd0) (hd1)

map (hd1) (hd0)

rootnoverify (hd1,2)

chainloader +1

makeactive

boot

原来如此. 怪不得我以前在控制台打grub检索硬盘分区和在启动时进入command-line mode检索分区得到的硬盘列表正好相反(很拗口是吧?就是hd0的分区变成了hd1的,而hd1的分区变成了hd0的).原来用map命令可以虚拟掉换两硬盘的id.

重启, 成功!

经验三条:1,不要没做研究就到论坛上问,除非你的时间太紧迫;

2,英文很重要,读懂官方文件和Online manual,对我们好处多多;

3,坚持不懈,我就不信它牛得过我?!

后记: 多谢北南,虽然没有在他的教程里找到答案(说不定也有?), 但是也获益非潜.后来在RH的文档盘里也发现了这关键的map命令,只是当初没留意...

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有