仓酷云

标题: 来讲讲:GRUB启动全程细节窥伺 [打印本页]

作者: 萌萌妈妈    时间: 2015-1-16 13:58
标题: 来讲讲:GRUB启动全程细节窥伺
要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在使用初期。
了解Linux的启动历程,关于办理Linux体系启动成绩仍是十分有匡助的,晓得Linux体系在每一个阶段做了哪些事,将会匡助你更快的找到成绩出处,并办理这些成绩。
提醒:在举行主要文件编纂之前,最好是先对文件举行备份。
起首,我们来看呆板启动的第一步C自检(Power-OnSelfTest)

<Palign=center>
来讲讲:GRUB启动全程细节窥伺
登录/注册后可看大图

点击检察年夜图
在启动过程当中的第一步,就是自检,自检是由电脑的BIOS(基础输出输入体系)完成的,是对呆板体系组件举行反省,分歧的盘算机架构大概有分歧的反省体例,但它们是终极目标都是不异的。在自检过程当中,假如产生毛病,警报就会发生,呆板就会发生一系列有划定规矩的“滴”的声响,来标识特定的毛病;假如自检经由过程,则BIOS就会读取硬盘上的主引诱纪录,然后载进在内存中找到的引诱程序。
主引诱纪录(MBR):
<Palign=center>
来讲讲:GRUB启动全程细节窥伺
登录/注册后可看大图

点击检察年夜图
主引诱纪录(MBR)是经由过程BIOS读取启动驱动器的第一个512字节到内存(这里假定我们利用x86架构)在这512字节中,后面446字节一样平常包括一个底层启动代码,由它指向硬盘中的引诱程序,前面64个字节包括了这个硬盘的分区表(由4个16字节构成),最初剩下的2个字节是MagicNumber,它是用来举行毛病检测。
引诱程序(BootLoader)
引诱程序的目标是用来载进操纵体系,在Linux体系中,有很多引诱程序可使用,但在Linux中最次要的引诱程序是LILO和GRUB;Windows也有本人的引诱程序,叫NTLDR(NewTechnologyLoader),你大概已经也在windows启动的时分看到,如许子的信息”NTLDRismissing”;这就是windows引诱程序堕落后显现的提醒信息。
GRUB


