关于grub2
由于做windows把mbr覆盖了,所以在修复时学习一下grub2的知识
一、设备的命名
grub2同样是以fd表示软盘,hd表示硬盘(包含IDE和SCSI硬盘)。设备从0开始编号的,分区则是从1开始编号的,主分区是1-4,逻辑分区从5开始。
(fd0):表示整个软件盘
(hd0,1):表示biso中第一个硬盘的第一个分区。
(hd0,5)/boot/vmlinuz:表示bios中第一个硬盘的第一个逻辑分区的boot目录下的vmlinuz文件。
二、grub2的安装与启动
安装 ubuntu9.10时,grub默认安装在第一个硬盘(hdo)的mbr上,其实就是把引导文件 boot.img写入硬盘的mbr。当然也可以选择不写入mbr,而写入linux分区的引导扇区中。
启动时根据mbr所提供的信息找到启动分区,加载分区的grub核心文件core.img和配置文件grub.cfg,进入选择菜单。
启动出现菜单时,按e键进入编辑状态
,按c键进入命令行模式
。control+x以编辑的内容启动
,control+c进入命令状态
,按esc返回菜单项
。
按c键进入命令行模式后,可以按tab查看命令
,根据需要进行加载或移除相应的模块。
实验(1)
第一个硬盘第一个分区上有windows xp系统,我们可以这样引导。
grub>set root=(hd0,1)
grub>chainloader +1
grub>boot
//我的第一个分区装的是msdos系统,测试成功。
ls命令:
ls
//显示出磁盘设备
ls -l
//能显示出分区及文件类型,uuid等信息
ls /
//列出当前设置的root分区下的文件
ls (hd0,1)/
//列出(hd0,1)分区下的文件
实验(2)
1、第一个分区是msdos系统,看看里面有什么文件
ls (hd0,1)/
显示出:io.sys msdos.sys command.com bootlog.prv bootlog.txt
我们在用到磁盘里的某个文件或目录时,可以按tab键进行列出,和linux命令的tab相似
2、显示linux分区里的文件
我的linux分区是(hd0,3) //dev/sda3
ls (hd0,3)/
[按tab显示当前文件,他还有补全的功能]
引导linux
我们首先知道内核文件vmlinuz-xxxx... 和initrd.img-xxxx(boot loader初始化内存盘)在boot目录里,而我的linux系统在(hd0,3)分区中
#指定用于启动的分区
grub> set root=(hd0,3)
#指定内核文件,linux的意思是用linux取代grub中的kernel命令
grub> linux /boot/vmlinuz-xxx-xxx root=/dev/sda3
[里面的文件名可以按tab查看]
#指定initrd文件
grub> initrd /boot/initrd.img-xxx-xxx
[文件名可以按tab查看]
#引导
grub> boot
我试着把这两个文件复制到dos分区,也可以出现一个 linux界面,里面有也linux常用的目录结构(我对这东西不了解,就想像成一个最简单的linux吧)
常用的功能:
set:
设置变量
如:
set default=0
set timeout=5
set root=(hd0,3)
等等
default :
默认引导的操作系统,0表示第一个,1表示第二个...
timeout:
定义在指定时间内没有按键盘上的某个键 ,自动引导default指定的操作系统
root:
指定用于启动的分区
insmod和rmmod:
加载和移除模块
如:
insmod jpeg
insmod png
insmod ntfs
rmmod png
等
drivemap
他是兼容grub的map,主要用于只能从第一硬盘(hd0)引导启动的系统,如win2000,xp,2003等 。如:要添加第二硬盘第一分区上的xp系统
menuentry "windows xp"{
set root=(hd1,1)
drivemap -s (hd0) ${root}
//访问变量"${变量名}"
chainloader +1
//此处'+1'是指示GRUB读入分区的第一个扇区的引导记录。即调用另一个启动器,如:chainloader(hd0,1) +1
}
实验(3):修复grub :livecd
1、先把 /boot/grub/grub.cfg删除 sudo rm /boot/grub/grub.cfg
2、从dos启动计算机把mbr清空,fdisk/mbr,我用的是sfdisk也可以的
3、用livecd引导计算机
ctrl+alt+1 //进入到控制台
sudo -i //进入超级用户
fdisk -l //查看分区情况
发现
/dev/sda3 305 2610 18522945 83 Linux
这个是我的硬盘linux所在的分区
挂载这个分区
mkdir /mnt/mylinux
mount /dev/sda3 /mnt/mylinux
安装grub
grub-install --root-directory=/mnt/mylinux /dev/sda
// /dev/sda指定要安装到哪个设备上
// --root-directory是挂载的原先系统的/
生成grub.cfg
我按教程做的,没有成功,我也不知道为什么。但我直接运行
update-grub
就自动建立菜单了,但默认的没有我的msdos分区的引导
menuentry "run msdos ..."{
set root=(hd0,1)
chainloader +1
}
把timeout设置>0这样就能看到启动菜单多一项了,选择进入成功。
分享到:
相关推荐
在双系统下,恢复MBR后,又想使用grub2引导系统,只有重装grub2引导
FIX GURB ON LINUX,当GRUB出现问题时,操作系统LINUX或WIN一般无法启动。该文档描述了如何在LIVECD模式下修复GRUB
修复Ubuntu12.04 Grub 引导 由于重装windows 7,原来的Grub启动菜单不见了,修复 Ubuntu 12.04 Grub 引导具体修 复方法如下
一、grub2新特性 二、grub2安装与启动 三、grub2配置文件详解 四、脚本修改 五、使用grub2常见错误及修复方法
本文是修复Linux 9 GRUB引导感受
windows grub修复 Grub Rescue修复方法
grub 修复grub 修复grub 修复 双系统哦
Linux应用技巧:用GRUB4DOS修复GRUB 首先下载一个DOS下的小工具GRUB4DOS,最新的版本可以到http://software.lupaworld.com/show.php?id=100下载。解压缩后,将其中的grub.exe文件放在一个FAT32分区中。具体修复过程...
双系统重装win7后修复grub引导 双系统重装win7后修复grub引导
解压后双击运行脚本 建立硬盘G4D引导,会将grldr.mbr写到主引导记录,并将引导文件grldr 和SISO 复制到D盘根目录。 请确认你的硬盘是mbr硬盘而不是gpt硬盘。
重装xp后修复grub 在我们安装了双系统后,会发现Linux进不了了,但实际上Linux还是在硬盘上,只是无法进入而已。 通过压缩包里面的软件和步骤,完全解决重装xp系统后恢复Linux的问题
修复grub Xp+Win7
Ubuntu重装启动失败进入修复grub rescue模式.docx
本书介绍了grub2的新特性、grub2安装与启动、grub2配置文件详解、相关脚本修改、以及grub2常见错误和修复方法。
快速修复grub 引导,留着吧!!这个方法很管用的哦! 不再为重装系统而担心引导问题了。
Linux运维-2系统管理-13启动引导与修复-154grub配置文件.avi
介绍 一、grub2新特性 二、grub2安装与启动 三、grub2配置文件详解 四、脚本修改 五、使用grub2常见错误及修复方法
一、grub2新特性 二、grub2安装与启动 三、grub2配置文件详解 四、脚本修改 五、使用grub2常见错误及修复方法
删除boot分区会导致grub和linu内核丢失,开机提示grub >而无法启动。此为修复教程。
当系统引导出问题时可按此方法修复。无需重装系统了。