Linux系统引导信息恢复与重建和双系统.docx

上传人:b****4 文档编号:3701681 上传时间:2022-11-24 格式:DOCX 页数:22 大小:1.80MB
下载 相关 举报
Linux系统引导信息恢复与重建和双系统.docx_第1页
第1页 / 共22页
Linux系统引导信息恢复与重建和双系统.docx_第2页
第2页 / 共22页
Linux系统引导信息恢复与重建和双系统.docx_第3页
第3页 / 共22页
Linux系统引导信息恢复与重建和双系统.docx_第4页
第4页 / 共22页
Linux系统引导信息恢复与重建和双系统.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

Linux系统引导信息恢复与重建和双系统.docx

《Linux系统引导信息恢复与重建和双系统.docx》由会员分享,可在线阅读,更多相关《Linux系统引导信息恢复与重建和双系统.docx(22页珍藏版)》请在冰豆网上搜索。

Linux系统引导信息恢复与重建和双系统.docx

Linux系统引导信息恢复与重建和双系统

Linux系统引导信息恢复与重建和双系统(win+linux)引导修复

Linux系统引导信息的恢复与重建

环境描述:

硬件环境:

vmworkstation9

linux系统:

RedHatEnterpriseLinuxServerrelease5.632位

Linux内核:

vmlinuz-2.6.18-238.el5

Grub版本:

grub(GNUGRUB0.97)

本文操作和测试,参考:

来自:

在自制Linux盘上安装GRUB

网址:

     

为了模拟linux引导信息损坏场景,在安装RHEL5时特意没有安装GRUB,如下图:

现在假定linux系统完好,而linux引导信息损坏的情况

启动linux系统,看到黑屏和左上角的光标,系统将中止在此处,如图

通过linux安装光盘重建引导信息和启动菜单

步骤如下:

一.从光盘启动到救援模式.

1.在BIOS中设置光盘启动,图略去

2.以linux安装光盘启动至如下画面,输入linuxrescue进入救援模式

3.这里选择English

注意:

不要选择简体中文,因为在救援模式下不支持中文,会提示如下错误:

4.选择相应的键盘,一般为us美式键盘

5.选择设置网络信息,选择yes,目的是可直接将所需修复的文件直接从现有正常的系统中直接COPY到当前系统.

5.1.选择要设置的网络接口

5.2设置IPv4地址信息.

5.3设置网关和DNS,这里不设置也没关系,除非正常的系统不在本网段.

5.4不填写网关和DNS会报错,不过没关系.

6.救援模式下试图搜索linux根系统,且以读写模式挂载,点continue

7.如果看到下面这个画面,说明linux根系统已经找到,选择OK

8.由于找到的linux根系统在/mnt/sysimage之下,为了之后操作方便,可以通过chroot命令改变根系统的外显目录

二.安装grub

1.首先查看当前硬盘的分区情况:

fdisk-l

注意boot下的*号,说明/dev/sda1是启动分区,

boot分区我划分200M,所以通过Blocks这列的可以看出/dev/sda1就是boot分区,

1个Block=1024Byte=1k;所以200781Blocks=200M左右

2.查看/boot分区里的内容:

boot分区里含有vmlinuz-2.6.18-238.el5内核文件和

initrd-2.6.18-238.el5.img内存磁盘,这两个文件启动时会用到

3.查看/boot/grub/目录下的内容:

ls-a

/boot/grub/里只有一张图片,阶段1和阶段2文件都不在在

4.安装grub到启动分区即/dev/sda1,通过grub-install

注意:

这里输入grub-install/dev/sda1,如下图,如果看到Installationfinished.Noerrorreported,且没有其他报错,则说明程序执行正常

注意2:

如果有boot分区,则/dev/sda1是boot分区,如果没有boot分区,则grub-install后输入根分区设备名

5.grub-install正确执行后,会看到/boot/grub/下多了些文件:

现在来简单的说明一下这些文件都是做什么用的!

