1. linux grub装到哪个分区
GRUB 的安装方式两种
我们都知道在操作系统启动过程中有 一个很重要的引导程序——MBR。MBR是由三段组成的其中最重要的两段:是由446个字节组成的boot locader(引导加载器),和64个字节的分区表。在MBR的446字节也就是boot locader这段程序对于引导操作系统很重要。Linux中有两种boot locader可选,一种是LILO,一种就是GRUB。LILO现在已不用了。现在主要是使用GRUB来引导。现在我们来介绍一下GRUB。
GRUB是两段式的引导,第一阶段称为stage1,是存放在MBR中,主要来引导第二阶段stage2 这段主要放在/boot/grub/中的执行程序,主要是grub.conf这个文件。下面就介绍两种GRUB的安装
第一种是:当grub.conf这个文件不存在了,我们可以手动编辑。当系统重新启动时会出现一个grub的提示界面;而我们并不知道系统是在哪个磁盘中,这时我们可以用一命令来试着来找一下,grub>find (hd0,0)/ 用Tab键来查看是否有一个内核版本,如果有则是在这个磁盘中,反之则查找下一个。找到后可在grub>后输入:root (hd0,0)第二步是在grub>后输入kernel 后面跟上内核的版本,例如:kernel /vimlinuz-2.6.18-64.el5 ro root=/dev/vol0... quit。第三步是initrd,例如:grub>initrd /initrd 后面与内核版本相对应。最后是grub>boot 也就是重新启动。启动后在/boot/grub建立一个grub.conf 这样我们的grub就安装成功了。
第二种方式:当grub被破坏掉了。例如我们执行命令#dd if=/dev/zero of=/dev/sda bs=220 count=1 执行后MBR中的boot locader 就被删掉了。那我们怎样来重装grub呢?这里有两个方法。第一种就是:找一个系统光盘,从光盘启动紧急救援模式来修复grub。第二种方式就是安装grub到一个磁盘上。其过程是:
第一步是:在一个磁盘上重新化分一个分区,大约有100M左右,
第二步是:把这个分区格式化,#mount ext3 /dev/sdb1
第三步是:创建一目录。#mkdir /mnt/boot 并把上面的分区挂载到这个目录上#mount /dev/sdb1 /mnt/boot
第四步是:创建目录#mkdir /mnt/boot/grub
第五步是:进入到原操作系统i386-redhat目录中,并复制目录下所有文件。 #cd /usr/share/grub/i386-redhat
#cp ./* /mnt/boot/grub
第六步是:回原目录并卸载光盘#cd #umount /dev/sdb1
第七步是:执行grub命令#grub 会出现一个grub界面。逐步输入。
grub>root (hd1,0)
grub>setup (hd1)
grub>quit
经过这七步后我们的grub就成功的安装在了一个新的磁盘上,我们可以新建一个虚拟机并用这个磁盘,启动后就可以看到grub来引导的界面。
上面是两种方式来安装grub,如果再有内核就是一个小的Linux操作系统了。
2. Linux( bootloader)启动操作系统过程
Linux Booting Process:
(1) BIOS
功能:执行计算机系统完整性检测;通电液凳自检;搜索/加载/执行 boot loader程序。
一旦 boot loader 程序被探测到,并且加载到内存,BIOS会把控制权交给它。
(2) MBR
MBR位于引导盘(Bootable Disk)的第一个扇区(512B)。
通常是在 /dev/sda 或者 /dev/hda 。
注意:引导盘(bootable disk)和引导分区(bootable partition)的区别。
(3) GRUB
GRUB = Grand Unified Bootloader
如果在系统中安装有多个内核镜像,你可以选择某一个被执行。
GRUB展示了一个启动画面,等待几秒,如果你不输入任何字符,它将会按照grub配置文件的规定加载默认的内核镜像。
Grub配置文件在: /boot/grub/grub.conf
它包含了内核和initrd.img
(4) Kernal
(注意Kernal和kernel不一样)
Kernal按照grub.conf文件的规定,挂载根文件系统。
一旦kernal启动,它第一件事情就是执行:sbin/init 进程。
initrd是被kernel用做临时根文件系统,直到Kernal挂载了根文件系统。
(5) INIT(凳埋团Initilization)
根据 /etc/inittab 文件决定Linux运行层级,运行级别决定了哪个初始化程序(Initial Programs)被加载到启动项。
(6) Run Level
根据你的运行级别的设定,操作系统会执行下来对应的文件夹下的程序:
Linux的7个枣橘运行级别(Run levels):
标准的Linux运行级别为3或者5,如果是3的话,系统就在多用户状态;如果是5的话,则是运行着XWindow系统。不同的运行级别有着不同的用处,也应该根据自己的不同清晰来设置。例如,如果丢失了root口令,那么可以让机器启动进入单用户模式来设置。
如果是使用S(Start)开头的程序,那么是用在启动的时候,
如果是使用K(Kill)开头的程序,那么是用在关机的时候。
3. 先装win,后装linux时 linux的grub是放在mbr里还是所在分区的引导扇区
答:
第一个问题:都可以。
第二个问题:从启动功能实现来看,没有区别。但安回装位置不一样,答引导的原理不一样。安装在MBR上,就把win系统的引导覆盖了,这样就由grub来直接引导两个系统;装在其他盘里,存在grub与win引导交接的环节。(事实上grub不是完全装载MBR上,MBR的空间非常小,只有grub中的核心部分被装在了MBR上,其他大部分文件还是在盘符里)
第三个问题:会覆盖。
第四个问题:因为win的引导不能自动识别linux,需要安装后进行设置,但是grub引导能够识别win内核,生成一个win启动选项。因此后安装linux,比较方便。
4. 在学习linux中MBR和GRUB区别
首先你要明白 MBR 和GRUB 他不是一个概念的东西
MBR 是硬盘的前512 K 存储的 分区表 主引导程序 。 (应该上面的)
GRUB 其实是一个boot loader 卸载MBR 的
5. linux 中MBR的作用,它与grub或lilo有何联系!
简单的说GRUB或者LILO是代替MBR的工作。具体来说如下:
1、MBR是main boot record的简称,即主引导记录,专电脑属开机后BIOS自检,随后会加载MBR,MBR是一个512字节的扇区。这里除去64字节的分区表,剩下的就是一段小程序,它负责找到操作系统的引导文件。
2、grub或者lilo是直接写进mbr硬盘的主引导记录中的,计算机BIOS在启动时,按照预定的方式,将mbr内的代码加载至内存指定位置,grub写入主引导记录,bios就引导grub;