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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

(win+linux)引导修复

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

环境描述:

硬件环境: vmworkstation 9

linux系统: Red Hat Enterprise Linux Server release 5.6 32位

Linux 内核: vmlinuz-2.6.18-238.el5

Grub 版本: grub (GNU GRUB 0.97)

本文操作和测试,参考:

来自: 在自制Linux盘上安装GRUB

网址: /thinkerabc/article/details/1804796

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

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

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

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

步骤如下:

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

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

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

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; 所以200781 Blocks = 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, 如下图, 如果看到Installation finished. No error reported, 且没有其他报错, 则说明程序执行正常

注意2: 如果有boot分区, 则/dev/sda1是boot分区, 如果没有

boot分区, 则grub-install 后输入根分区设备名

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

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

摘自:chinaunix上的文章,感谢

引自: /uid-9078996-id-2010311.html

能正常工作的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)。

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

1. 在#后输入grub回车

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

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

注意2: root定位的是boot分区(如果有的话),或者是Linux根分区

相关文档
最新文档