安装SUSE Linux无法安装Grub的化解情势

2019-07-19 01:42栏目:IT操作系统

通过分析,发现是grub引导程序无法正常安装,根据其故障描述,判断为/boot/grub/stage1不存在,但是使用光盘引导已安装系统时,系统能正常启动,说明引导程序出错,后来通过分区时添加/boot分区,解决了上述问题。

这篇文章主要简述在linux系统中如何实现GRUB的安装。

1)格式化一个分区:

图片 1

最近到一个客户现场安装SUSE Linux Enterprise 10 sp4时,碰到如下问题:

首先了解几个概念:
 
MBR主引导记录:是在我们磁盘上的0磁道0磁头1扇区的位置 。
 
MBR总共有512个字节:主要包含引导程序bootloader 占据446个字节 , 磁盘分区表占据64个字节 ,引导封装代码占据2个字节
 
GRUB:全称是Grand Unified Bootloader 是一个功能强大,支持内核也非常多的bootloader引导加载器.
 
我们知道在系统启动过程中,系统在自检完成之后靠之前bios设置的磁盘启动顺序找到相应的磁盘,此时首先找到的是磁盘的MBR, 然后加载MBR中的bootloader引导程序。
 
在linux中我们常用的bootloader就是GRUB,如果GRUB损坏或者丢失也就意味着我们无法去加载系统内核程序,系统也将无法正常启动。
 
好了不罗嗦了,在此我们就介绍一下怎么在虚拟机下去安装GRUB ,
 
我们的操作环境是vm8的虚拟机,RedHat5.4的操作系统
 
第一种方法:  
1  我们在redhat5.4的系统中,加上一个磁盘 ,创建一个分区,并将其格式化。
 
    在虚拟机中给一个系统加一个磁盘,我想大家应该都不陌生,
 
 在此我加了一块磁盘为sdb
 
 # fdisk /dev/sdb    创建一个分区/dev/sdb1
 
 #mkfs –t ex3 /dev/sdb1  指定ext3的文件格式格式化磁盘分区
 
2 我们在mnt目录下创建一个目录为boot
 
      #mkdir /mnt/boot
 
             grub的相关文件是在/boot目录下
 
   3 挂载磁盘到此目录
 
     # mount /dev/sdb1 /mnt/boot
 
     安装是需要在/boot目录下写文件 所以挂载上去
 
    4 安装我们使用grub-install来安装grub
 
#grub-install  --root-directory=/mnt  /dev/sdb
 
       --root-directory = 此选项是指定grub安装的位置
 
     到此,我们用此新建的磁盘上的grub已安装成功 ,我们再创建一个虚拟机,用此磁盘作为启动盘就可看到grub的编辑界面了,此时再去指定根目录,内核等等,当然这是后面的事情了。
 
第二种方法:
 
我们用grub-install安装后生成的grub的目录的里面的内容和我们当前系统下 /usr/share/grub/i386-redhat目录中的内容是一样的,因此我们也可以通过复制文件的方式,然后再用grub命令来达到安装grub的目的。
 
1:#mount /dev/sdb1 /mnt/boot  依然是挂载
 
 2:#mkdir /mnt/boot/grub  创建以个grub的目录
 
3: #cp /usr/share/grub/i386-redhat/*   /mnt/boot/grub
 
                         复制前者的所有的文件到grub目录下
 
4 # umount /dev/sdb1     卸载
 
5  # grub  运行grub命令会弹出黑色编辑框
 
grub> root (hd1,0)         输入root (hd1,0) 回车  (hd1,0)表示第二个磁盘的第一分区
 
grub> setup (hd1)          输入setup (hd1) 回车  此为安装
 
grub> quit                  输入quit  回车  退出
 
 
此时再挂载上/dev/sdb1到 /mnt/boot查看grub目录下,你会发现也已经有所需的文件了,再去用创建以个新的虚拟机验证一下吧。

安装与使用grub

安装与使用grub

图片 2

图片 3

grub的安装过程与普通软件的安装过程没有太多区别,可以自行安装 

1)格式化一个分区:

图片 4

制作GRUB磁盘图文详解

前期准备:

版权声明:本文由ca888发布于IT操作系统,转载请注明出处:安装SUSE Linux无法安装Grub的化解情势