GRUB是什么?怎么区分各个分区?
- 格式:doc
- 大小:28.00 KB
- 文档页数:2
摘要:GRUB是多系统引导管理器,简单的说既能引导Linux,同时也能引导Windows;从 讨论区近四年的观察来看,大多初学者并不能在短时间内掌握GRUB的用法,为了解决初学者在最短时间内掌握GRUB,重写GRUB入门文档还是有必要的;本文重点介绍了GRUB的menu.lst的写法,另外通过GRUB命令行引导系统也做了详述;这些无论是对Windows版本的WINGRUB还是Linux版本的GRUB 都是适用的;目录索引一、什么是多重操作系统引导管理器,什么是GRUB;1、什么是多重操作系统引导管理器及工作原理;2、什么是GRUB;为什么我要选择GRUB;1)什么是GRUB;2)“GRUB太不好用”──对GRUB的认识的误区;3)为什么要选择GRUB;二、GRUB软件包版本选择和安装;1、Linux版本的GRUB及Windows版本的GRUB的说明;2、GRUB的Windows版本WINGRUB;3、GRUB的Linux版本软件包的安装;三、在Linux中,GRUB的配置中的安装和写入硬盘的MBR;1、在Linux中,GRUB配置过程中的安装grub-install;2、设定GRUB的/boot分区并写入MBR;四、GRUB的配置文件的menu.lst的写法;1、menu.lst的写法之一;1)在menu.lst中,通过root (hd[0-n],y)来指定/boot 所在的分区;2)在menu.lst中,kernel 命令行的写法;3)initrd 命令行的写法;4)menu.lst第一种写法的总结和实践;1]用fdisk -l ;df -lh ;more /etc/fstab来确认分区情况;2]查看内核vmlinuz的和initrd文件名的全称;3]开始写menu.lst ;2、menu.lst的写法之二,精简型;1)第一种情况:/boot和Linux的/根分区在同一个分区;2)第二种情况:/boot独立一个分区,和Linux的根分区不位于同一分区;五、通过GRUB命令行来启动Linux操作系统;1、为什么需要学习GRUB的命令行;2、用命令行来引导Linux操作系统的步骤;1)进入GRUB的命令行模式grub>2)获取帮助GRUB的help3)cat的用法;4)root (hd[0-n,y) 指令来指定/boot所在的分区;5)kernel 指令,用来指定Linux的内核,及/所在的分区;6)initrd 命令行来指定initrd文件;7)boot 引导系统;8)引导Linux系统实例全程回放;六、通过GRUB引导Windows操作系统;1、通过编辑menu.lst 来引导Windows 系统;2、通过GRUB指令来引导Windows ;七、GRUB丢失或损坏的应对策略;1、由于重新安装Windows或其它未知原因而导致GRUB的丢失;2、如果出现GRUB提示符,而不出现GRUB的菜单,如何引导系统;八、关于GRUB的未尽事宜;九、关于本文;十、参考文档;十一、相关文档;++++++++++++++++++++++++++++++++++++++++++++++++++++++++正文++++++++++++++++++++++++++++++++++++++++++++++++++++++++一、什么是多重操作系统引导管理器,什么是GRUB;1、什么是多重操作系统引导管理器及工作原理;系统启动引导管理器,是在计算机启动后运行的第一个程序,他是用来负责加载、传输控制到操作系统的内核,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引导的其它部份,比如系统的初始化及启动过程则完全由内核来控制完成;Briefly, boot loader is the first software program that runs when a computer starts. It is responsible for loading and transferring control to the operating system kernel softw are (such as the Hurd or the Linux). The kernel, in turn, initializes the rest of the operating system (e.g. GNU).在X86 架构的机器中,Linux、BSD(源代码) 或其它Unix类的操作系统中GRUB、LILO 是大家最为常用,应该说是主流;Windows也有类似的工具NTLOADER;比如我们在机器中安装了Windows 98后,我们再安装一个Windows XP ,在机器启动的会有一个菜单让我们选择进入是进入Windows 98 还是进入Windows XP。
grub 使用手册以下是一个简单的 GRUB 使用手册:一、概述GRUB(Grand Unified Bootloader)是一个用于引导操作系统的启动引导程序。
它允许用户在多个操作系统之间进行选择,并提供了一些配置和诊断工具。
二、使用方法1. 进入 GRUB 菜单在计算机启动时,按下特定的键(通常是 Esc、F1、F2、F10 或 Del)进入GRUB 菜单。
这个菜单会显示可用的操作系统和启动项。
2. 选择操作系统使用上下箭头键选择要启动的操作系统,然后按 Enter 键。
如果您选择了一个带有操作系统的设备(例如硬盘上的某个分区),则会启动该操作系统。
3. 配置 GRUB您可以通过 GRUB 配置文件来定制 GRUB 的行为。
配置文件通常位于`/etc/default/grub` 或 `/etc//` 目录下。
使用文本编辑器打开配置文件,并进行所需的更改。
更改后,运行以下命令以更新 GRUB:```bashsudo update-grub```4. 修复 GRUB如果 GRUB 损坏或无法正常工作,您可以尝试使用以下命令修复它:```bashsudo grub-install /dev/sda```其中 `/dev/sda` 是您的硬盘设备名称。
这将重新安装 GRUB 到硬盘的MBR(主引导记录)中。
5. 退出 GRUB在 GRUB 菜单中,按下 Esc 键或按下任意键即可退出 GRUB 并返回到操作系统或启动菜单。
三、常见问题与解决方法1. 如何解决 GRUB 无法正常引导的问题?如果 GRUB 无法正常引导操作系统,您可以尝试使用系统恢复模式或启动盘来修复引导记录。
在恢复模式下,您可以使用命令行工具来修复 GRUB。
如果您有启动盘,可以使用它来启动计算机并运行修复工具。
一些常见的修复工具有 Boot-Repair、EasyBCD 等。
2. 如何添加新的操作系统到 GRUB?要添加新的操作系统到 GRUB,您需要编辑 GRUB 的配置文件。
grub 原理Grub原理Grub(GRand Unified Bootloader)是一种开源的引导加载程序,用于启动计算机系统。
它的主要功能是在计算机启动时,从硬盘上选择并加载操作系统。
Grub采用模块化设计,能够识别多种文件系统和操作系统,并提供了丰富的功能和灵活的配置选项。
Grub的原理可以简单概括为以下几个方面:1. 引导扇区:计算机启动时,BIOS会将控制权交给引导扇区。
Grub的引导扇区通常位于硬盘的第一个扇区,大小为512字节。
引导扇区包含了Grub的核心代码以及配置文件。
2. 核心代码:Grub的核心代码位于引导扇区之后的部分。
它负责加载Grub的模块和配置文件,并提供引导菜单供用户选择操作系统。
核心代码还能够加载操作系统的内核和初始化RAM磁盘,以便后续的启动过程。
3. 模块加载:Grub支持加载各种模块,用于支持不同的文件系统和操作系统。
模块可以是静态链接的,也可以是动态链接的。
静态链接的模块在核心代码中编译,而动态链接的模块则可以在运行时加载。
4. 配置文件:Grub的配置文件通常位于硬盘上的特定位置,例如/boot/grub/grub.cfg。
配置文件包含了引导菜单的内容,其中定义了各个操作系统的启动选项。
可以通过编辑配置文件来自定义引导菜单。
Grub的工作流程如下:1. BIOS启动计算机时,将控制权交给引导扇区。
2. 引导扇区中的Grub核心代码开始运行,加载模块和配置文件。
3. 根据配置文件中定义的内容,显示引导菜单供用户选择操作系统。
4. 用户选择操作系统后,Grub加载相应的模块和内核,并将控制权交给操作系统。
需要注意的是,Grub并不仅仅是一个引导加载程序,它还提供了许多其他的功能,例如引导修复、内存测试、引导网络安装等。
Grub 还支持多重引导,允许用户在同一台计算机上安装多个操作系统,并在启动时选择不同的操作系统。
总结起来,Grub作为一种引导加载程序,通过引导扇区中的核心代码和模块加载,实现了选择和加载操作系统的功能。
GRUB/GRUB2简介及常用操作一、什么是GRUB/GRUB2?答:GRUB(Grand Unified Boot Loader)是强大的启动引导器,不仅可以对各种发行版本的Linux进行引导,也能够正常引导PC机上的其他常见的操作系统。
GRUB提供了真正的命令行交互界面,能够使用户以最大灵活性使用各种参数引导操作系统和收集系统信息。
注意:目前 GRUB 分成 GRUB legacy 和 GRUB 2。
版本号是 0.9x 以及之前的版本都称为 GRUB Legacy ,从 1.x 开始的就称为 GRUB 2。
Grub 2 是新一代的Grub,它实现了一些Grub中所没有的功能:1、模块化设计不同于Grub的单一内核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除。
2、支持多体系结构Grub 2可支持PC(i386), MAC(powerpc)等不同的体系机构,而且支持最新的EFI架构。
3、国际化的支持Grub 2 可以支持非英语的语言。
4、内存管理Grub 2 有真正的内存管理系统。
5、脚本语言Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。
二、如何对GRUB2进行加锁和解锁?答:password 口令字用于为GRUB的启动菜单和菜单项设置口令,但不适用grub2,在grub2加锁操作如下:i.在GNOME桌面打开终端输入grub-mkpasswd-pbkdf2回车:Figure 1 利用grub-mkpasswd-pbkdf2工具得到密文ii.两次填入加密口令确认得到加密后的密文:Figure 2 两次确认口令Figure 3 得到密文iii.之后用VI打开/etc/grub.d/00_header文件,添加如下内容:cat << EOFset superusers="su"password_pbkdf2 suEOF其中su为用户名.之后以ROOT身份运行update-grub即可.3、用户密码遗忘,如何修改GRUB2进行登录?答:如下所示:i.在虚拟机启动时安装shift键停留到启动项选择页面:Figure 4 grub2启动菜单i.输入e进入菜单编辑Figure 5 按E键进入编辑ii.将光标移动到有字符串 $vt_handoff 后空格并键入 rw init=/bin/bash,之后按ctrl+X进入bash命令行:Figure 6 进入命令行iii.输入:passwd 用户名进行密码修改:Figure 7 两次密码确认iv.两次确认后出现:password update successfully表明密码修改成功,重启用修改后的密码登陆即可.Figure 8 修改密码成功。
Grub引导程序的安装、配置及使用汇总(一)安装linux时安装grub.安装redhat linux时会提示安装引导程序,如果选择grub为引导程序,建议把grub安装到硬盘的引导扇区MBR. grub 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT、2000、XP。
(二)grub的配置一旦选择了grub为引导程序,下面我们来了解一下它的配置./boot/grub/grub.conf是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 have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,6)# kernel /vmlinuz-version ro root=/dev/hda10 # initrd /initrd-version.img#boot=/dev/hdadefault=0timeout=10splashimage=(hd0,6)/grub/splash.xpm.gz# --> Redhat Linux 8.0 <--title Red Hat Linux (2.4.18-14)root (hd0,6)kernel /vmlinuz-2.4.18-14 ro root=LABEL=/initrd /initrd-2.4.18-14.img# --> Microsoft Windows XP <--title Microsoft Windows XProotnoverify (hd0,0)chainloader +1#===========例子结束==========配置选项解释:以"#"开头的是注释行.我这里有两个操作系统,分别是Red Hat Linux和Microsoft Windows XP.其中 timeout标识默认等待时间,我这设置为10秒,超过10秒用户还没作出选择的话,将自动选择默认的操作系统(我这里默认的是Redhat linux 8.0)里0表示第一个,1表示第二个.所以如果你想修改默认的操作系统,就修改default后的数字.title一项是设置操作系统的名称,grub不支持中文(有点遗憾).splashimage一项指定grub界面的背景图片,有兴趣的朋友可以修改grub的背景哦!root (hd0,6)标识从第一个硬盘,第7个分区来启动搜索引导内核.注意这儿的root与linux的root分区不同,此root非彼root也! grub的硬盘标识方法与linux的有点不同.在linux中第一个主分区为hda1,第二个主分区为hda2,第一个逻辑分区为hda5,而在 grub 中是以(hdx,y)来标识的,如第一个主分区为(hd0,0)第一个逻辑分区为(hd0,4)依此类推.所以这儿root后面的是你的 /boot所在分区标识.知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
一、什么是多重操作系统引导管理器,什么是GRUB1、什么是多重操作系统引导管理器及工作原理系统启动引导管理器,是在计算机启动后运行的第一个程序,他是用来负责加载、传输控制到操作系统的内核,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引导的其它部份,比如系统的初始化及启动过程则完全由内核来控制完成;Briefly, boot loader is the first software program that runs when a computer starts. It is responsible for loading and transferring control to the operating system kernel software (such as the Hurd or the Linux). The kernel, in turn, initializes the rest of the operating system (e.g. GNU).在X86 架构的机器中,Linux、BSD 或其它Unix类的操作系统中GRUB、LILO 是大家最为常用,应该说是主流;Windows也有类似的工具NTLOADER;比如我们在机器中安装了Windows 98后,我们再安装一个Windows XP ,在机器启动的会有一个菜单让我们选择进入是进入Windows 98 还是进入Windows XP。
NTLOADER就是一个多系统启动引导管理器,NTLOADER 同样也能引导Linux,只是极为麻烦罢了;在Powerpc 架构的机器中,如果安装了Linux的Powerpc 版本,大多是用yaboot 多重引导管理器,比如Apple机目前用的是IBM Powerpc处理器,所以在如果想在Apple机上,安装Macos和Linux Powerpc版本,大多是用yaboot来引导多个操作系统;因为目前X86架构的机器仍是主流,所以目前GRUB和LILO仍然是我们最常用的多重操作系统引导管理器;2、什么是GRUB;为什么我要选择GRUB1)什么是GRUBGNU GRUB 是一个多重操作系统启动管理器。
grub参数
GRUB (GRand Unified Bootloader)是一种常用的引导加载程序,用于在计算机启动时加载操作系统。
它可以通过配置文件(grub.cfg)来加载操作系统,并可以通过设置不同的参数来修改引导行为。
一些常用的GRUB参数包括:
1. root:指定根分区的设备文件路径。
例如,root=/dev/sda1
表示根分区在/dev/sda1上。
2. kernel:指定操作系统内核的路径和名称。
例如,kernel
/vmlinuz表示操作系统内核文件为/vmlinuz。
3. initrd:指定压缩的初始内存文件系统(initrd)的路径和
名称。
它通常在启动操作系统之前加载并用作临时根文件系统。
4. quiet:禁止内核启动过程中的所有冗长输出信息。
这可以确
保启动过程更加简洁。
5. splash:在启动时显示一个图形化的启动画面。
该参数通常
与quiet一起使用,以便在启动时隐藏冗长的文本输出。
6. single:启动单用户模式,以便以root权限登录系统。
7. mem:限制可用内存的数量。
例如,mem=2G表示限制系统可用的内存为2GB。
这只是一些常见的GRUB参数,还有其他更高级的参数可以根据
需要进行配置。
在配置GRUB参数之前,建议备份grub.cfg文件,以
防止配置错误导致系统无法启动。
GRUB是什么?怎么区分各个分区?
GRUB是一个引导程序,它被安装在MBR(Master Boot Record即“主引导记录”)用于在启动时告诉电脑该启动哪一个OS(Operation System即“操作系统”),具体请看这里:
/w/index.php?tit ... iant=zh-cn
包括windows在内,每一个OS都需要引导才能启动,windows的引导程序是MS的ntload (NT内核的系统,如XP,Vista),安装XP 时会自动安装(不需要也不会询问你是否愿意),它只会寻找已被激活的主分区并把控制权交给这个分区的引导区(不是MBR)。
而GRUB就要强大得多了,它不但可以完成ntload的动作(即引导windows),而且可以引导linux、Mac OS,solaris,free BSD等等,而且可以在出错时报错,并提供简单的用户交互(命令行)。
当然由于都要安装到MBR,所以GRUB不能和ntload共存于同一块硬盘(grub4dos除外)。
GRUB会将BIOS检测到的所有硬盘编号,从0开始计数,0,1,2,3……,所以就是hd0,hd1,hd2,hd3……,hd就是hard disk即硬盘(SATA和IDE硬盘都是hd)。
●那么到底那一块硬盘对应hdx呢?
首先,如果你是单硬盘的话,不用想了,只会是hd0。
那么如果有两块或更多的硬盘呢?你可以这样:在开机检测出现BIOS画面时,等到全部硬盘的数据出现时,立即按下“Pause”键(我的位于“Page Up”键的上方),这时启动过程会暂停,然后仔细看看吧。
比如我有四块硬盘————两块IDE的,分别是40G、160G,还有两块SATA的,分别是80G和320G。
BIOS检测顺序是这样:IDE40,IDE160,SATA320,SATA80,所以GRUB表示为:IDE40(hd0),IDE160(hd1),SATA320(hd2),SATA80(hd3),就这样啦,赶快记下吧!
注意:这里有一个变数:启动盘顺序。
还是上面的例子,因为我的GRUB安装在SATA320的MBR,并且平时就是用这块硬盘启动电脑,所以这时候SATA320中的GRUB认为我的硬盘应该这样编号:SATA320(hd0),IDE40(hd1),IDE160(hd2),SATA80(hd3)。
呵呵,明白了吧!GRUB编号的原则是这样的:
1.多快硬盘的顺序完全照抄BIOS检测结果;
2.启动盘一定是hd0(不管BIOS如何),其他硬盘依次按BIOS检测结果重排。
3.不管IDE还是SATA,一律认作IDE硬盘!即不使用类似(sd0,0)这样的编号,这个和linux的方式不同喔!
●好了,搞清楚硬盘顺序再来看看硬盘分区是怎么编号的。
大家知道同一块硬盘最多只能共存四个主分区,所以对于hd0硬盘,依次是(hd0,0)、(hd0,1)、(hd0,2)、(hd0,3),这是只分出四个主分区的情况,这个编号永远固定不变;
不过这样的话,你就无法使用更多的分区了,所以通常应该牺牲掉一个主分区(通常是最后一个)把它转换为扩展分区(extend),以便在其中再细分出更多的逻辑分区(logic,注意和卖鼠标那个公司没关系啊)。
扩展分区可能是(hd0,0~3)其中的任何一个,这个编号永远不会在menu.lst中被使用,原因自己想想喽。
逻辑分区一律从(hd0,4)开始编号(因为0~3被主分区占据了),依次为(hd0,4)、(hd0,5)、(hd0,6)、(hd0,7)……
ok,对于大多数人来说,两个以上的主分区根本没用,所以惯常的做法是————一个主分区、一个扩展分区、若干个逻辑分区。
所以,惯常会使用在同一块硬盘上的编号是:(hd0,0)、(hd0,4)、
(hd0,5)、(hd0,6)……。
以此类推,第二硬盘是(hd1,0)、(hd1,4)、(hd1,5)、(hd1,6)……。
-------------------------------------------
题外话————这种方式好不好?
好!极好!非常好!好到没法说,没法说!
为啥?你用windows XP时用过双硬盘吗?添加过新硬盘吗?
有过经验的人都知道,windows XP中经常会出现“盘符交错”的麻烦。
如果你使用双硬盘并且都各自拥有一个已激活的主分区的话,嘿嘿,你确定你的“D盘”是第一硬盘的第二分区吗?不一定喔,它有可能是第二硬盘的第一分区!而你的第一硬盘的第二分区可能是“E盘”!第二硬盘的第二分区确可能又是“F盘”!……,我倒……
以上情况好像vista里已经得到改善了,在XP里并不是没有解决的方法,另外可能有人根本不在乎。
不过我很在乎,这个搞法我会发疯的!因为我经常把某个硬盘拆下装上,在两台计算机之间换来换去,你说能不发疯?以前在D盘的文件突然变成在E盘了,文件找找也就找到了,可是我装程序经常装到D盘、E盘(为了备份方便),咋整?再装一遍?那你自己整去吧,我可没那闲心!
还有,我的四块硬盘呢?服务器上几百块硬盘呢?不信你不发疯!
咋样?GRUB这个搞法是不是非常好!
-------------------------------------------
更加题外的话————linux的编号方法。
呵呵,这个简单了,严格按照BIOS检测结果,第一硬盘是sda,第二硬盘是sdb,第三硬盘是sdc……,而不管哪个是启动盘。
具体来说,我用第三硬盘启动的系统,GRUB认为它是(hd0),而linux依然认为它是sdc,明白?另外,自8.04开始,所有硬盘都编号为“sdxx”,即不管IDE还是SATA,一律认作SCIS硬盘。