Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14970
  • 博文数量: 5
  • 博客积分: 210
  • 博客等级: 二等列兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-12 22:05
文章分类
文章存档

2010年(5)

我的朋友

分类:

2010-09-15 23:10:09

怎么在menu.lst里确定该用(hd0,1)还是(hd1,1)


       GRUB是一个引导程序,它被安装在MBR(Master Boot Record即“主引导记录”)用于在启动时告诉电脑该启动哪一个OS(Operation System即“操作系统”)
包括windows在内,每一个OS都需要引导才能启动,windows的引导程序是MS的ntload(NT内核的系统,如XP,Vista),安装XP时会自动安装(不需要也不会询问你是否愿意),它只会寻找已被激活的主分区并把控制权交给这个分区的引导区(不是MBR)。而GRUB就要强大得多了,它不但可以完成ntload的动作(即引导windows),而且可以引导linux、Mac OS,solaris,free BSD等等,而且可以在出错时报错,并提供简单的用户交互(命令行)。当然由于都要安装到MBR,所以GRUB不能和ntload共存于同一块硬盘(grub4dos除外)。

GRUB会将BIOS检测到的所有硬盘编号,从0开始计数,0,1,2,3……,所以就是hd0,hd1,hd2,hd3……,hd就是hard disk即硬盘(SATA和IDE硬盘都是hd)。
那么到底那一块硬盘对应hdx呢?
首先,如果你是单硬盘的话,不用想了,只会是hd0。那么如果有两块或更多的硬盘呢?你可以这样:在开机检测出现BIOS画面时,等到全部硬盘的数据出现时,立即按下“Pause”键(我的位于“Page Up”键的上方),这时启动过程会暂停,然后仔细看看吧。比如我有四块硬盘————两块IDE的,分别是40G、160G,还有两块SATA的,分别是80G和320G。BIOS检测顺序是这样:IDE40,IDE160,SATA320,SATA80,所以GRUB表示为:IDE40(hd0),IDE160(hd1),SATA320(hd2),SATA80(hd3),就这样啦,赶快记下吧!
注意:这里有一个变数:启动盘顺序。
还是上面的例子,因为我的GRUB安装在SATA320的MBR,并且平时就是用这块硬盘启动电脑,所以这时候SATA320中的GRUB认为我的硬盘应该这样编号:SATA320(hd0),IDE40(hd1),IDE160(hd2),SATA80(hd3)
呵呵,明白了吧!GRUB编号的原则是这样的:
1.多快硬盘的顺序完全照抄BIOS检测结果;
2.启动盘一定是hd0(不管BIOS如何),其他硬盘依次按BIOS检测结果重排。
3.不管IDE还是SATA,一律认作IDE硬盘!即不使用类似(sd0,0)这样的编号,这个和linux的方式不同喔!
好了,搞清楚硬盘顺序再来看看硬盘分区是怎么编号的。
大家知道同一块硬盘最多只能共存四个主分区,所以对于hd0硬盘,依次是(hd0,0)、(hd0,1)、(hd0,2)、(hd0,3),这是只分出四个主分区的情况,这个编号永远固定不变;
不过这样的话,你就无法使用更多的分区了,所以通常应该牺牲掉一个主分区(通常是最后一个)把它转换为扩展分区(extend),以便在其中再细分出更多的逻辑分区(logic,注意和卖鼠标那个公司没关系啊)。
扩展分区永远是(hd0,4),这个编号永远不会在menu.lst中被使用,原因自己想想喽。
逻辑分区一律从(hd0,5)开始编号(因为0~4被占据了),依次为(hd0,5)、(hd0,6)、(hd0,7)、(hd0,8)……
ok,对于大多数人来说,两个以上的主分区根本没用,所以惯常的做法是————一个主分区、一个扩展分区、若干个逻辑分区。所以,惯常会出现在同一块硬盘上的编号是:(hd0,0)、(hd0,5)、(hd0,6)、(hd0,7)……。以此类推,第二硬盘是(hd1,0)、(hd1,5)、(hd1,6)、(hd1,7)……。
-------------------------------------------
题外话————这种方式好不好?
好!极好!非常好!好到没法说,没法说!
为啥?你用windows XP时用过双硬盘吗?添加过新硬盘吗?
有过经验的人都知道,windows XP中经常会出现“盘符交错”的麻烦。如果你使用双硬盘并且都各自拥有一个已激活的主分区的话,嘿嘿,你确定你的“D盘”是第一硬盘的第二分区吗?不一定喔,它有可能是第二硬盘的第一分区!而你的第一硬盘的第二分区可能是“E盘”!第二硬盘的第二分区确可能又是“F盘”!……,我倒……
以上情况好像vista里已经得到改善了,在XP里并不是没有解决的方法,另外可能有人根本不在乎。
不过我很在乎,这个搞法我会发疯的!因为我经常把某个硬盘拆下装上,在两台计算机之间换来换去,你说能不发疯?以前在D盘的文件突然变成在E盘了,文件找找也就找到了,可是我装程序经常装到D盘、E盘(为了备份方便),咋整?再装一遍?KAO,那你自己整去吧,我可没那份闲心!
还有,我的四块硬盘呢?服务器上几百块硬盘呢?不信你不发疯!
咋样?GRUB这个搞法是不是非常好!
-------------------------------------------
更加题外的话————linux的编号方法。
呵呵,这个简单了,严格按照BIOS检测结果,第一硬盘是sda,第二硬盘是sdb,第三硬盘是sdc……,而不管哪个是启动盘。
具体来说,我用第三硬盘启动的系统,GRUB认为它是(hd0),而linux依然认为它是sdc,明白?
另外,自8.04开始,所有硬盘都编号为“sdxx”,即不管IDE还是SATA,一律认作SCIS硬盘!

 

 

