Grub及MBR修复

1、grub.conf配置文件丢失

首先说明:在grub命令提示符中所有类型的磁盘(不论是SATA还是SAS的)都被识别成以hd开头的设备(如 hd0),没有sda等等。

当/boot/grub/grub.conf配置文件丢失后,系统重新启动时就找不到linux启动的菜单了,就会直接进入grub提示符界面,界面如下:

这时可使用帮助命令help查看都有哪些命令可以使用。

完整的恢复步骤如下:

如果知道/boot目录在哪个磁盘分区可以省略第一步,直接使用root命令指定磁盘分区,如果不知道的话,可以使用find命令进行查找。

输入find (hd0,0)代表从第一块磁盘的第一个分区,在输入时直接输入find (hd0,0)/vmlinuz,后面使用tab键进行补全,如果能补全,就代表在这个分区能找到内核文件。

再使用root指定磁盘分区;

然后指定内核并传递参数给内核文件,ro代表以只读方式,root=/dev/sda2中的/dev/sda2是根文件系统所在的分区;(因此装系统时要注意一下根文件系统所在分区的名称,如果是根文件系统在逻辑卷上,就要写逻辑卷分区的名称)

最后指定initrd文件,initrd是一个用内存来模拟磁盘的文件,是一个小型的根文件系统,其包含了  当前系统  的真正根文件系统的 驱动,有了这些驱动linux内核才能去挂载真正的根文件系统。

kernel后面的内核文件名 和 initrd后面指定的文件都可以使用tab键进行自动补全

前面几步设置好后使用boot命令启动。

启动后,进入/boot/grub目录重新编写grub.conf文件,文件内容大致就是上面操作的几步,内容如下:

其中default=0代表title如果有多个的话,默认选择第一个title的启动;timeout=3代表启动时在grub选择界面停留3秒,title后面的可以自己随便定义。编辑完保存好,下次启动就不会出现问题了。

在上面的步骤中,若是kernel的参数 root= 这里指定的根文件系统所在分区的名称不正确的话,是会报错的,报错界面如下所示

2、MBR的前446字节丢失(如果是中间64字节丢失,此方法不适用,中间64字节丢失是分区表被破坏)

MBR总共有512字节,前446字节存放BootLoader程序,接下来的64字节存放分区表信息,最后2字节存放特殊标志。这里主要说明bootloader遭到破坏后如何修复。

当bootloader遭到破坏后重新启动后的界面如下:

这时就要启动使用光盘紧急救援模式。

挂载好光盘后,设置启动项从光驱启动,进入安装界面

选择Rescue installed system

回车后根据提示选择语言Lanaguage,键盘类型keyboard type,一般默认就行。然后到以下界面。

这一步是否启用网络,如果需要启用,可以选Yes,进入界面进行IP等的配置,这里不启用。

这里不用启用,选NO。进入下面的界面

默认Continue即可,接下来几步默认即可,一直到下面这一步。

这一步是在选择OK后,出现最下面的命令提示符,接下来就要进行操作了

第一步使用chroot /mnt/sysimage 切换到/mnt/sysimage目录所在的根文件系统,根文件系统会被挂载到此目录下,然后使用grub进入命令提示符,同样是使用root (hd0,0)指定磁盘分区,然后使用setup (hd0)直接开始进行恢复MBR,MBR不在任何分区,所有setup后面直接跟(hd0),直接指定磁盘即可。

恢复成功后,使用quit退出grub命令提示符界面,再使用exit退出/mnt/sysimage目录所在的根文件系统,回到从光盘中加载的根文件系统中,重启系统后即可正常进入系统

3、grub目录丢失


当/boot/grub目录丢失后,系统也不能进入系统,重启系统后报错如下:

这时仍然是进入紧急救援模式,具体步骤见上面的MBR丢失。

进入到救援模式后,使用chroot切换到/mnt/sysimage所在根文件系统中,使用grub-install命令重新安装grub目录,grub-install --root-directory=/ /dev/sda2 这个命令中--root-directory= 应该格式boot目录的根目录——也就是根/    后面再指定根文件系统所在的磁盘设备,这里就算根文件系统所在的分区是逻辑卷,也不能使用逻辑卷名称;而是要像上面一样使用原始的设备名称/dev/sda2或/dev/sda1或/dev/sda,总之执行完grub-install命令后要能出现下面的(fd0) /dev/fd0和 (hd0) /dev/sda这样的行才算安装成功。

安装好后就可以看到/boot目录下已经有grub目录了。

还有最后一步,要到grub目录中手动创建grub.conf文件,文件内容如下:

其中kernel那行如果根文件系统所在的分区是逻辑卷的话,就应该使用逻辑卷的名称,而不能像上面grub-install命令中那样使用/dev/sda2。如果是逻辑卷时应该像下面这样

参数还使用了quiet selinux=0代表使用静默模式、关闭selinux。

