`

避开引导装入程序(grub),谈谈系统启动 (转)

    博客分类:
  • grub
 
阅读更多

                                                   作者:贾威威  (harryxiyou@gmail.com)
介绍
======
引导装入程序(boot loader)是由BIOS(Basic Input Output System)用来把操作系统的内核镜像装载到RAM中所调用的一个程序。早期的引导装入程序是MBR(Master Boot Record)中的一个小程序(MBR中其余部分是分区表),这个小程序用来装载被启动的操作系统所在分区的第一个扇区。这种小程序只能识别被活动标志标记的操作系统,所以具有一定的局限性。Linux处理方式变的很灵活了,因为Linux使用一个巧妙的程序把这个包含在MBR中的不完善的程序替换掉了,这个程序称为LILO或者GRUB(Grand Unified Bootloader),它允许用户来选择要启动的操作系统。目前我们常用的引导装入程序都是GRUB。

目的
=====
避开grub版本不一致问题,在pc上,先安装ubuntu 10.04再安装centos 5.4,然后从centos的grub中可以正确引导ubuntu。

问题描述
==========
主要问题是,ubuntu 10.04的grub版本是1.98,而centos的grub版本是0.97,两种版本的grub启动项的书写方式不一致,而且不同发行版的启动方式也存在区别。

具体步骤
=========
1, 我分别在/dev/sda1和/dev/sda3上安装了ubuntu和centos, /dev/sda2作为两者的公共swap。
2, 这时你只能通过grub引导centos,而不能引导ubuntu, 当然你也可以通过grub命令行,或者Live_CD启动ubuntu,但是那样不能治跟,只能暂时启动某一种发行版,下一次又不能通过grub选择任意启动一种。这里所存在的问题,可参考"问题描述"。
3, 启动centos, 然后把 /dev/sda1 挂载到 mnt下
       sudo mount   /dev/sda1  /mnt   &&   cd   /mnt
4,    拷贝ub下的启动内核,和initrd到centos的boot目录下
       sudo cp vmlinuz-2.6.32-21-generic vmlinuz-2.6.32-21-generic  /boot/
5,   重新配置 grub启动项,如下:

# 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,2)
#          kernel /boot/vmlinuz-version ro root=/dev/sda3
#          initrd /boot/initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,2)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.el5xen)
 root (hd0,2)
 kernel /boot/xen.gz-2.6.18-164.el5 
 module /boot/vmlinuz-2.6.18-164.el5xen ro root=LABEL=/ rhgb quiet
 module /boot/initrd-2.6.18-164.el5xen.img
title Ubuntu (10.04)
 root (hd0,2)
 kernel /boot/vmlinuz-2.6.32-21-generic root=UUID=9b973a7f-de5a-4753-b3d6-b48f6fa01f06 ro   quiet splash
 initrd /boot/initrd.img-2.6.32-21-generic

 

6, 重新启动系统, reboot后即可顺利启动ub了。

注意事项
==========
1, grub启动项中ub启动项的 root (hd0, 2)是centos 的'\', 因为我们把内核和initrd拷贝到了centos的boot目录下,这样就巧妙的避免了grub版本不一致的问题。
2, 利用Live_CD启动ub,然后grub-install 和 grub-update 不适用与centos和ub,我测试过了,可能适用于redhat+ub(我的师兄测试过了)。
3, 由于我要在centos下配置xen环境,所以需要在centos下设置ub的grub启动项,因为以后xen的启动项比较好添加,当然你也可以把启动项添加到ub的grub中。
4, 抛砖引玉,修改grub启动项的方法很多,请理解为主,不要拘泥。
5, 由于本人水平有限,如果你在实验的过程中发现某些步骤不是很合理或者存在问题,请及时指正。

结束语
=======
希望大家秉承开源理念,free open share,互相学习,共同进步 ;-)

References
===========
[0] Namran. http://blog.namran.net/2009/11/13/integrating-ubuntu-boot-config-into-centos-5-4-grub/   November 13th, 2009
[1] 深入理解Linux内核. Daniel P. Bovet & Marco Cesati 著. 陈莉君 冯锐 牛欣源 译. 孙玉芳 审. 2004. 中国电力出版社

 

http://harryxiyou.blog.163.com/blog/static/12957033420121189301948/

分享到:
评论

相关推荐

    绿色精简版 启动引导程序Grub

    Grub,全称为GRand Unified Bootloader,是一款多操作系统启动引导程序,常用于Linux系统的安装和管理。它的主要功能是在计算机启动时提供一个菜单,让用户选择要启动的操作系统或者不同的内核版本。Grub具有强大的...

    grub引导U盘启动

    GRUB(Grand Unified Bootloader)引导U盘启动是一种在计算机上使用GRUB引导程序从USB设备启动的操作方式,常用于系统恢复、系统安装或者多系统共存等场景。GRUB是一个强大的多操作系统启动管理器,它支持多种操作...

    GRUB引导程序-GRUB4DOS

    GRUB(Grand Unified Bootloader)引导程序是一种广泛使用的多启动加载器,允许用户在计算机启动时选择要运行的操作系统。GRUB4DOS是GRUB的一个变体,特别设计用于在DOS环境下运行,它提供了更强大的功能和灵活性,...

    grub修改ubuntu启动项

    在早期的Ubuntu版本中,Grub(GRand Unified Bootloader)作为系统启动引导程序,用户可以通过简单的编辑 `/boot/grub/menu.lst` 文件来定制启动选项。然而,随着Grub的升级到Grub 2,这种修改方式不再适用。Grub 2...

    grub dos 系统引导程序

    GRUB(Grand Unified Bootloader)是一款广泛使用的多操作系统启动加载器,它的主要功能是在计算机启动时提供一个菜单,让用户选择想要启动的操作系统或不同的系统配置。GRUB Dos是GRUB的一个版本,专为DOS环境设计...

    使用多重启动管理器GRUB引导Linux系统.pdf

    在 Linux 操作系统中,GRUB(Grand Unified Bootloader)是一种非常优秀的多重启动管理器,可以引导多种操作系统。本文主要介绍 GRUB 的配置文件、加密和修复方法。 GRUB 配置文件 在安装 Linux 操作系统时,系统...

    Windows-grub引导扇区程序

    总结,Windows中的GRUB引导扇区程序为多系统用户提供了灵活的启动选择,同时也需要一定的技术知识来配置和维护。了解GRUB的工作原理以及如何在Windows环境下安装和使用,将有助于更好地管理和利用多操作系统环境。在...

    grub引导linux启动.zip

    - BIOS或UEFI初始化:计算机启动时,BIOS或UEFI会寻找引导程序,通常位于MBR(主引导记录)或GPT(GUID分区表)的引导扇区。 - GRUB加载:GRUB的Stage 1被加载到内存,然后读取Stage 2,进一步加载GRUB的核心组件...

    grub4dos引导程序

    **grub4dos引导程序详解** `grub4dos`是一款经典的多系统引导工具,它基于GRUB(Grand Unified Bootloader)的简化版本,适用于在Windows系统中安装和管理多种操作系统。grub4dos不仅支持传统的MBR(主引导记录)...

    GRUB修复linux系统引导

    GRUB是Linux中最广泛使用的引导加载程序之一,它能够处理多系统环境,支持多种文件系统,并提供强大的定制功能。当Linux系统因配置错误、硬件故障或其他原因导致无法正常引导时,GRUB便成为了一线生机。 ### 解析...

    GRUB 系统引导工具

    GRUB 是引导装入器 -- 它负责装入内核并引导 Linux 系统。GRUB 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。尽管引导操作系统看上去是件平凡且琐碎的...

    GRUB2_启动引导器

    GRUB2,作为GRUB(Grand Unified Bootloader)的下一代版本,是当前广泛应用于类UNIX操作系统中的启动引导器。相较于GRUB legacy,GRUB2带来了诸多改进与创新,不仅提升了系统的启动效率与灵活性,还增强了对多操作...

    最精简启动efi包含grub程序和配置.zip

    综上所述,这个压缩包提供了一套完整的解决方案,帮助用户在FAT32格式的EFI分区上创建一个包含GRUB启动加载器、Linux内核和初始RAM磁盘的启动盘。这样的启动盘可以方便地在不同的硬件上启动Linux,尤其适合那些希望...

    grub引导U盘启动工具包

    【grub引导U盘启动工具包】是一种用于创建可引导U盘的实用工具集合,它包含了一系列必备软件和教程,使用户能够通过GRUB引导系统从USB设备启动。这个工具包特别适合那些需要在没有光驱或者希望快速安装操作系统的...

    系统引导管理器GRUB.pdf

    **系统引导管理器(Boot Loader)**是一种软件程序,它负责在计算机启动时加载和传递控制权给操作系统。其核心功能是在硬件初始化后选择并加载操作系统的核心部分。GRUB(Grand Unified Bootloader)作为当前最流行...

    Grub引导多操作系统的U盘制作.doc

    Grub引导多操作系统的U盘制作 Grub是一种流行的引导器,可以启动多种操作系统,包括Windows、Linux等。...Grub是一种流行的引导器,可以启动多种操作系统,並且可以灵活配置引导器,实现多系统启动。

    grub4dos引导U盘启动MaxDos

    ### GRUB4DOS引导U盘启动...通过以上步骤,您可以使用GRUB4DOS成功创建一个可引导型U盘,不仅可以启动MaxDos,还可以根据实际需要启动其他操作系统。GRUB4DOS的强大之处在于其灵活性和多功能性,适用于多种启动场景。

    grub语法 系统引导

    GRUB 语法系统引导 GRUB(Grand Unified Bootloader)是一种多系统引导管理器,可以同时引导 Linux 和 Windows 操作系统。GRUB 的主要功能是加载和传输控制到操作系统的内核,一旦把内核挂载,GRUB 的任务就算完成...

    Grub4Dos引导修复工具,一键修复,修复后就能正常启动硬盘

    Grub4Dos的引导文件grldr会被写入主引导记录(MBR),这是硬盘上的第一扇区,负责加载并选择系统引导程序。 2. **写入grldr.mbr到主引导记录**:grldr.mbr是一个特殊的GRUB版本,专门设计用于MBR。将它写入MBR使得...

Global site tag (gtag.js) - Google Analytics