`

用grub命令行启动系统

    博客分类:
  • grub
阅读更多

转自http://bbs.51cto.com/thread-526095-1.html

前些天fedora的启动菜单grub.conf丢失,无法进入系统。不过,grub启动管理器还好好的,只好通过grub命令行来手动引导启动系统了。
  在“从硬盘安装fedora 8 ”中曾经稍微提到过,grub是一个多系统的启动管理器,不但有linux版本的grub,也有windows版本的grub。上次从硬盘安装系统用的就是windows版本的grub。可以说,grub是一个非常强大的多系统启动管理器,具有多重系统引导,交互式操作,可设置grub启动密码,可映射硬盘,可以定制开机画面等等特点。通过命令行启动系统就是交互式操作的一个应用,至于其它应用,这里就不再一一列出。想要深入了解它的话,可以看一下grub的手册: http://www.linuxsir.org/main/doc/grub/grubmanual/index.html 。说来惭愧,我还没完全看过。。哈哈。。
  闲话少说,先把通过命令行启动系统的过程列出来。为了解释方便,特标上行号:
1 root (hd0,2)
2 kernel /vmlinuz-2.6.26.5-28.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
3 initrd /initrd-2.6.26.5-28.fc8.img
4 boot
  怎么样?linux的启动命令行是不是很简洁啊?下面就一一解释这几命令。
  第1行命令:指定/boot所在的分区
  要是不知道自己的/boot分区在哪里,没关系,先输入root (hd0,然后按Tab键,它会显示可能的分区,然后根据分区类型判断/boot分区。我就是这么做的......所以Tab键是linux里很好用的一个键。这里指定/boot分区并不是必须的,在这里省略的话要在kernel以及initrd中指定,即:kernel (hd0,2)/vmlinuz-2.6......和initrd (hd0,2)/initrd-2.6......
  关于"hd0,2”,是指第一块硬盘的第三个分区,这是一个主分区。linux里的分区表示方法有两种:一是像"hd0,2"这种纯数字表示法,它是以"hd0,0"开始,意思是第一块硬盘的第一个分区;第二块硬盘就是hd1。还有一种是hda1这一种,它也表示第一块硬盘的第一个分区;第二块硬盘就是hdb。两种表示法用在不同的场合,纯数字表示法一般用在grub中指定/boot分区;第二种方法是日常使用的表示法,硬盘挂载等都用这种表示法。关于主分区与扩展分区,这里稍微提一点:扩展分区是从hdx5或hdx,4开始的,其中x代表硬盘号。要更加详细的了解linux的分区表示法,Google一下。

  第2行命令:指定内核映像及根分区
  输入kernel /vmlinuz,然后按Tab键补全内核映像全名;补全以后可以看到我的fedora内核映像是vmlinuz-2.6.26.5-28.fc8。如果有一个以上的内核,它会全部显示出来让你选择(这种情况遇到过,从8升级到9以后,我的启动菜单里就有了两个映像)。还有就是,我的/boot分区不是在根分区中,而是一个独立的分区;如果/boot分区不是一个独立分区,而是位于根分区中,就要这样写: kernel /boot/vmlinuz-2.6.26.5-28.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet,下面的initrd要写成:initrd /boot/initrd-2.6.26.5-28.fc8.img。映像后面的部分是用来指定根分区的,要手动输入。ro的意思是read only,root=/dev/VolGroup00/LogVol00是根分区位置,rhgb意思是图形化启动过程,quiet意思是不要显示启动信息。在实际操作中,我发现内核映像以后的部分其实不是必须的;也就是说,即使不输入这部分内容,不指定根分区,不指定图形化启动过程,不省略启动信息,也可以正确启动。对于不必指定根分区,是否跟我的系统是单内核有关系?
  这行命令要多理解一下。首先,vmlinuz中,vm是指vritual memery,linuz的意思是说,这一个经过压缩的内核映像。还有,这一行命令中的root跟第一行命令中的root表达的不是同一意思。第一行命令中的root指的是系统的启动分区,即/boot分区;第二行命令中的root指的是系统的根分区,即/分区。要详细理解两者的区别,就牵涉到linux文件系统及目录结构,它是linux中关键性的概念之一,我会找个时间写一些关于它东西,浅谈一下我对它的理解。"root="后面的"/dev/VolGroup00/LogVol00"就是根分区的位置;看起来是不是怪怪的?因为我的根分区用的不是普通的硬盘分区,而是逻辑卷,术语叫LVM(logical volume manager)。这个也是linux里一个很重要的东西。LVM要结合linux硬盘分区及目录结构来理解,这里就不谈了,否则会越扯越远,偏离正题。

  第3行命令:指定initrd.img
  initrd即initial ramdisk,字面上理解是初始化RAM磁盘。它实际上是一个临时的文件系统,而且是与内核绑定在一起的。一般用来加载必须的系统文件、驱动程序和存储设备等,系统启动以后它立刻被释放。据说,在没有其它存储设备的情况下,它就是永久的系统。我不是太了解,也写不出更多的东西来。总之,initrd.img是一个与内核绑定在一起的,用来加载必须的系统文件的临时文件系统。

  第4行命令:启动系统。输入boot,敲回车键即可启动系统。
  系统启动以后,再想一下这个手动启动的过程,如果了解grub的话,手动启动系统并不复杂。而启动菜单呢,很像是根据我们手动输入的内容编写而成的一个脚本。这个“脚本”让你在启动系统时不必每次都手动输入,所以这个“脚本”还是很有用的,我们还是手动编写一个吧。
  若了解linux目录结构的话,就会知道启动菜单在根分区的boot文件夹下的grub文件夹中。grub文件夹中还有一个menu.lst,它是grub.conf的链接文件。你可能有点疑问:你的/boot分区不是一个独立的分区,不在根分区中么?其实这就是linux与windows不同的地方之一,它是通过挂载的方式与根分区产生关系的,这牵涉到文件系统和目录结构方面的东西,这里不详谈。找到并打开grub文件夹,创建一个grub.conf,你需要root权限!

  grub.conf该怎么写呢?和上面输入的命令基本相似。下面是我虚拟机中fedora的grub.conf的内容:

其中,加#号的都是注释文字,启动时是被忽略的。核心部分如下:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu title Fedora (2.6.26.5-28.fc8)
  root (hd0,0)
  kernel /vmlinuz-2.6.26.5-28.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
  initrd /initrd-2.6.26.5-28.fc8.img
  第一行,default项,表示默认启动的系统。0代表按照grub中的顺序默认启动第一个系统,改为1,则是默认启动第二个系统。以此类推。第二行,timeout项,表示选择菜单等待时间为5秒。这个可以自己设定选择菜单等待的时间。第三行,splashimage项,表示开机启动时出现的背景画面。若不想让画面显示,可以在前面加#号以忽略。第四行,hiddenmenu项,表示隐藏选择菜单,加#号表示不隐藏。若装了双系统又不想让它出现选择菜单,可以把前面的#号去掉。第五行,title项,选择菜单上出现的系统标题。下面的就不用再解释了。。。
  仿照这个grub.conf另外写一个启动菜单,注意我实际电脑中的/boot分区是(hd0,2),其它的完全照搬。然后把它放在/boot/grub中,就可以正常启动fedora了。但是我的实际的电脑中装的是xp和fedora双系统,按照那个启动菜单虽然可以正常启动fedora,却不能正常启动xp,仍然需要手动输入。所还需要在刚才的启动菜单尾部加上一部分:
title windows xp
  rootnoverify (hd0,0) #我实际电脑中xp系统是放在第一个分区中的
  chainloader +1
  若想让xp系统默认启动,把default项改为1。xp这一部分的启动菜单用了链式装入器,也不必理会什么意思,照搬就可以了。
  现在一份新的启动菜单就弄好了!
  这篇日记算是勉强写完了。一方面,我也不是特别了解grub,无法作更深入的挖掘;另一方面,这篇日记牵涉到很多linux文件系统、目录结构、硬盘分区等知识。既要谈一点这方面的知识,否则读起来会很吃力;又不能谈的过多,否则会偏离正题。但是不管怎么说,用命令行启动fedora是没什么问题了......

分享到:
评论

相关推荐

    最详细最完整的grub命令行

    当系统启动到GRUB命令行界面时(即看到`grub>`提示符),表示当前处于GRUB模式下。在这一模式下,用户可以通过输入不同的命令来执行特定的操作,例如加载操作系统内核或进行其他系统维护工作。 ##### 2. 获取GRUB...

    grub命令行启动系统简明教程

    本文将详细介绍如何使用GRUB命令行启动系统,并对GRUB启动命令进行深入解析。 #### 二、GRUB命令行启动步骤 **1. 指定/boot所在的分区** 首先,我们需要告诉GRUB系统/boot分区的位置。这一步对于找到正确的内核和...

    ubuntu9.1随手笔记,GRUB修复,GRUB命令行启动,字体安装,flash 乱码,切换用户,eclipse安装,LD_LIBRARY_PATH变量的设置

    ubuntu9.1随手笔记,GRUB引导修复,GRUB命令行启动,字体安装,flash 乱码,切换用户,eclipse安装,LD_LIBRARY_PATH变量的设置,修改系统启动选项菜单的背景图片,remastersys工具包安装

    在grub2命令行下启动windows xp

    在grub2命令行下启动windows xp 2012-11-21 我从ubuntu的光盘启动后,安装了grub2,结果重启开机时出现grub>,光驱还无法使用. 我的系统在第一硬盘的第一分区上装有windows xp系统,可以命令行状态下输入命令启动它:

    grub语法 系统引导

    GRUB 命令行是 GRUB 的一个重要组件,通过 GRUB 命令行可以启动 Linux 操作系统。GRUB 命令行的使用可以分为两步:首先,进入 GRUB 的命令行模式,然后使用 kernel 指令来指定 Linux 的内核,及/所在的分区。 GRUB ...

    什么是grub和mbr,如何使用

    GRUB 命令行引导系统是 GRUB 的一种高级使用方式,用户可以通过 GRUB 命令行来引导操作系统,实现灵活的引导控制。 GRUB 的 menu.lst 文件的写法是 GRUB 的核心部分,用户需要了解 menu.lst 文件的写法和 GRUB 的...

    编写操作系统之使用GRUB

    2. GRUB命令行:如果启动时进入GRUB命令行,可以通过输入命令手动引导操作系统。 3. BIOS/UEFI设置:确认BIOS或UEFI设置中,GRUB是正确的启动设备。 总的来说,理解并掌握GRUB的使用对于管理多操作系统环境至关重要...

    Grub_多系统引导.doc

    Grub 命令行引导系统可以在 Windows 和 Linux 平台上使用。 多系统引导管理器是计算机启动后运行的第一个程序,负责加载和传输控制到操作系统的内核。常见的多系统引导管理器包括 Grub、Lilo、yaboot 和 NTLOADER ...

    grub常用命令的使用与内核启动

    在 GRUB 命令行模式下,用户可以输入各种命令来管理启动过程。其中,`root` 命令用于指定引导哪个分区上的系统。例如,要引导第一个硬盘上的第一个分区的操作系统,需要输入 `grub>root (hd0,0)`。 加载内核 要...

    grub 完美教程 学习grub多启动设置方法

    1. 系统启动时,首先引导至 MBR,将控制权移交安装在 MBR 中的引导管理器(Windows2000/2003/XP 使用 NTLDR,Linux 通常用 GRUB)。 2. 引导管理器读取分区表。 3. 引导管理器读取分区中的配置文件,并按配置文件中...

    grub的启动引导资源。

    - **GRUB命令行**:在启动过程中按下`e`键可以进入GRUB命令行模式,允许临时修改启动参数,这对于调试和故障排除非常有用。 - **模块加载**:GRUB支持动态加载模块,如支持加载额外的驱动程序以识别特定硬件。 ...

    grub 制作多系统引导的好工具

    3. **引导修复**:如果某个操作系统因为更新或错误无法正常启动,GRUB通常提供恢复选项,比如通过GRUB命令行手动加载操作系统。 四、GRUB与grldr 在你提供的文件列表中,`grldr`是GRUB Legacy的引导加载器。GRUB ...

    Linux系统引导管理器GRUB详解.pdf

    除了引导 Linux 操作系统外,GRUB 也可以引导 Windows 操作系统,用户可以通过编辑 menu.lst 或使用 GRUB 命令行来引导 Windows。 七、GRUB 丢失或损坏的应对策略 如果 GRUB 丢失或损坏,用户可以通过重新安装 ...

    系统启动界面需要文件_grub.rar

    7. **GRUB命令行**:在启动过程中,如果按`e`键,可以进入GRUB命令行模式,允许临时修改启动参数,这对于调试或解决启动问题非常有用。 8. **安全模式和启动修复**:GRUB还可以用于启动到系统的安全模式或启用启动...

    Linux系统GRUB引导单用户模式三种方式

    在GRUB命令行下,输入"root (hd0,2)",然后输入"kernel /vmlinuz-2.6.9-1.667 ro root=/dev/VolGroup00/LogVol00 single quiet",最后输入"boot"命令以booting进入Linux单用户模式。 通过这三种方式,我们可以轻松...

    grub命令引导系统使用方法

    - 使用 `boot` 命令启动系统。 8. **测试完整的引导流程** - 通过上述步骤验证 GRUB 是否能正确引导 Linux 系统。 #### 四、通过 GRUB 引导 Windows 系统 **4.1 通过编辑 menu.lst 文件引导 Windows 系统** 为了...

    0050Grub_多系统引导.zip

    4. **GRUB命令行**:在没有配置文件或者引导出现问题时,掌握GRUB命令行的基本操作,如手动加载内核和初始化RAM盘,可以帮助你解决问题。 5. **恢复GRUB**:如果GRUB被覆盖或损坏,了解如何使用Live USB或CD/DVD来...

    grub 修复 双系统哦

    GRUB是Linux系统中最常用的引导加载程序之一,它能够识别并加载多个操作系统,为用户提供了在启动时选择操作系统的灵活性。GRUB通过其配置文件`/etc/grub.d`和`/boot/grub/grub.cfg`来管理启动菜单和引导流程。 ###...

    GRUB2_启动引导器

    用户可通过GRUB2的恢复模式访问底层命令行,执行修复操作,如修复引导记录或重新安装GRUB2,从而避免数据丢失和系统瘫痪。 #### 6. GRUB2与GRUB legacy的对比 GRUB2在设计上更侧重于现代操作系统的兼容性和高性能...

Global site tag (gtag.js) - Google Analytics