grub分析
来源:互联网 发布:计算机c语言教学视频 编辑:程序博客网 时间:2024/05/23 11:50
grub.cfg是类UNIX系统的启动文件,有的文章上说是meu.lt,因为menu.lt是grub.cfg的链接文件。当开机进行启动的时候,机器首先去检测grub文件,根据grub文件里面的命令去执行相应的操作。
很多时候,特别是在linux调整分区后,开机重启时会出现error : unknow filesystem
grub rescue>
的字样,系统就是进不去。这表示你的grub2的配置文件坏了……
由于分区调整或分区UUID改变造成grub2不能正常启动,从而进入修复模式了(grub rescue),也称救援模式。
在救援模式下只有很少的命令可以用:set , ls , insmod , root , prefix
(1)set 查看环境变量,这里可以查看启动路径和分区。
(2)ls 查看设备
(3)insmod 加载模块
(4)root 指定用于启动系统的分区,在救援模式下设置grub启动分区
(5)prefix 设定grub启动路径
具体修复步骤如下:
1、查看分区:grub rescue> ls 回车
会出现如下字样:
(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1)
注:上面是我的分区设备,每个人可能不一样,但原理都是一样的。
2、寻找ubuntu所在分区:
(就是寻找你的Linux系统是装在以上哪个分区里)
grub rescue> ls (hd0,msdos1)/
若出现unknown filesystem字样,则尝试下一个
……
若出现的是你的ubuntu主文件夹下的文件夹和文件的名字,那就是的要找的分区了。
3、修改启动分区:
(假如你找到的启动分区是hd0,msdos8)
grub rescue>root=(hd0,msdos8)
grub rescue>prefix=/boot/grub //grub路径设置
grub rescue>set root=(hd0,msdos8)
grub rescue>set prefix=(hd0,msdos8)/boot/grub
grub rescue>insmod normal //启动normal启动
grub rescue>normal
之后你就会看到熟悉的启动菜单栏了
4、进入命令行启动ubuntu
进入系统启动选项界面后还是进不去,
因为你还没有真正的修改grub,这个要到ubuntu里修改
进入系统启动项界面后,按C进入命令行模式
grub >set root=hd0,msdos8
grub >set prefix=(hd0,msdos8)/boot/grub
grub >linux /vmlinuz-xxx-xxx root=/dev/sda8 //里边的xxxx可以按Tab键,如果有acpi问题,在最后加一句acpi=off
grub >initrd /initrd.img-xxx-xxx
grub >boot
这样就可以进入了
5、进入ubuntu修复grub
在终端里运行 sudo update-grub
sudo grub-install /dev/sda
6、重启,搞定!!
上述方法只能启动linux系统,但是启动windows系统需要对grub.cfg文件重新设定。
### BEGIN /etc/grub.d/30_os_prober ###
menuentry 'Windows 7 Ultimate' {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
chainloader +1 (命令与+之间有空格)
}
### END /etc/grub.d/30_os_prober ###
添加以上代码,可以生成linux和windows的同时开机界面。
0 0
- grub分析
- Grub源代码分析
- GRUB整体分析
- Grub 原理/代码分析
- Grub源码分析
- GRUB整体分析
- 分析GRUB配置文件
- 分析GRUB配置文件
- GRUB整体分析
- update-grub脚本分析
- GRUB整体分析
- grub源码分析---1
- grub源码分析---2
- grub----Stage1.s源代码分析
- Grub for dos bootloader 分析
- grub-0.97源码分析(1)
- Linux系统引导grub分析
- GRUB启动分析之stage1
- java继承个人浅谈
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round]A Raising Bacteria
- 利用MyEclipse对数据表产生CRUD方法却失效的解决方案
- Hadoop学习笔记(6)-简述分布式文件系统HDFS原理
- nyoj 545 第五届河南省程序设计大赛F
- grub分析
- 第5课时《osg矩阵变换(下)》
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round]B Finding Team Member
- myeclipse安装和基本配置
- iOS 网络篇4—GET请求和POST请求
- 《剑指offer》——二维数组中的查找
- SODBASE CEP学习进阶篇(二)续:日志采集-Flume Syslog采集
- ReactiveCocoa操作方法(过滤,秩序,时间,重复)
- 算法思想系列--分治策略(Divide-Conquer-Combine)(待补充)