linux出现grub
❶ linux出现grub
解决的办法,如下: 首先确定自己当初在安装linux时有没有创建/boot分区:
1、如果当初装系统时创建了/boot分区,那么先输入:
grub rescue>ls
屏幕上会显示很多个分区,例如:
sda:(hd0,msdos1),
(hd0,msdos2),
(hd0,msdos3),
(hd0,msdos4)......
然后输入ls (hd0,msdos*)/
找出哪一个是/boot的分区
<注:*是一个通配符>
直到尝试某一个数字,假设是6,(我的电脑就是6)后有显示:
.../grub.../grub2
如果电脑是fedora16,17,那么下面的代码就是这样:
grub rescue>root=(hd0,msdos6)
grub rescue>prefix=/grub2
grub rescue>set root=(hd0,msdos6)
grub rescue>set prefix=(hd0,msdos6)/grub2
grub rescue>insmod normal
grub rescue>normal
然后就进入了熟悉的grub界面,就能够顺利的引导系统了 (因为fedora16,17后就是用grub2了,原来的grub是不行的)
如果是其他的系统(ubuntu......)则好像是grub
因为本人的是fedora17的系统,所以对ubuntu不是很清楚,但当你无奈的时候可以尝试一下
2、如果当初没有创建/boot分区,那么:
虽然也是使用的ls (hd0,msdos*)/命令,但是这回查找的就不是/boot分区,而是/主分区了
使用ls (hd0,msdos*)/,直到下面显示有: ......./boot......
假设主分区是7,(我的电脑是7) 若是fedora16,17系统 那就应该输入如下命令:
grub rescue>root=(hd0,msdos7)
grub rescue>prefix=/boot/grub2
grub rescue>set root=(hd0,msdos7)
grub rescue>set prefix=(hd0,msdos7)/boot/grub2
grub rescue>insmod normal
grub rescue>norma
然后就ok了。
请注意:fedora16,17一定是grub2,而不是grub,网上有很多都是说的grub,应该是针对别的linux而言的
当进入了自己的linux系统之后,还得要更新一下自己的grub,如果不更新的话以后每次开机时都需要输入这么一大段代码
❷ linux开机如何进入grub界面
我不知道大家为什么都说按esc键,我按esc键就没有任何反映,重点是一定要用鼠标把虚拟机当前系统窗口点为激活状态,也就是说虚拟机系统窗口看不到鼠标了,然后你再按“任意键”就可以进入可选菜单了,说一下我的环境
VMware15Pr 安装在win10操作系统上
CentOS 5.11 安装 在VMware虚拟机上
从虚拟机开启linux想要进入启动时的grub需要注意几个点:启动菜单是否配置好,手速是否够快,系统蓝色窗口是否被鼠标激活等,说明如下~~
/boot/grub/menu.lst(或者/boot/grub/grub.conf),此文件是否timeout参数设置过小,默认是5秒,如果你手速不够快的话,可以改成10或者20秒。不够快的话系统会默认进入可选菜单的第一项
hiddenmenu参数默认开启,也就是说默认菜单选择界面是不显示的,只显示蓝色界面(当然你手速够快也没啥大问题),如果想开机显示可选菜单就把这个参数给注释掉,前面加上# 变成 #hiddenmenu
以上都没有问题后,在蓝色界面出现时按任意键就能够进入可选菜单,这时按下方界面说明 按e、a、c、b等键可进行grub命令控制或者修改你的menu.lst文件
❸ linux重启后出现了grub
如果还有其他操作系统出现grub正常会自动区分uefi和mbr的bios不同引导方式,只有linux时出了grub很可能引导缺失文件或者root下的/boot有严重问题。有条件挂livecd进去看看。
❹ Linux 修复grub开机引导(ubuntu)
问题 : 有时候Linux系统/boot分区损坏时,启动Linux系统时直接进入字符接口的grub引导,并没有进入到系统或者开机显示 error:unknow filesystem提示
解决办法:
Linux开机自动会进入到grub引导接口(如果没进入到grub引导接口可以按C键进入)
第一步:找到系统对应的扇区及/boot/grub目录
注意 :假设是硬盘接口类型sd,hd0对应是sda hd1对应是sdb
(hd0)≠(hd0)
(hd1,gpt2)=(hd1,2)
ls (hd1,gpt2) 查看(hd1,gpt2)扇区信息(盘符、空间等)
ls (hd1,gpt2)/ 查看(hd1,gpt2)扇区下的内容(文件、文本等)
如果打印每个扇区目录信息,会出现两种情况:
1、ls (hd1,gpt2)显示Unknow filesystem提示说明这个扇区不是我们要找系统分区
2、ls (hd1,gpt2)显示/boot /proc等系统目录信息说明这个扇区是我们要找的系统分区
如果找到对应扇区的系统分区,可能会遇到两种情况:
1、 A目录下有/boot/grub
2、A目录下有/boot,B目录下有/grub (此时在第二步加载系统内核要使用 set prefix=(hd1,gpt2)/grub 命令)
grub > ls
(hd0), (hd1), (hd1, gpt1), (hd2,gpt2), (hd3, gpt3)
第二步:加载系统内核
grub > set root=hd1,2 #此处不需要括号,加括号也可以,hd0和hd1是有区别
grub > set prefix=(hd1,2)/boot/grub
grub > linux /vmlinuz root=/dev/sdb2 #vmlinuz必须使用TAB补全(可能有后缀),注意sda或sdb需要看自己的实际情况
grub > initrd /initrd.img-xxx #TAB补全,多内核情况下版本需统一
grub > boot
提示 :如果在boot之后不幸进入BusyBox,说明参数设置有问题,可以仔细查看出错的日志,再重启系统后重复执行第二步操作(重启系统后上面设置的参数会被清空)。
第三步:修改grub引导
如果成功进入系统,记得要马上信息grub引导,不然重启系统后问题还是存在
sudo update-grub2 #grub2命令(高版本使用grub2)
$ sudo grub-install /dev/sdb
第四步:重启系统
重启系统后即可正常进入系统
reboot
❺ Linux grub
用其它机器新建一个空白文本文档,将下面的内容复制进该文档里面后保存,然后将其更名为menu.lst。
用U盘启动电脑,将这个文件拷贝到那个电脑的xp系统盘的根目录里(假设win系统是xp,要是是win7,就麻烦了,将磁盘分区状况和系统安装的状况等用追问告诉我吧)。
重启,即可。
timeout
3
default
0
title
启动
HDD
NT
&
XP
find
--set-root
/ntldr
chainloader
/ntldr
❻ linux启动出现grub
解决过程[以RedHat 7.3为例] 1.把安装盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用光驱来引导。 2.等安装界面出来后,按[F4]键,也就是linux rescue模式。 3.一系列键盘以及几项简单的配制,过后就[继续]了。。。这个过程,我不说了,比较简单。 4.然后会出现这样的字符 sh# 5.我们就可以操作GRUB了。哈。只要能出现这样的,以后都是小KISS了 sh#grub 会出现这样的字符 grub> 我们就可以在这样的字符后面,输入 grub>root (hdX,Y) grub>setup (hd0) 如果成功会有一个successful... 这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。 setup (hd0)就是把GRUB写到硬盘的MBR上。 我来举个例子吧,如果以我的硬盘为例。我在第一个硬盘上装了XP,在第一个硬盘的hda9个装了RH73.我总共有两个硬盘。如果我把GRUB丢了,就用这种办法找回来。 如果你不知道你的linux安装到哪个分区上,也就是说,不知道这个Y是多少,这也不要紧,先输入root (hdX,然后用[TAB]来查看,一下就明白了... 操作如下:[前面开机启动的上面有说明] sh# grub 会出现下面的字样的 grub> 然后再这样操作,如果我知道我的linux装在第一个硬盘上,但我不知道装在哪个分区上,就可以先输入root (hd0,然后用[TAB]键来补齐,然后就明白了。 [code:1:3249bf1c31] grub>root (hd0,8) grub>setup (hd0) [/code:1:3249bf1c31] 请弟兄们结合文章及这个例子,仔细想一想。 我的第一个硬盘的分区情况是这样的。。 /dev/hda1 主分区 NTFS /dev/hda2 扩展分区 /dev/hda5 NTFS /dev/hda6 FAT /dev/hda7 FAT /dev/hda8 /boot ext3 /dev/hda9 / ext3 /dev/hda10 /swap ext3 最后就是按一下[RESET]键,重新启动,就OK了。。。。
❼ linux系统管理之grub引导
什么是GRUB
GNU GRUB 是一个多重操作 系统 启动管理器。GNU GRUB 是由GRUB(GRand Unified Bootloader) 派生而来。GRUB 最初由Erich Stefan Boleyn 设计和应用;
系统启动引导管理器,是在计算机启动后运行的第一个程序,他是用来负责加载、传输控制到操作系统的内核,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引导的其它部份,比如系统的初始化及启动过程则完全由内核来控制完成;
Linux 中GRUB的配置文件
grub的配置文件位于/boot/grub/grub.conf其内容如下。
default=0 //默认启动的内核或者说默认启动的操作系统,0表示的是第一个内核或者操作系统,依次往后排(title所指定的那一项,第一个title是0,第二个是1,依次)
timeout=5 //默认的超时时间,这里定义的是5秒,如果5秒没有选择,默认启动第一个内核或者说是第一个操作系统
splashimage=(hd0,0)/grub/splash.xpm.gz //指定grub的背景图片,因为grub是系统开机后,运行系统所必须运行的第一个程序,所以,系统所自带的文件系统还没有被挂载,好在grub可以直接访问磁盘文件,grub所识别的硬盘跟linux系统的不太一样,grub认为,所有的磁盘都是hd的,而系统则不是。所以这里是(hd0,0),第一个0表示的是第一块硬盘,第二个0表示的是第一个分区。如果要引用磁盘设备,要用括号括起来,所以这里有一个括号。
hiddenmenu //隐藏grub菜单,如果有这一项,我们将看不到grub的菜单,只能看到grub的背景图片,然后上面出现了一个 please any key to enter the menu 下面是 Booting <default=0指定的,默认是第一个title的内容> in <timeout=N 超时时间设置>... 这样子。具体的看下面的图
![]( http://upload-images.jianshu.io/upload_images/4958474-d753926ca3df5492.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
然后可以通过按任意键,进入grub的菜单。如果有多个内核的话,我们可以选择启动哪一个内核。下图是grub的菜单
![]( http://upload-images.jianshu.io/upload_images/4958474-3b21dfedd7290e30.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
下面的英文内容,相信大家也看得懂。我就不多说了。通过编辑这里的grub菜单,我们可以直接进入单用户模式,然后修改密码。忘记密码的时候,可以试下这个方法。
title Red Hat Enterprise Linux Server (2.6.18-164.el5) //这就是一个标题,就是Grub菜单上所显示的内容,title关键字后面的内核,可以随便写,为了方便识别,建议还是写一些可以从字面意义看出是什么操作系统或者内核的文字描述。
root (hd0,0) //把hd0,0设置为根目录,方便访问.设置文件访问的起始点,这里设置的根,是grub的根。
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet //指定内核文件,在内核后面跟的root,指的是操作系统的根目录在哪儿. rhgb是redhat的一个小工具,显示各种输出的信息,包括硬件的初始化,quit表示是静默模式,不输出信息.启动系统的时候会卡一下,然后出现redhat就是因为没有显示rhgb小程序的输出信息.
initrd /initrd-2.6.18-164.el5.img //可以认为这是一个驱动程序,系统刚开机的时候,Grub第一个启动,要挂载文件系统,就要从文件系统里面读取驱动,如果驱动在内核里面还好,如果不在内核里面了,那不就……所以,这个可以认为是一个驱动。其实,他是一个微小的linux系统,这个系统里面,只包含了驱动程序,没有其它文件。可以先把它重命令为.gz的,然后解压,解压后再用cpio解压,就可以看到其内容了。目录结构跟你的linux系统是一样的,只不过没有文件,只有驱动程序而已。
刚才说过,可以直接通过这里改密码,这样是很不安全的。也就是说,如果别人能接触到我们的物理服务器,他就可以直接更改我们系统的密码,所以,我们可以给grub 加密 码,加密码的方法就是直接在grub.conf中指定,可以用关键字password 后面跟密码来实现,但是这样的密码是明文的,也不安全,所以我们可以用password --md5 通过grub的md5加密工具来加密,然后写到password --md5的后面。grub的md5加密工具是grub-md5-crypt ,直接使用这个命令,输出密码,然后会生成一段MD5加密后的值,写到关键字后面就可以实现md5加密grub了。
写的位置的不同,加密的效果也就不一样,我们可以写到一个title里面,只对指定的内核或者说操作系统来加密,当启动该内核或者系统的时候,会要求用户输入grub的密码。当写在所有的title外面的时候,编译grub菜单的时候,会要求输入密码,这时候密码先按p键输入密码,然后再按e键,才能编辑。
手动安装GRUB
安装grub有两种方法可以使用。下面进入详细的介绍,如果某些地方说的不太准确,希望大家能够提出,TKS
第一
可以使用grub-install命令来进行安装,具体方法是
grub-install --root-directory=/要安装到哪个目录 /要安装的设备
例:我这里用 虚拟机 演示一下,新加了一块磁盘,然后分区格式化(该操作不演示),然后挂载,然后用命令安装,如下图
x
注意:这里挂载点一定是boot目录,可以不是/mnt,但最后挂载的目录名字,一字叫boot,不然会出问题的。还有安装的时候--root-directory=一定不要指定到boot目录,要指定到boot所在的目录,因为grub安装的时候,会去找boot目录,如果找不到,会报错的。当我们把盘挂载到boot之后,可以认为,该盘的名字就叫boot,所以,它会在该盘内写入bootloader,以引导系统,如果我们安装的时候指定到了boot,那么就是把bootloader的内容写到了文件里面,而不是硬盘的MBR。切记切记。我做了好多次都没做出来,就是犯了这个错。
安装完成后,我们新建一个虚拟机,创建磁盘的时候,使用已有磁盘,找到我们安装过grub的磁盘,然后使用之即可。开机之后,会惊喜的发现,出现了grub的提示符。
![]( http://upload-images.jianshu.io/upload_images/4958474-a6b446eee903d400.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
第二种方法(有点儿麻烦):
首先把 /usr/share/grub/i386-redhat/里的所有文件,拷贝到grub目录
注意:这里同上,一定要挂载到boot目录下,无论boot目录在哪
![]( http://upload-images.jianshu.io/upload_images/4958474-5bc61b8664d71e60.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
然后开始grub的安装,直接使用命令grub
![]( http://upload-images.jianshu.io/upload_images/4958474-83d9432c7ef95f52.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
root (hd2,0) 表示grub要安装到第三块硬盘第1个分区上
setup (hd2) 指定要安装的设备,设备为第二块硬盘,安装完成后quit命令退出就可以了,至于图片,我就不上了,绝对是可以的。