点击检察年夜图
在现今Linux刊行版本中最为盛行的引诱程序就是GRUB(GRandUnifiedBootloader),GRUB是一个写进到主引诱纪录和硬盘上的启动分区(/boot)中,而且用于加载操纵体系的程序。GRUB是基于模块化计划,由分歧的事情阶段构成。个中GRUB的启动阶段分为Stage1和Stage1_5和Stage2这三部分构成。
Stage1
stage1代码被写进到主引诱纪录的512字节中往,但因为MBR巨细方面的限定;GRUBstage1一般指向GRUB的下一阶段stage1_5或stage2,GRUB是不是必要载进stage1_5这取决于以后文件体系的范例。能够检察GRUBstage1,只需在体系的/boot/grub目次下运转以下命令:
[root@localhostgrub]#filestage1
stage1:x86bootsector,codeoffset0×48
Stage1_5
Stage1_5是位于Stage1和Stage2之间的两头阶段
假如你检察过/boot/grub目次,你应当会看到各类分歧文件体系范例称号的stage1_5文件,这些文件会让stage1_5阶段正确的辨认文件体系范例
以下是保留在/boot/grub目次下的stage1_5文件:
e2fs_stage1_5
fat_stage1_5
ffs_stage1_5
iso9660_stage1_5
jfs_stage1_5
minix_stage1_5
reiserfs_stage1_5
ufs2_stage1_5
vstafs_stage1_5
xfs_stage1_5
Stage2
这是grub的次要阶段,它一般在/boot分区中的/boot/grub/stage2地位,它读取/boot/grub/grub.conf文件中的设置信息来确认怎样加载内核,它具有交互界面,同意你经由过程它来办理启动成绩,从头或修正GRUB,怎样让体系事情,stage2给用户显现出一个图形启动菜单,假如没有利用相干的按键举行操纵,如e,i键等,那末在划定工夫内,没有举行选择,GRUB就会从默许菜单项启动。
/boot/grub/grub.conf
该文件指定特定内核和initrd文件一切模块,并载进到你的Linux体系中往。
以下是RedHat中典范的grub.conf文件
#grub.confgeneratedbyanaconda
#
#Notethatyoudonothavetorerungrubaftermakingchangestothisfile
#NOTICE:Youhavea/bootpartition.Thismeansthat
#allkernelandinitrdpathsarerelativeto/boot/,eg.
#root(hd0,0)
#kernel/vmlinuz-versionroroot=/dev/hdb9
#initrd/initrd-version.img
#boot=/dev/hdb
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
titleRedHatEnterpriseLinuxServer(2.6.18-53.el5)
root(hd0,0)
kernel/vmlinuz-2.6.18-53.el5roroot=LABEL=/rhgbquiet
initrd/initrd-2.6.18-53.el5.img
以下是常常呈现的启动毛病界面:
GNUGRUBversion0.97(640Klower/3072Kuppermemory)
[MinimalBASH-likelineeditingissupported.Forthefirstword,TAB
listspossiblecommandcompletions.Anywhereelse,TABliststhepossible
completionsofadevice/filename.]
grub>
甚么都没有,只要GRUB的提醒符,我们该怎样办?经由过程GRUB中的TAB键来手动启动,以下是操纵步骤:
grub>root(hd0,0)
Filesystemtypeisext2fs,partitiontype0×83
grub>kernel/<TAB>
Possiblefilesare:lost+foundgrubinitrd-2.6.18-8.el5.imgSystem.map-2.6.18-
8.el5config-2.6.18-8.el5symvers-2.6.18-8.el5.gzvmlinuz-2.6.18-8.el5
grub>kernel/vmlinuz-2.6.18-8.el5roroot=LABEL=/
[Linux-bzImage,setup=0x1e00,size=0x1ad054]
grub>initrd/<TAB>
Possiblefilesare:lost+foundgrubinitrd-2.6.18-8.el5.imgSystem.map-2.6.18-
8.el5config-2.6.18-8.el5symvers-2.6.18-8.el5.gzvmlinuz-2.6.18-8.el5
grub>initrd/initrd-2.6.18-8.el5.img
[Linux-initrd@0xfe8a000,0x15547cbytes]
grub>boot

个中,root(hd0,0)专指第一块硬盘中的第一个分区;在kernel行中,你能够输出”/”,<TAB>就能够检察显现内核列表,在输出所要启动内核称号的几个关头字符以后,按<TAB>键让GRUB主动帮你补全;别的”roroot=LABEL=/”选项,来自我对RedHat体系利用的履历,你大概会有所分歧;以是你必要在你的grub.conf文件中反省这些内容。
在initrd行,也能够利用一样的操纵,显现相干内容列表。最初,输出boot,回车,Linux体系就能够启动。
感激来自OwnLinux:GRUB启动窥伺的稿件


系统管理相关命令:df、top、free、quota、at、lp、adduser、groupaddkill、crontab、tar、unzip、gunzip、last
作者: 再见西城    时间: 2015-1-18 11:32
选择交流平台,如QQ群,网站论坛等。
作者: 小魔女    时间: 2015-1-25 10:10
下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。
作者: 飘飘悠悠    时间: 2015-2-2 21:48
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
作者: 乐观    时间: 2015-2-8 07:44
Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。
作者: 第二个灵魂    时间: 2015-2-25 02:01
如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。
作者: 山那边是海    时间: 2015-3-7 15:55
学习Linux半年了~个人认为不会的多在网上找资料网上有很多资料可以搜索到,LS那位说放手去搞。
作者: 兰色精灵    时间: 2015-3-15 09:28
随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。
作者: 莫相离    时间: 2015-3-22 00:24
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2