电脑只有一个系统也需要装引导的,否则无法启动。
系统被安装在相应的分区,按下面过程引导系统启动。若要修改,通常要重做系统。
电脑的整个启动过程分成四个阶段:
第一阶段:BIOS
上个世纪70年代初,发明了“只读内存”(ROM),开机程序被刷入ROM芯片,电脑通电后,第一件事就是读取它。这块芯片里的程序叫做”基本输出输入系统”(Basic Input/Output System),简称为BIOS。
11 硬件自检
BIOS中主要存放的程序包括:自诊断程序(通过读取CMOS RAM中的内容识别硬件配置,并对其进行自检和初始化)、CMOS设置程序(引导过程中,通过特殊热键启动,进行设置后,存入CMOS RAM中)、系统自动装载程序(在系统自检成功后,将磁盘相对0道0扇区上的引导程序装入内存使其运行)和主要I/O驱动程序和中断服务(BIOS和硬件直接打交道,需要加载I/O驱动程序)。
BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做”硬件自检”(Power-On Self-Test),缩写为POST。
如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。
12 启动顺序
硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序。
这时,BIOS需要知道,”下一阶段的启动程序”具体存放在哪一个设备。也就是说,BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做”启动顺序”(Boot Sequence)。
打开BIOS的 *** 作界面,里面有一项就是”设定启动顺序”。
第二阶段:主引导记录
BIOS按照”启动顺序”,把控制权转交给排在第一位的储存设备。即根据用户指定的引导顺序从软盘、硬盘或是可移动设备中读取启动设备的MBR,并放入指定的位置(0x7c000)内存中。
这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给”启动顺序”中的下一个设备。
这最前面的512个字节,就叫做”主引导记录”(MBR)。
21 主引导记录的结构
“主引导记录”只有512个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘的哪一个位置去找 *** 作系统。
主引导记录由三个部分组成:
(1) 第1-446字节:调用 *** 作系统的机器码。
(2) 第447-510字节:分区表(Partition table)。
(3) 第511-512字节:主引导记录签名(0x55和0xAA)。
其中,第二部分”分区表”的作用,是将硬盘分成若干个区。
22 分区表
硬盘分区有很多好处。考虑到每个区可以安装不同的 *** 作系统,”主引导记录”因此必须知道将控制权转交给哪个区。
分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多只能分四个一级分区,又叫做”主分区”。
每个主分区的16个字节,由6个部分组成:
(1) 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。
(2) 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。
(3) 第5个字节:主分区类型。
(4) 第6-8个字节:主分区最后一个扇区的物理位置。
(5) 第9-12字节:该主分区第一个扇区的逻辑地址。
(6) 第13-16字节:主分区的扇区总数。
最后的四个字节(”主分区的扇区总数”),决定了这个主分区的长度。也就是说,一个主分区的扇区总数最多不超过2的32次方。
如果每个扇区为512个字节,就意味着单个分区最大不超过2TB。再考虑到扇区的逻辑地址也是32位,所以单个硬盘可利用的空间最大也不超过2TB。如果想使用更大的硬盘,只有2个方法:一是提高每个扇区的字节数,二是增加扇区总数。
第三阶段:硬盘启动
这时,计算机的控制权就要转交给硬盘的某个分区了,这里又分成三种情况。
31 情况A:卷引导记录
前面提到,四个主分区里面,只有一个是激活的。计算机会读取激活分区的第一个扇区,叫做”卷引导记录”(Volume boot record,缩写为VBR)。
“卷引导记录”的主要作用是,告诉计算机, *** 作系统在这个分区里的位置。然后,计算机就会加载 *** 作系统了。
32 情况B:扩展分区和逻辑分区
随着硬盘越来越大,四个主分区已经不够了,需要更多的分区。但是,分区表只有四项,因此规定有且仅有一个区可以被定义成”扩展分区”(Extended partition)。
所谓”扩展分区”,就是指这个区里面又分成多个区。这种分区里面的分区,就叫做”逻辑分区”(logical partition)。
计算机先读取扩展分区的第一个扇区,叫做”扩展引导记录”(Extended boot record,缩写为EBR)。它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区)。
计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。
但是,似乎很少通过这种方式启动 *** 作系统。如果 *** 作系统确实安装在扩展分区,一般采用下一种方式启动。
33 情况C:启动管理器
在这种情况下,计算机读取”主引导记录”前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的”启动管理器”(boot loader),由用户选择启动哪一个 *** 作系统。
第四阶段: *** 作系统
控制权转交给 *** 作系统后, *** 作系统的内核首先被载入内存。
以Linux系统为例,先载入/boot目录下面的kernel。内核加载成功后,第一个运行的程序是/sbin/init。它根据配置文件(Debian系统是/etc/initab)产生init进程。这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代。
然后,init线程加载系统的各个模块,比如窗口程序和网络程序,直至执行/bin/login程序,跳出登录界面,等待用户输入用户名和密码。
至此,全部启动过程完成。
BIOS启动细节:
1) 按下电源开关,电源就开始向主板和其它设备供电;当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号);CPU马上就从地址FFFF:0000H 处开始执行指令,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。
2) 系统BIOS的启动代码首先进行POST(Power-On Self Test,加电后自检)。POST的主要检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备;由于POST是最早进行的检测过程,此时显卡还没有初始化,如果系统BIOS在进行POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K常规内存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型;在正常情况下,POST过程进行得非常快,几乎无法感觉到它的存在。POST结束之后就会调用其它代码来进行更完整的硬件检测。
3) 接下来系统BIOS将查找显卡的BIOS。前面说过,存放显卡BIOS的ROM芯片的起始地址通常设在C0000H处,系统BIOS在这个地方找到显卡BIOS之后就调用它的初始化代码,由显卡BIOS来初始化显卡。此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统BIOS接着会查找其它设备的BIOS程序,找到之后同样要调用这些BIOS内部的初始化代码来初始化相关的设备。
4) 查找完所有其它设备的BIOS之后,系统BIOS将显示出它自己的启动画面,其中包括有系统BIOS的类型、序列号和版本号等内容。
5) 接着系统BIOS将检测和显示CPU的类型和工作频率,测试所有的RAM,并同时在屏幕上显示内存测试的进度。可以在CMOS设置中自行决定使用简单耗时少或者详细耗时多的测试方式。
6) 内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘、CD-ROM、串口、并口和软驱等设备,另外绝大多数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。
7) 标准设备检测完毕后,系统BIOS内部支持即插即用的代码将开始检测和配置系统中安装的即插即用设备。每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。
9) 到这一步为止,所有硬件都已经检测配置完毕了,多数系统BIOS会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。
9) 接下来系统BIOS将更新ESCD(Extended System Configuration Data,扩展系统配置数据)。ESCD是系统BIOS用来与 *** 作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS(一小块特殊的RAM,由主板上的电池来供电)之中。通常ESCD数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时都能够看到“Update ESCD Success”这样的信息。不过,某些主板的系统BIOS在保存ESCD数据时使用了与Windows 9x不相同的数据格式,于是Windows 9x在它自己的启动过程中会把ESCD数据修改成自己的格式。但在下一次启动机器时,即使硬件配置没有发生改变,系统BIOS也会把ESCD的数据格式改回来。如此循环,将会导致在每次启动机器时,系统BIOS都要更新一遍ESCD,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。
10) ESCD更新完毕后,系统BIOS的启动代码将进行它的最后一项工作:即根据用户指定的启动顺序从软盘、硬盘或光驱启动MBR。在这个过程中会按照启动顺序顺序比较其放置MBR的位置的结尾两位是否为0xAA55,通过这种方式判断从哪个引导设备进行引导。在确定之后,将该引导设备的MBR内容读入到0x7C00[1]的位置,并再次判断其最后两位,当检测正确之后,进行阶段1的引导。
1、MBR是主引导记录,此记录执行完毕一般会接着执行活动主分区上的引导扇区内的记录或程序,所以一个系统的话,活动分区的引导扇区内一般也还是有引导内容的。
2、计算机启动的一般过程:BIOS程序执行完自检后将控制权交给硬盘的MBR,MBR一般会查找激活状态的主分区,做些引导条件判断,然后把控件权交给活动分区的引导扇区内的引导代码或引导程序,如NTLDR、BOOTLOADER等。
3、多系统主机的关键问题还是引导控制权的问题,一个方便的多系统规划,其初期的引导控制程序都是同一个程序,如NTLDR(WIN2k/2k3/XP)、BOOTLOADER(WIN7/VISTA)、GRUB(LINUX)等 。 这样切换系统直接用引导程序的菜单项选择,而不需要改变主分区的激活状态。
4、说到上面的这种多系统引导方式,有的时候后面的系统所在分区的引导扇区内也有可以没有引导程序的。比如你在安装Linux系统的时候,安装向导就会询问将引导程序(GRUB)写到硬盘MBR,还是BOOT所在分区,如果选择MBR,那么BOOT分区的引导扇区就基本没什么引导代码,只是无论怎么选GRUB引导需要的相关文件还是会存放在BOOT分区。
5、我一般安装XP、WIN7、LINUX多系统时,习惯用WIN7的BOOTLOADER程序来主控引导,即MBR最后是由WIN安装向导来写的,因为我喜欢BOOTLOADER的菜单风格。
reboot bootloader 中文译为:引导引导程序。
REBOOT BOOTLOADER :重启手机进入BootLoader模式人们通常说的bootloader一般特指在 *** 作系统下:
在 *** 作系统运行之前运行的一段或多段程序;’
初始化硬件设备、建立系统的内存空间映射图,将系统的软件硬件环境带到一个合适的状态,为调用 *** 作系统内核准备好正确的环境;
把 *** 作系统内核映像加载到RAM中,并将系统控制权交给它。
扩展资料:
常见的Bootloader
Redboot
Redboot是Redhat公司随eCos发布的一个BOOT方案,是一个开源项目。
当前Redboot的最新版本是Redboot-201,Redhat公司将会继续支持该项目。
Redboot支持的处理器构架有ARM,MIPS,MN10300,PowerPC, Renesas SHx,v850,x86等,是一个完善的嵌入式系统Boot Loader。
Redboot是在ECOS的基础上剥离出来的,继承了ECOS的简洁、轻巧、可灵活配置、稳定可靠等品质优点。它可以使用X-modem或Y-modem协议经由串口下载,也可以经由以太网口通过BOOTP/DHCP服务获得IP参数,使用TFTP方式下载程序映像文件,常用于调试支持和系统初始化(Flash下载更新和网络启动)。Redboot可以通过串口和以太网口与GDB进行通信,调试应用程序,甚至能中断被GDB运行的应用程序。Redboot为管理FLASH映像,映像下载,Redboot配置以及其他如串口、以太网口提供了一个交互式命令行接口,自动启动后,REDBOOT用来从TFTP服务器或者从Flash下载映像文件加载系统的引导脚本文件保存在Flash上。
参考资料:
最简单地讲,引导加载程序(boot loader) 会引导 *** 作系统。当机器引导它的 *** 作系统时,BIOS 会读取引导介质上最前面的 512 字节(即人们所知的 主引导记录(master boot record,MBR))。在单一的 MBR 中只能存储一个 *** 作系统的引导记录,所以当需要多个 *** 作系统时就会出现问题。所以需要更灵活的引导加载程序。
*** 作系统是控制其他程序运行,管理系统资源并为用户提供 *** 作界面的系统软件的集合。
*** 作系统(英语;Operating System,简称OS)是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。 *** 作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、 *** 作网络与管理文件系统等基本事务
你可以自己给自己的U盘设置一个固定的盘符。
具体做法是这样的,在我的电脑上按右键,在快捷菜单里,选择“管理”,打开“计算机管理”窗口。在计算机管理窗口里,选择“存储”下面的“磁盘管理”,如果看得到没有盘符的U盘,那么在这个U盘上按鼠标右键,选择“更改驱动器名称和路径”选项,就打开了“更改……的驱动器号和路径”对话框。再点击“更改”按钮,打开“更改驱动器号和路径”的对话框,在“指定以下驱动器号”的右边下拉列表里,选择你希望分配给U盘的驱动器号,尽可能靠后选择,比如X、Y、Z,选择好后,单击确定按钮,回到上一次“更改……的驱动器号和路径”对话框窗口,再一次单击确定,就回到“计算机管理”窗口。至此,如果一切正常,就给U盘单独设置了一个长久使用的驱动器号,并却,不受虚拟驱动器的影响了。
从Red Hat Linux 72起,GRUB(GRand Unified Bootloader)取代LILO成为了默认的启动装载程序。相信 LILO对于大家来说都是很熟悉的。这次Red Hat Linux用GRUB代替LILO,可见GRUB大有过人之处。不过,
相对于LILO来说,大家对GRUB还是要陌生一些。本文将对GRUB的基本情况、术语、接口、命令以及配置 文件做个介绍,希望对大家有所帮助。
一、GRUB的概述
在Red Hat linux装载一个系统前,它必须由一个引导装载程序(boot loader,启动管理程序)中的特定指令告诉它去引导系统。这个程序一般是位于系统的主硬盘驱动器或是其他知道如何去开始linux内核的媒介驱动器上。
如果说一个x86系统只安装了Red Hat Linux而且只有一个版本的linux内核,那么通过引导装载程序开始Red Hat Linux的特定过程就不重要了。Red Hat Linux安装程序允许用户快速方便地配置引导装载程序存放在主硬盘驱动的主引导记录中来引导 *** 作系统。
然而,为了能从多个linux内核或其他 *** 作系统引导,那么就很有必要了解Red hat linux用于提供必要的引导选项的方法,以及理解引导的过程与如何去改变。
本文是讨论GRUB,它是Red Hat Linux用来在x86系统上装载 *** 作系统的默认方法。同时,本文也将详细介绍用于控制引导过程的各种命令和配置选项。
GRUB的定义
GNU GRUB(GRand Unified Bootloader)是一个将引导装载程序安装到主引导记录的程序,主引导记录是位于一个硬盘开始的扇区。它允许位于主引导记录区中特定的指令来装载一个GRUB菜单或是GRUB的命令环境。这使得用户能够开始 *** 作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数(如可用的RAM大小)。
x86的引导过程
当一个x86机器启动后,系统BIOS开始检测系统参数,如内存的大小、日期和时间、磁盘设备、以及这些磁盘设备用于引导的顺序等。通常情况下,BIOS都是被配置成首先检查软驱或光驱(或两者都检查),然后再尝试从硬盘引导。如果在这些可移动的设备中,没有找到可引导的介质,那么BIOS通常是转向第一块硬盘最初的几个扇区,寻找用于装载 *** 作系统的指令。这些最初的扇区-主引导记录-开始装载一个预选择 *** 作系统的过程,一个 *** 作系统选项贩GRUB菜单,或是一个执行特定选项的GRUB命令行接口。
装载GRUB和 *** 作系统的过程,包括以下几个 *** 作步骤:
1、装载基本的引导装载程序,这通常是第一步。基本引导装载程序必须是位于主引导扇区中一个非常小的空间,少于512字节。因此,基本引导装载程序所做的唯一的事情就是装载第二引导装载程序。这主要是归结于在主引导扇区中没有足够的空间用于其他东西了。
2、装载第二引导装载程序,这通常称为第二步。这第二引导装载程序实际上是引出更高级的功能,以允许用户装载入一个特定的 *** 作系统。在GRUB中,这步是让用户显示一个菜单或是输入命令。
3、装载在一个特定分区上的 *** 作系统,如linux内核。一旦GRUB从它的命令行或是配置文件中,接到开始 *** 作系统的正确指令,它就寻找必要的引导文件,然后把机器的控制权移交给 *** 作系统。注意在一些文件系统以及文件系统的配置中,可能需要一个15步的文件,用来连接基本引导程序与第二引导程序之间的差异。
举个例子来说,如果第二步中的引导装载程序文件位于一个使用了第一步引导装载程序所不能访问的文件系统的分区中,那么就可能需要指示第一步引导装载程序,从15步文件中载入附加的指令来读取第二步引导装载程序的文件。更多相关的信息,请参考GRUB的信息页。
前面所提到的引导方法被称为直接装载。因为这种方法中使用的是直接装载 *** 作系统的指令,没有用到任何在引导装载程序和 *** 作系统主文件(如内核)之间的中间代码。然而,不同 *** 作系统所采用的引导过程可能会与上面提到的有一些细微的不同。例如,微软的DOS和Windows *** 作系统在安装时,倾趋于完全重写主引导记录,而不是合并当前的主引导记录的配置。这将破坏掉其他 *** 作系统保存在主引导记录中的所有信息,如Red Hat Linux。微软 *** 作系统,还有一些其他的专有 *** 作系统,都是使用一种称为链式装载的引导方法来启动的。在这种方法中,主引导记录仅仅是简单地指向 *** 作系统所在分区的第一个扇区。
GRUB支持直接和链式装载的引导方法。GRUB能用于几乎所有 *** 作系统,绝大多数流行的文件系统,以及几乎所有的系统BIOS所能识别的硬盘。
GRUB的特性
GRUB包含许多特性,这使得GRUB比其他可用的引导装载程序更加优越。下面列出一些比较重要的特性:
GRUB在x86机器上,提供一个真正基于命令行的,先于 *** 作系统(pre-OS)的环境。它对于用确定的选项装载 *** 作系统或收集系统信息方面,提供了最大程度的适应性。许多非x86的体系结构已经使用先于 *** 作系统环许多年了,它提供控制系统如何从一个命令行引导。当LILO或其他x86引导装载程序使用了一些命令特性的时候,GRUB已经包含了许多这方面的特性。
GRUB支持逻辑块寻址(LBA)方式。LBA将用于寻找驱动器上文件的地址转换工作置于驱动器的硬件中,它被用在许多IDE和所有的SCSI硬盘中。在使用LBA之前,硬盘驱动器遇到一个1024柱面的限制,即BIOS不能找到在1024柱面后的文件(比如一个引导装载程序或是内核文件)。只要系统BIOS能支持LBA模式(大多数都支持),那么LBA就允许GRUB超越1024柱面的限制,引导 *** 作系统。
GRUB的配置能在每次系统引导时被读取。这就避免了用户每次改变引导选项时都要重写一次主引导记录。大多数的引导装载程序都不能很老道地读取配置文件,并使用它们来设置引导选项。比如说,用户必需改变一个LILO的配置文件,然后运行一个命令将新的配置数据重写回系统的主引导记录。这种方法比GRUB所采用的方法更加危险,因为一个错误配置的主引导记录将让系统无法引导。在使用GRUB中,如果说配置文件被错误配置并且引导,那它也仅仅简单地转到一个默认的命令行,允许用户手工输入命令来运行 *** 作系统。除开更新系统引导的第一步、第二步、或是菜单配置文件的位置,主引导记录是不会被触及到的,而这种情况是很少发生的。
注意:
当GRUB的配置文件发生改变时,没有必要重新启动GRUB。所有的改变都能被自动地检测到。如果GRUB被重新启动,那么用户将退回到命令行方式的GRUB外壳下。
安装GRUB
如果在Red Hat Linux的安装过程中,GRUB没有被安装,下面将说明如何安装它,并将它设为默认的引导装载程序。
注意:如果LILO已经被安装,并且是当前的系统引导装载程序,那并没有必要为了使用GRUB而删除它。GRUB一旦安装后,将做为系统默认的引导装载程序。
首先,获取最新可用的GRUB包。在Red Hat Linux安装光盘上的GRUB包也可以使用。
其次,在一个外壳提示下,运行命令/sbin/grub-install ,这里的是GRUB将要被安装的位置。比如说:/sbin/grub-install /dev/hda
最后,重新引导系统。GRUB图形引导装载菜单将出现。
二、GRUB的术语
在使用GRUB前,最重要的事情之一就是理解这个程序是如何引用设备的,如系统硬盘驱动器、分区等。对于配置GRUB实现多 *** 作系统的引导,这方面的信息是很重要的。
设备名称
系统的第一个硬盘驱动器被GRUB称为(hd0)。在它上面的第一个分区被称为(hd0,0),第二个硬盘驱动器上的第5个分区被称为(hd1,4)。通常使用GRUB时,文件系统习惯上采用下面的方式命名:
(,)
在设备命名中,圆括号和逗号是很重要的。指出是一个硬盘(hd)还是一个软盘(fd)被指定。
是依照系统BIOS而确定的设备号,从0开始。基本IDE硬盘被标为0,第二IDE硬盘被标为1。这个排序大体上等同于linux内核用字母安排设备的顺序,只是在hda中的a变成了0,hdb中的b变为了1,依次类推。
注意:GRUB用于设备的命名系统是从0开始,而不是1。这常常是GRUB新手们常犯的最普遍的错误。
指在一块硬盘上一个分区的编号。类似于,分区的编号也是从0开始。虽然大多数的分区可以用数字指定,但是如果系统使用的是BSD分区,那么它们还是用字母来指定,如a或c。
GRUB在命名设备和分区时,使用下面的规则:
系统使用IDE硬盘或SCSI硬盘,都没有关系。所有的硬盘都是用hd开始。软盘用fd开头。
当指定整个硬盘,不考虑它的分区时,简单地将逗号和分区编号取消即可。当告诉GRUB配置一个特定硬盘的主引导扇区时,这一点很重要。比如,(hd0)指定第一个设备,(hd3)指定第四个设备。
如果一个系统有多个驱动设备,知道由BIOS确定的驱动器顺序就很重要了。如果系统只有IDE或SCSI驱动器,那是相当简单的。但是如果有多个驱动器混合时,这就变得令人混乱了。
文件名称
当在GRUB中输入包括文件的命令时,比如在多 *** 作系统中使用一个菜单列表,文件名必须直接在设备和分区后指定。一个绝对文件名的格式如下:
(,)/path/to/file
大多数的时候,用户可以通过在分区上的目录路径后加上文件名来指定文件。这种方法是直接了当的。
另外,我们也可以将不在文件系统中出现的文件指定给GRUB,比如在一个分区最初几块扇区中的链式引导装载程序。为了指定这些文件,需要提供一个块列表(blocklist),由它来一块一块地告诉GRUB文件在分区中的位置。当一个文件是由几个不同的块组合在一起时,需要有一个特殊的方式来写块列表。
每个文件片断的位置由一个块的偏移量以及从偏移点起始的块数来描述,这些片断以一个逗号分界(comma-delimited)的顺序组织在一起。
考虑下面的块列表:
0+50,100+25,200+1
上面这个块列表告诉GRUB使用一个文件,这个文件起始于分区的第一块,使用了第0块到第49块,第99块到124块,以及第199块。
当使用GRUB装载诸如微软Windows这样采用链式装载方式的 *** 作系统时,知道如何写块列表是相当有用的。如果从第0块开始,那么可以省略块的偏移量。作为一个例子,当链式装载文件在第一硬盘的第一个分区时,可以使用下面的命名:
(hd0,0)+1
下面给出一个带类似块列表名称的chainloader命令。它是在设置正确的设备和分区作为根后,在GRUB命令行中给出的。
chainloader +1
GRUB的根文件系统
一些用户常困惑于GRUB中根文件系统(root filesystem)这一术语的用法。GRUB的根文件系统与Linux的根文件系统是没有关系的,这一点需要记住。
GRUB的根文件系统是用于一个特定设备的根分区。GRUB使用这个信息来挂入(mount)这个设备并从它上面载入文件。
在Red Hat Linux中,一旦GRUB载入它自己的包含Linux内核的根分区,那么kernel命令就可以将内核文件的位置作为一个选项来执行。一旦Linux内核引导,它就设定自己的根文件系统,此时的根文件系统就是大多数人用来与Linux联系的了。最初的GRUB根文件系统以及它的挂入都被去掉,它们仅存在于用来引导内核文件。
关于根和内核命令的更多信息,可以参考后面的命令部分。
三、GRUB的接口
GRUB主要有三个强大的接口,它们提供了不同级别的功能。每个接口都允许用户引导 *** 作系统,甚至可以在处于GRUB环境下的接口之间移动。
菜单接口
如果GRUB是由Red Hat Linux的安装程序自动配置的,那么它默认的显示接口是菜单接口。在系统第一次启动后,一个 *** 作系统或内核的菜单(事先已经用它们各自的引导命令配置好)将一个按名称排列的列表保存在这个接口中。使用箭头键选择一个非默认选项,然后按回车键来引导它。如果不是这样,一个记时器可能已经被设置,那么GRUB将启动装载那个默认的选项。
在菜单接口上,按[e]键,对高亮菜单项中的命令进行编辑。按[c]键载入一个命令行接口。
菜单项目编辑器接口
在引导装载菜单中按[e]键,就进入了菜单项目编辑器。用于项目的GRUB命令就显示在这里。在引导 *** 作系统前,用户可以更改这些命令,添加(加在当前行后面,用[o]键;加在当前行前,用[0]),编辑(用[e]键),删除(用[d]键)。
在所有的改变都完成后,用[b]键来执行这些命令,并引导 *** 作系统。[Esc]键来放弃这些修改,将重新入标准的菜单接口。[c]键用来载入命令行接口。
命令行接口
命令行是GRUB最基本的接口,但它也是被授予了最大控制能力的接口。在命令行接口中,输入任何相关的GRUB命令,再回车就可以执行了。这个接口的功能有点类似于shell的功能,比如[Tab]键完成,前后文提示,输入命令时的[Ctrl]键组合,如[Ctrl]-[a]移到行的开头,[Ctrl]-[e]移到行的结尾。另外,箭头键,[Home],[End],[Delete]键与bash shell中一样用法。
接口使用的顺序
当GRUB环境开始载入第二步引导装载程序时,它寻找自己的配置文件。当找到配置文件后,它使用这个配置文件建立一个要载入的 *** 作系统的菜单列表, 然后显示引导菜单接口。
如果配置文件没有被找到,或者如果配置文件不能读取,那么GRUB将载入命令行接口,以允许用户手工输入必要的命令来启动 *** 作系统。
如果配置文件不是正确的,那么GRUB将显示出错误,并请求输入。这点是很有帮助的,因为用户将能够看到问题发生在文件中的什么地方,并修复它。按下任意键,重新载入菜单接口,根据GRUB报告的错误,编辑菜单选项并纠正问题。如果这个修正失败了,那么错误将被报告,且GRUB将再次开始。
四、GRUB的命令
GRUB包含了许多不同的命令,它们可以在命令行接口中以交互的方式执行。其中的一些命令能接在命令名后面的选项,这些选项用空格隔开。
下面的列表给出了最有用的一些命令:
boot - 引导先前已经被指定并载入的 *** 作系统或链式装载程序。
chainloader - 将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第一扇区内的文件,使用+1作为文件名。
displaymem - 显示当前内存的使用情况,这个信息是基于BIOS的。这个命令有助于确定系统在引导前有多少内存。
initrd - 使用户能够指定一个在引导时可用的初始RAM盘。当内核为了完全引导而需要某些模块时,这是必需的。
install p - 安装GRUB到系统的主引导记录。这个命令允许系统重启时出现GRUB接口。
警告:install命令将覆盖主引导扇区中的其他信息。如果命令被执行,那么除了GRUB信息之外的其他用于引导其他 *** 作系统的信息都将丢失。在执行这条命令前,确定你对它有正确的了解。
这条命令可以用几种不同的方式进行配置。然而,它都要求指定。表示一个设备,分区和文件,在那里可以找到第一个引导装载程序的映象,比如(hd0,0)/grub/stage1。另外,也指定了第一步引导装载程序应该被安装的硬盘,如(hd0)。
选项告诉第一步引导装载程序第二步引导装载程序位于什么地方,例如(hd0,0)/grub/stage2。p选项告诉install命令菜单配置文件被指定在部分,比如说(hd0,0)/grub/grubconf。
kernel - 当使用直接载入方式引导 *** 作系统时,kernel命令指定内核从GRUB的根文件系统中载入。
options选项是跟在kernel命令后面,在内核载入时传给内核。
在Red Hat Linux中,一个kernel命令的例子看起来象下面的形式:
kernel /vmlinuz root=/dev/hda5
上面这行表明了vmlinuz文件是从GRUB的根文件系统载入的,如(hd0,0)。同时,一个选项也被传给了内核。它指出当Linux内核载入时,内核的根文件系统应该是位于hda5,第一个IDE硬盘的第五个分区。如果有必要的话,多个选项可以被放在这个选项后面。
root - 将GRUB的根分区设置成特定的设备和分区,比如说(hd0,0)。并挂入这个分区,这样文件可以被读取。
rootnoverify - 做root命令同样的事情,只是不挂入分区。
除上面所述外,还有更多的命令可用。输入info grub,得到一个所有命令的完全列表。
五、GRUB的菜单配置文件
配置文件在GRUB菜单接口中,创建用于引导 *** 作系统的列表。配置文件可以允许用户选择执行事先设置好的一组命令。这些命令既包括前面给出的命令,也包括一些只用于配置文件的命令。
配置文件的专用命令
下面这些命令只用于GRUB的菜单配置文件:
color - 设定在菜单中使用的颜色,一种是作为前景色,一种作为背景色。可以简单地使用颜色名称,如red/black。比如:
color red/black green/blue
default - 默认项目的标题名称。如果菜单接口超时,那它将被载入。
fallback - 当这个命令被使用时,如果第一次尝试失败,那么这个项目的标题名称将被试用。
hiddenmenu - 这个命令被使用时,它不显示GRUB菜单接口,在超时时间过期后载入默认项。用户通过按[Esc]键,可以看到标准的GRUB菜单。
password - 这个命令被使用时,它可以防止不知道口令的用户编辑菜单的项目。
作为附加选项,可以在后面指定一个后备的菜单配置文件。因此,如果口令被知道,GRUB将重新启动第二步的引导装载程序,并使用这个后备的配置文件来建立菜单。如果这个后备文件不在命令中指出,那么知道口令的用户能够编辑当前的配置文件。
timeout - 这个命令设定了在GRUB载入由default命令指定的项目前的时间间隔,以秒为单位。
splashimage - 它指定在GRUB引导时所使用的屏幕图像的位置。
title - 设定用来装载一个 *** 作系统的一组特定命令的标题。
字符#用来在菜单配置文件放置注释。
配置文件的结构
设置GRUB菜单接口全局参数的命令被放在文件的顶部,接下来的是用于各个 *** 作系统引导的不同项目。
一个非常基本的用于引导Red Hat Linux或Microsoft Windows 2000的GRUB菜单配置文件可能如下所示:
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
rootnoverify (hd0,0)
chainloader +1
这个文件告诉GRUB建立一个以Red Hat Linux为默认 *** 作系统的菜单,设定10秒后自动引导。这里给出了2个部分,每个部分对应于一个 *** 作系统项目,每个部分都包含了指向 *** 作系统硬盘分区表的命令。
在下面的附加资料中,将列出如何使用GRUB引导多种 *** 作系统的参考资料。
六、GRUB的附加资料
这个部分只是对GRUB以及它的许多选项作一个介绍。如果想要更多的了解GRUB是如何工作的、如何在其他任务中配置它来引导非Linux *** 作系统,可以参考下面列出的一些资料。
安装文档
/usr/share/doc/grub-090 - /usr/share/doc/grub-090是GRUB文档在系统上的目录。
在一个shell提示下,输入man grub命令可以查看GRUB的手册,它包括一个装载GRUB shell时所使用的选项的列表。
在一个shell提示下,使用info grub命令可以得到GRUB的info页,它包括一个指南,一个用户参考手册,一个程序员参考手册,以及一个关于GRUB和它自己用法的FAQ文档。
有用的一些站点
>
Linux安装前的准备工作
1.用Windows系统收集硬件信息
在安装Linux之前,您需要借助Windows系统了解计算机硬件的基本信息,如内存大小、声卡、显示器、鼠标和显卡型号等。
2.设置从光盘引导系统
Linux支持几种安装方式,但直接以光盘开机启动进行安装最方便和快速。若要机器以光盘启动,需要修改BIOS的设置,将CD-ROM变更至开机顺序的第一位。
3.Linux分区
Linux分区的表示方法
分区就是将磁盘驱动器分隔成独立的区域,每个区域都如同一个单独的磁盘驱动器,在DOS/Windows系统下磁盘分区可分为C、 D和E盘等。但Linux则将磁盘视为块设备文件来管理使用,它以 /dev(device的缩写)开头表示。
例: 在Linux用 “/dev/hda1”表示Windows下的C盘
其中:hd 表示IDE硬盘(SCSI硬盘用sd);hda 为 第一个IDE 硬盘(第二为 hdb);/dev/hda1 为主分区,逻辑分区 从5 开始,如: /dev/hda5、/dev/hda6、/dev/hda7等。
为Linux准备分区
Linux分区和Windows分区不同,不能共用。所以需要为Linux单独开辟一个空闲的分区,最好是最后一个分区。如图1中利用Windows下的Partition Magic(分区魔法)软件,在D盘上腾出空间创建新分区E盘(或利用已有的空闲E盘),文件类型暂设为FAT32,作为稍后创建Linux分区使用,RedHat 90 大约需4 ~ 5GB的空间。
4.Linux 的文件系统
对于不同的 *** 作系统,文件系统也不同。Windows文件系统为FAT16、FAT32和NTFS。而Linux的文件系统可分为ext2、ext3、swap和vfat。ext2支持最多为255 个字符的文件名;ext3 是基于 ext2之上,主要优点是减少系统崩溃后恢复文件系统所花费的时间,RedHat 90 默认文件系统为ext3;交换区swap是被用于支持虚拟内存;Windows的FAT分区在Linux下显示为vfat文件类型。
1.用RedHat 90第一张安装光盘引导开机,系统在开机后会出现安装菜单。
安装菜单中提供了供用户选择的图形和文本模式的安装方式,按回车选择图形模式进行安装。在进入图形画面的安装模式前,RedHat 90比以往的版本多了一个环节,那就是提示对安装光盘介质进行检测, 也可按“Skip”按钮跳过检测。
2.接着安装程序会自动检测硬件,包括视频卡(显示卡)、显示器和鼠标的配置,然后进入图形画面的安装向导。在出现“语言选择”的画面中,我们选择“简体中文”,这样接下去的安装过程界面的文字都会改为中文。在“键盘配置”画面中接受默认的“美国英语式”键盘。选择“下一步”,在“鼠标配置”窗口,系统自动检测出鼠标的配置。
3.选择安装类型,安装类型包含四种不同的安装方式:个人桌面、工作站、服务器和定制。“服务器”的安装适用于专职的服务器使用,“个人桌面”和“工作站”适合于初学者,为了让你更多地了解安装过程,我们将选择“定制”类型进行安装。
4.磁盘分区设置:确认了“定制”方式之后,系统会出现“磁盘分区设置”窗口,它提供了两种分区方式:“自动分区”和“用Disk Druid手工分区”。
“自动分区”是一个危险功能,因为它会自动删除原先硬盘上的数据,并格式化成为Linux的分区文件系统。所以除非计算机上没有其他 *** 作系统,你才可以使用。建议采用Disk Druid程序进行手动分区,它的图形化界面比早期RedHat的fdisk程序 *** 作更简单。
5.磁盘设置:在选择“用Disk Druid手工分区”后,会显示如图2的“磁盘设置”窗口,这是整个安装过程中惟一需要用户较多干预的步骤,也是很重要的环节。
只要有一个主分区就可以安装并使用Windows *** 作系统,同时D、E等逻辑盘的文件结构也都是独立的。而Linux系统归根结底就只有一个根目录,一个独立且惟一的文件结构。Linux的文件系统采用树型结构,整个文件系统由一个“根”和根上的几个分“杈”组成,Linux需创建几个“Linux Native”分区和“Linux Swap ”分区,每个分区都必须通过 “挂载点”,分别载入到 “根(/)”或几个分“杈(如/boot、/home等)”上。
一个最基本的Linux系统需有一个“/”根文件系统分区、一个“Swap”交换文件分区和/boot分区,为了用户使用方便建议还需创建一个 /home分区。
为Linux建立分区有几种办法,一种是编辑现有空闲分区,使它成为Linux分区。如果没有空闲的磁盘空间,就需要将现有的分区删除后,腾出空间,以建立Linux分区。
图2中的/dev/hda6是在Windows下用Partition Magic为Linux准备的分区E盘(图1)。下面我们将在/dev/hda6上创建“/”、“/boot”、“swap”和“/home”分区。
(1)因 /dev/hda6 的文件类型是vfat,需先删除此分区,使它变成 “空闲”设备和“空闲分区”;
(2)创建“/”分区:选中“空闲”设备,按“新建”按钮,进入“添加分区”的窗口中,挂载点选“/”,文件系统类型选“ext3”,大小输入“5000MB”。
(3)创建“/boot”:同(2),在挂载点选“/boot”,文件系统类型选“ext3”,大小输入“100MB”。
(4)创建swap:一般swap分区的大小设定为机器内存的2~3倍为最佳,在“添加分区”的窗口,文件系统类型选“swap”,大小为600MB(如果内存为256MB),它不需要挂载点;
(5)创建“/home”:在挂载点选“/home”,文件系统类型选“ext3”,我们选择“使用全部可用空间”选项,将剩余的磁盘分配给/home区。
6.在完成了创建Linux分区后,接下来出现“引导装载程序配置”窗口。
对于Windows/Linux多 *** 作系统共存的系统,开机时如何指定引导的 *** 作系统,这需要借助开机引导装载程序(Boot Loader)。Linux内置了两种开机引导装载程序——LILO与Grub,在图3引导装载程序配置中,我们将开机启动的 *** 作系统设为DOS(Windows),同时默认系统设置——以Grub作为引导装载程序。
7.配置好引导装载程序后,在接下来的“网络配置”、“防火墙的配置”、“附加语言支持”和“时区选择”的窗口中,我们都按系统默认进行选择。
8.和Windows XP相同,有一个称为“root”权限最大的管理员账户,使用这个账户登录主机可以完全掌握整个系统,安装过程中需要设置它的口令,请记住设置的口令。在后面的“验证配置”的窗口中,我们以系统默认的设置进行。
9.接下来是进行“个人桌面默认的设置”,选择“定制要安装的软件包集合”。然后是系统软件包的选择安装,在“选择软件包组”窗口中,为了测试每个软件包的功能,选择最后一个选项“全部安装”,安装全部软件包需4850MB的硬盘空间,按“下一步”后,系统开始进行软件包的安装。在安装过程中,系统会提示插入第二及第三张安装光盘。
10.软件包安装完成后,系统会提示“创建引导盘”,当系统无法引导的情况下,引导盘可作为紧急救援盘,我们强烈建议要制作引导盘。
11.随后系统显示“图形化界面(X)配置”、“显示器设置”和“定制图形化配置”的窗口,分别显示系统检测出的视频卡(显示卡)的型号、内存和显示器的型号以及色彩深度、屏幕分辨率等,一般按系统的默认值设置即可。
完成了上述这些 *** 作后,系统会显示安装完成的提示窗口。当你重新启动机器后,Windows的开机画面将被多 *** 作系统引导程序Grub的精美图案所替代。
BIOS的主要作用有三点:1自检及初始化:开机后BIOS最先被启动,然后它会对电脑的硬件设备进行完全彻底的检验和测试。2程序服务:BIOS直接与计算机的I/O设备打交道,通过特定的数据商品发出命令,传送或接收各种外部设备的数据,实现软件程序对硬件的直接 *** 作。3设定中断:开机时,BIOS会告诉CPU各硬件设备的中断号,当用户发出使用某个设备的指令后,CPU就根据中为民号使用相应的硬件完成工作,再根据中断号跳回原来的工作
以上就是关于电脑只有一个系统可以不用装引导吗全部的内容,包括:电脑只有一个系统可以不用装引导吗、安装CentOS网络 *** 作系统时,设置引导装载程序的安装位置,默认安装在( )的MBR上、reboot bootloader是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)