!

!

摘自:

chinaunix上的文章,感谢hjlin

引自:

 

能正常工作的grub应该包括一下文件:

stage1、stage2、*stage1_5、menu.lst。

 

其中stage1要被安装(也就是写入)某个硬盘的主引导记录,或者某个活动分区(这个分区要用fdisk标记成可启动的)的启动扇区。

stage1的主要的也是唯一的作用就是找到你存放在硬盘上某个地方的stage2文件,来完成后续的工作。

 

  stage2文件可以存在某个特定的文件系统中,比如你分了一个linux分区,在上面创建一个ext2文件系统,然后把这个文件拷贝到这个分区的某个目录下。

也可以把stage2直接存放在硬盘的某个位置,也就是未分区的某个地方。

不过,好像没有多少人会这么做吧。

 

  因为stage1的容量有限(主引导记录MBR和启动扇区的大小只能够是512字节),所以它对文件系统是无法识别的,那如果你把stage2存放在ext2或者fat格式的文件系统上,它如何来找到这个文件呢?

这就要用到上面提到的那些stage1_5的文件了,它们负责解释文件系统。

你的stage2放在什么格式的文件系统上,就要调用对应的那个stage1_5文件。

比如,你把stage2存放在ext2格式的文件系统上,就需要e2fs_stage1_5;stage2存放在fat格式的文件系统上,就需要fat_stage1_5了,stage1.5可以安装在mbr之后的位置。

 

简述开机过程:

接下来是简单开机过程 

①按下电源后,计算机自检(POST),如果硬件设备(CPU、内存、硬盘、光驱、各种卡)都没有问题,BIOS会检查各个硬盘的MBR,看有没有可以执行的代码,如果你把grub安装到第一个硬盘的MBR上,那BIOS就会找到它,然后把控制权交个这段代码(其实就是512字节大小的stage1)。

 

三.通过grubshell将stage1写入MBR或启动分区的首扇区

1.在#后输入grub回车

2.进入grubshell里,输入root(hd0,0)

注意:

root与(hd0,0)之间有一空格,不输入空格就会报错如上图

注意2:

root定位的是boot分区(如果有的话),或者是Linux根分区,而不是MBR

3.定位MBR,写入引导信息,如下图

注意:

如下看到了yes,succeeded,红线所标,说明操作正确

注意2:

setup(hd0)做了两件事,第一件是把grub的阶段1即stage1写到硬盘的第一个扇区(MBR),形如:

install/grub/stage1(hd0)(hd0)1+15

第二件是:

把grub的阶段2写入到boot分区启动扇区,形如:

(hd0,0)/grub/stage2

四.编写grub.conf文件,实现启动菜单

1.用vim编写grub.conf注意:

vim有颜色支持比vi好用

2.grub.conf编写错误及导致的失败

2.1内核文件,initrd文件没写版本号

注意:

/vmlinuz要与boot分区下的内核文件名一致

/initrd要与boot分区下的initrd文件名一致

导致启动出现如下错误:

2.2内核文件,initrd文件增加版本号,仍无法启动

启动时出现内核异常,kernelpanic

2.3修改:

指定root=LABEL=/后正常

注意:

root=LABEL=/也可以改写为root=/dev/sda2

sda2不是boot分区,而是根分区,root要对应根分区

编辑完grub.conf后保存退出到shell,两次输入exit后,linux系统重新启动,记得要取走系统光盘啊!

!

!

系统启动正常!

!

!

!

OK!

!

!

2.4grub.conf两个参数的说明rhgb和quiet

引自:

 

rhgb表示redhatgraphicsboot,就是会看到图片来代替启动过程中显示的文本信息,这些信息在启动后用dmesg也可以看到

quiet表示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示

加rhgb参数启动的画面:

五.创建grub.conf的链接文件

六.虽然成功恢复了grub和引导信息,但仍在在的问题