什么是启动管理器?
    启动管理器是存储在磁盘开始扇区中的一段程序,例如,硬盘的MBR(Master Boot Record),在系统完成启动测试后,如果系统是从MBR启动,则BIOS(Basic Input/Output System)将控制传送给MBR。然后存储在MBR中的这段程序将运行。这段程序被称为启动管理器。它的任务就是将控制传送给操作系统,完成启动过程。
有许多可用的启动管理器,包括GNU GRUB (Grand Unified Boot Loader), Bootmanager, LILO (LInux LOader), NTLDR (boot loader for Windows NT systems),等等。下面我将讨论GNU GRUB以及它的使用方法。

什么是GRUB?
    GRUB是一款功能强大的启动管理器,它能加载多种操作系统,例如Windows, DOS, Linux, GNU Hurd, *BSD,等等。
    目前,LILO是最流行的启动管理器,被用来管理多个系统的引导。但是,如果使用了LILO,你必须记住,当你每次改变了它的配置或安装了新的内核,都要重新运行一下LILO。而且,LILO的灵活性也逊色于GRUB。
    GRUB使用灵活。它的最新版本,0.5.96.1,支持的文件系统包括ext2(Linux使用的一种文件系统),FFS(Fast File System used by *BSD UNIX),ReiserFS(一种为Linux开发的新型日志文件系统,以被融入2.4.1内核中,minix(一种为MINIX系统开发的老式文件系统,在早期的Linux中也使用)。使用GRUB,你甚至不用引导操作系统,就能“看”到这些文件系统。例如,假如你想查看一下存放在文本文件中的日期和时间,而又不想引导整个操作系统,你可以使用GRUB shell(提示“grub>”),键入如下命令:

grub> cat (partition number)/home/god/filename.txt.

    你可以看到与文件有关的所有信息,包括日期和时间。
    GRUB最好的应用是,你可以方便的引导不在列表中的任何分区上的任何内核。例如,如果你没有将新编译的内核加在启动列表中,而你又需要引导它,你可以将它先加在列表中,重新启动后使用。但是使用GRUB后,可以简单到只使用GRUB shell就可以加载所需要的内核映象。
    现在我将解释使用GRUB的三个基本步骤:编译、安装和配置。

第一步:编译和安装GRUB
    可以从ftp://alpha.gnu.org/pub/gnu/grub 下载GRUB的源代码。
    可以用命令“tar -xvzf filename.tar.gz”解开压缩文档。我得到的文件是grub-0.5.96.1.tar.gz,所以我这样做:

# tar -xvzf grub-0.5.96.1.tar.gz

    这个命令将解开的文件和目录放在一个名为grub-0.5.96.1的目录中。现在运行如下命令:

[root@heaven ~/grub-0.5.96.1 ]# ./configure

    如果你想定制GRUB,使之包含流行的文件系统和对网卡的支持,或者删除你不需要的网卡,可以运行如下命令:

[root@heaven ~/grub-0.5.96.1 ]# ./configure --help

    这个命令将输出所有的命令选项。现在可以使用—enable和—disable选项增加或删除对特定网卡的支持。(注意:GRUB支持网络启动)
    为了开始编译过程,键入如下命令:

[root@heaven ~/grub-0.5.96.1 ]# make

    为了将所有文件进行正确的安装,键入命令:

[root@heaven ~/grub-0.5.96.1 ]# make install

    至此你已经为安装GRUB真正做好了准备。
    将GRUB的相关文件保存在诸如/boot/grub的目录中不失为一个好主意。为此,按如下步骤:
    1.默认状态下,GRUB所有文件将安装在/usr/share/grub/i386-pc或者/usr/local/share/grub/i386-pc目录下,这只取决于你的shell变量的设置。
    2.建立一个叫做/boot/grub的目录,然后拷贝下列文件到这个目录:
stage1
stage2
*_stage1_5

    稍候我将解释这些文件。同时也要把GRUB(可能在/usr/sbin或者/usr/local/sbin目录下)拷贝到/boot/grub目录下。
    安装GRUB之前,你需要了解GRUB是怎样识别你的硬盘和分区信息的。首先,计数是从0开始的,而不是从1。在Linux中,你的连接到主控制器上的第一块硬盘被称为“had”。在GRUB中即为“hd0”。同样的,在GRUB中,你的第一个软驱是“fd0”。这样,第一块硬盘上的第一、二、三个分区分别为“hd0,0”、“hd0,1”、“hd0,2”。注意:逗号是GRUB分区命名法的必要组成部分。
    为了将逗号隔开的部分整合在一起,需要使用括号。例如:(hd0,0) (hd0,1) (hd0,2)等等。(hd0,0)是第一块硬盘上的第一个分区。类似的,(hd1,5)是第二快硬盘上的第六个分区,(hd2,0)是第三块硬盘上的第一个分区。
message. This may take a long time.

第二步:安装GRUB
    安装GRUB可以分为三个单独的步骤:
&n

阅读(1155) | 评论(0) | 转发(0) |
0

上一篇:怎么在menu.lst里确定该用(hd0,1)还是(hd1,1)

下一篇:没有了

给主人留下些什么吧!~~