在自制Linux盘上安装GRUB

转载 2007年09月29日 09:15:00
在自制Linux盘上安装GRUB      
     本人在一块硬盘上攒出一个Linux系统盘,但没有引导程序,因此该硬盘不能独立启动。为此希望将GRUB安装到自制Linux系统的硬盘上。本人参照文[1]安装GRUB,由于安装环境和作者的不同,在安装过程中出现了些问题。后来反复阅读和查找资料,终于正确安装GRUB,并在自制Linux盘中独立启动了Linux系统。现在将制作过程记录如下:

第1步:先确定硬盘标识。

用命令fdisk查看当前的所以硬盘情况。

[root@localhost root]# fdisk -l

Disk /dev/hda: 255 heads, 63 sectors, 1305 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1      1273  10225341   83  Linux
/dev/hda2          1274      1305    257040   82  Linux swap

Disk /dev/hdb: 16 heads, 63 sectors, 8322 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdb1   *         1      8322   4194256+  83  Linux

[root@localhost root]#

从上诉显示中,确定我们需要安装GRUB的硬盘标识为/dev/hdb。

第2步:安装GRUB的配置。

本人参照文[1],在系统提示符下键入grub-install命令。
[root@localhost root]# grub-install /dev/hdb
/dev/hdb does not have any corresponding BIOS drive.
[root@localhost root]#
系统提示错误。

通过阅读其它资料,发现需要指定grub安装的根目录。若未指定根目录,则系统默认安装在系统的根目录下,即目录"/"下,则grub将被安装在目录/boot/grub中。但目录/boot/grub是在设备/dev/hda上,而不是我们指定的设备/dev/hdb。所以就产生了上述错误提示。

为了能正确安装GRUB的配置,则需要将/dev/hdb挂接到系统的目录中,使系统可以读写该设备,同时通过grub-install的参数指定根目录。具体操作如下:
[root@localhost root]# mkdir /mnt/boot
[root@localhost root]# mount /dev/hdb1 /mnt/boot
[root@localhost root]# grub-install --root-directory=/mnt /dev/hdb
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /mnt/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(fd0)   /dev/fd0
(hd0)   /dev/hda
(hd1)   /dev/hdb

[root@localhost root]#

grub-install命令是将grub的配置安装在指定根目录的/boot/grub子目录中。因为本人制作的Linux系统盘为/boot分区,所以将设备/dev/hdb1挂接到目录/mnt/boot上,而在grub-install中指定根目录为目录/mnt。

第3步:设定GRUB的/boot分区并写入MBR

用gurb命令设定GRUB的/boot分区并写入MBR。

[root@localhost root]# grub

    GRUB  version 0.92  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename. ]

grub> root (hd1,0)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd1)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd1)"...  22 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd1) (hd1)1+22 p (hd1,0)/grub/stage2 /grub/grub
.conf"... succeeded
Done.

grub> quit

[root@localhost root]#

第4步:配置GRUB

现在剩下最后一步,编辑GRUB配置文件。

[root@localhost root]# vi /mnt/boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,0)
#          kernel /boot/vmlinuz-version ro root=/dev/hda1
#          initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title linux
        root (hd0,0)
        kernel /vmlinuz ro root=/dev/ram0
        initrd /initrd.img

[root@localhost root]#

按上述配置编辑文件grub.conf,并保存。

按以上4步即完成了GRUB的安装。用自制Linux盘启动,出现了"login:"的提示。大功告成:))

参考文献:
[1] "系统引导管理器GRUB,为初学者指南", http://www.linuxsir.org/main/?q=node/129

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1804796 

Linux下安装GRUB

链接:http://phoenix007.iteye.com/blog/259311 (一)安装linux时安装grub.   安装redhat linux时会提示安装引导程序,如果选择gru...
  • chuncaijiayou
  • chuncaijiayou
  • 2014年01月07日 14:47
  • 6009

U盘安装Linux启动失败问题(grub)

使用U盘安装Linux系统时,当安装所有的包后,点击reboot重启(重启后还需要对系统进行时间,其他用户等等的设定),发现启动时进入了grub> 界面。原来是使用U盘进行Linux安装时,默认启动位...
  • xuzhouweihao
  • xuzhouweihao
  • 2014年11月12日 19:55
  • 2879

0pe单文件夹,grub菜单全外置版

​1, 0pe与镜像定制启动的绝配 本地SRS驱动需要在镜像启动前后注入到系统的情形往往都很常见,0pe就是一个强有力的工具。因为它几乎是专门针对这个问题提出的一个整合方案。包括集成驱动和用winv...
  • MinLearn
  • MinLearn
  • 2017年12月12日 00:15
  • 39

MBR及linux下grub执行原理浅析

前几天,手痒痒把系统搞坏了,但正如那句话说的:塞翁失马,怎知不是福?查找了很多资料,学习到了很多新知识,发现大牛们要么不出手,出手的文章必定深入浅出,风趣幽默,还穿插了很多从技术中悟出的人生哲理,让人...
  • zhongjin616
  • zhongjin616
  • 2014年01月03日 10:19
  • 2168

GRUB使用说明及Linux和Windows双系统Grub丢失恢复和linux硬盘安装方法

从Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader)取代LILO成为了默认的启动装载程序。相信LILO对于大家来说都是很熟悉的。这次Red Hat Li...
  • halazi100
  • halazi100
  • 2014年01月14日 23:42
  • 697

<linux><grub 0.97>三重引导,基本无解,除非重做硬盘

在安装linux时发生某种中断 导致开机进入 grub 0.97
  • awsxsa
  • awsxsa
  • 2014年04月25日 22:54
  • 1155

将CDlinux 0.9.7.1的iso安装到U盘并安装grub2

此处以BIOS MBR启动方式为例子。 CDLinux V0.9.7.1下载地址:http://www.pc6.com/softview/SoftView_72726.html 一.格式化u...
  • shile
  • shile
  • 2017年01月11日 16:53
  • 1911

安装Linux后修改grub默认启动选项

grub是一种多操作系统启动程序,我们在安装了各种linux后,开机时出现的操作系统选择菜单通常是grub程序所显示的。        Linux安装后,默认的启动的操作系统就设定好了。在不同的时期...
  • u010098331
  • u010098331
  • 2016年03月02日 19:13
  • 8572

安装Win10,ubuntu16.04 LTS双系统 莫名进入grub命令行

Win10,ubuntu16.04LTS双系统莫名进入grub命令行装ubuntu系统本该是件轻松加愉快的事情:上网找找教程看看,一路傻瓜式操作,就能体验到命令行操作的简洁爽快了。但是有时候你偏偏遇到...
  • akidaka
  • akidaka
  • 2017年03月23日 21:35
  • 4624

Linux启动时显示Grub命令行及修改

linux修复引导菜单,出现grub命令提示符,使用命令进入系统。
  • xiaowen_10
  • xiaowen_10
  • 2015年01月17日 21:17
  • 18470
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在自制Linux盘上安装GRUB
举报原因:
原因补充:

(最多只允许输入30个字)