重启动后,grub.conf被系统修改,多了crashkernel条目

暂不知为何而加此条目?

crashkernel=128M@16M

128M内存(从16M开始)不被正常的系统使用,为捕获内核保留

 

七.简要说明一下,linux系统中使用了LVM的情况

如下图:

 由安装程序自动分区,则会使用LVM

删除磁盘上的所有分区,并创建默认分区

注意:

 虽然系统使用了LVM,但/boot分区仍然是标准分区,所以,仍可按照上面所说的方法恢复grub和引导信息

双系统(win2008+RHEL5.6)引导信息的恢复

环境描述:

硬件环境:

vmworkstation9

linux系统:

RedHatEnterpriseLinuxServerrelease5.632位

Linux内核:

vmlinuz-2.6.18-238.el5

Grub版本:

grub(GNUGRUB0.97)

windows系统:

win200832位

一.windows系统与linux系统在安装时的顺序

1.首先安装windows2008系统,然后再安装RHEL5.6

原因:

 1.windows2008的引导信息不能识别linux的引导信息,而linux的grub能识别windows的引导信息,换句话说,如果先安装linux,再安装windows,windows系统的引导信息将覆盖linux的引导信息,导致linux系统无法引导,最终无法启动

2.如果先安装linux,通常的分区方案为boot占一个主分区,根系统(/)占一个分区,swap占一个分区.那么这块硬盘就只能再分一个分区了,而在windows下这最后的主分区将被当成逻辑分区,而windows是不能安装在逻辑分区下的.

3.先安装linux,即使再加一块硬盘,把windows安装到另一块硬盘主分区上,安装程序也提示无法安装.

如下图:

上面这张图说明windows无法安装到最后一个主分区

上面这张图说明windows无法安装到逻辑分区

磁盘0已经安装了RHEL5,磁盘1主分区依然不能安装windows

二.为模拟损坏的linux系统,在安装RHEL时依然不安装GRUB

1.安装linux(RHEL5.6)时不安装grub,安装完成后重启,依然启动windows

注意:

 此次安装linux时,没有划分boot分区

三.安装linux的grub

1.用RHEL5.6的光盘启动并进入救援模式,过程同上文,此处略去

2.光盘启动完成后执行chroot/mnt/sysimage

3./boot/grub下依然只有splash.xpm.gz一个文件

3.用fdisk-l查看linux系统分区

4.用grub-install安装grub

注:

grub-install/dev/sda6(sda6是第一个linux分区,根分区)

5.用grubshell写主引导记录

注:

 看到yes,succeeded,无其他错误,说明执行正常

注2:

输入root(hd0,用TAB键补全,可查看各分区的类型,如上图

注3:

 退出quit

6.编写grub.conf文件,其他中包括win2008的启动菜单

注:

 要用vim编写,而不要用vi编写,因为在vim中关键字有颜色,如果字母打错,颜色会变为白色,容易找出错误

注意:

红线所标的/boot,由于这次安装时没有安装/boot分区,boot只是根分区下的一个目录,所以kernel和initrd后面的路径要写全.

注意2:

如果是系统安装的grub,grub.conf里会写

root=LABEL=/,指示linux根分区所在位置

root=/dev/sda6这种写法也可以,因为/dev/sda6也是根分区

到此linux系统和双系统引导信息损坏导致无法启动故障,均可恢复

即使linux系统没有boot分区,依然可以恢复

重复一下重点内容:

1.grubshell中root(hd0,X)如果有boot分区,则是指boot分区,如果没有boot分区,则指得是linux根分区

2.在grubshell中setup(hd0),做了两件事:

(1).stage1:

将linux系统的指针,写入MBR,当系统启动时,读取MBR里的stage1跳转到linux的boot分区

(2).stage2:

将后续的引导信息写入linux的boot分区或者根分区

3.grub.conf里root=LABEL=/也可改写为root=/dev/sda2

因为:

sda2是根分区,不是boot分区

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1