如果不关闭selinux时,启动时会报错如下

时间: 2024-11-11 04:56:41

Grub及MBR修复的相关文章

centos 启动流程及grub、initramfs修复

启动流程.grub配置及修复.initramfs修复 目录: centos启动流程 grup配置及修复 2.1 grub配置 2.2 grub命令启动 2.3 grub修复 initramfs修复 boot破坏修复 1.centos启动流程 在centos5和6中启动流程如下: (1).POST加电自检 硬件加电自检程序(安装在CMOS中的BIOS程序)BIOS负责检测硬件设备是否正常运行,如cpu.内存.硬盘.外接设备等是否正常,在生产中服务器内存较大,由多条内存组成较大内存的服务器,因此对内

【转】win7与ubuntu双系统,删除ubuntu后,启动错误error:no such partition grub rescue的修复--不错

原文网址:http://blog.sina.com.cn/s/blog_541900d50101eu9r.html win7于ubuntu双系统,进入windows后直接格式化硬盘分区将ubuntu删除,重新启动后出现如下提示.error:no such partitiongrub rescue 这表示引导程序出错 解决办法: 用U盘做一个“老毛桃winpe”的启动盘,具体做法见“老毛桃”官方网站. 进入winpe,开始菜单的工具里有一个“引导修复”的软件,窗口背景色为绿色,选择好系统所在的盘符

将grub写入mbr

现在习惯了开机启动的方法,所以我们把grub重新安装到硬盘的MBR上面. 这个步骤也有两种方法,一是安装grub4dos,然后启动,选中搜索硬盘上的linux引导文件,进入Linux之后再安装grub到MBR上面; 还有就是从光盘启动去之后,再安装grub. 由于不想安装grub4dos,这里我们选择后者,从光盘或ISO启动到linux系统之后. 打开终端(Ctrl+ALT+T),取得管理员权限: 1 sudo su 查找linux的根目录分区: 1 fdisk -l 然后挂载你的linux主分

GRUB、MBR名词解释

GRUB:是一个来自GUN项目的多操作系统启动程序,是多启动规范的实现,他允许用户在计算机内同时拥有多个操作系统,并在计算机启动时选择希望的操作系统.GRUB可用于选择系统分区上的不同内核,也可用于向这些内核传递启动参数. 引导过程:由硬盘启动时BIOS通常是转向第一个磁盘的第一个扇区即主引导记录(MBR).装载GRUB和操作系统的过程,包括以下几个操作步骤: 装载记录:基本引导装载程序所做的唯一的事情就是装载第二引导装载程序. 装载GRUB:这第二引导装载程序实际上是引出更高级的功能,以允许用

GRUB原理及修复

此处以C5 C6为例,GRUB的主要作用是提供一个菜单,允许用户选择要启动系统或不同的内核版本,把用户选定的内核装载到内存的特定空间中,解压展开,并把系统控制权移交给内核,一台主机上可能装有不止一个操作系统,用户可以根据GRUB提供的启动菜单选定操作系统,随即加载指定内核 GRUB分为三个阶段, stage 1  这段代码的其中一段代码是MBR中的 bootloader(446字节),这一步在GRUB 中是不可或缺的,主要负责当BIOS 交接给GRUB 时,载入存在于各分区中的开机文件,也就是所

grub丢失的修复

使用安装光盘进入rescure模式,经过配置后进入一个bashbash# grubgrub> root (hd0,6)grub> setup (hd0)重启即可

CentOS7修复MBR和GRUB

CentOs7修复MBR和GRUB 一.修复MBR: MBR(Master Boot Record主引导记录): 硬盘的0柱面.0磁头.1扇区称为主引导扇区.其中446Byte是bootloader,64Byte为Partition table,剩下的2Byte为magic number. 备份MBR: #dd if=/dev/sda of=/root/mbr.bak count=1 bs=512 破坏bootloader: #dd if=/dev/zero of=/dev/sda count=

CentOS 7修复MBR和GRUB

(转载) 一.修复MBR: MBR(Master Boot Record主引导记录): 硬盘的0柱面.0磁头.1扇区称为主引导扇区.其中446Byte是bootloader,64Byte为Partition table,剩下的2Byte为magic number. 备份MBR: #dd if=/dev/sda of=/root/mbr.bak count=1 bs=512 破坏bootloader: #dd if=/dev/zero of=/dev/sda count=1 bs=200 这里边b

CentOS 7修复MBR和GRUB更改root密码

修复MBR:MBR(Master Boot Record主引导记录):硬盘的0柱面.0磁头.1扇区称为主引导扇区.其中446Byte是bootloader(引导装载程序),64Byte为Partition table(分区表),剩下的2Byte为magic number(结束标志).备份MBR:#dd if=/dev/sda of=/root/mbr.bak bs=512 count=1破坏bootloader(引导装载程序):#dd if=/dev/zero of=/dev/sda bs=51