Centos6 系统修复grub

GRUB引导的stage1阶段损坏,系统启动会直接进入光盘引导界面,stage1.5阶段损坏,系统启动失败且不会自动进入光盘引导界面
grub-install修复grub后,则将grub相关的文件放置于grub目录下,若某文件丢失,则导致启动失败

一. 修改默认启动程序

  • /sbin/init进程被破坏,则系统启动时不能正常启动,则可将第一启动进程改为/bin/bash
  1. 进入当前界面,按a键
    Centos6 系统修复grub_第1张图片
    图1
  2. 在当前界面的 rhgb quiet 后面编辑init=/bin/bash (rhgb 启动过程图形界面显示 quiet 显示内核启动过程)
    Centos6 系统修复grub_第2张图片
    图2

    Centos6 系统修复grub_第3张图片
    图3
  3. /bin/bash环境下,文件系统只读挂载,mount -o remount,rw / 读写挂载文件系统
  4. ctrl+alt+del 退出系统

二、服务无法启动,导致开机失败(在单用户或/bin/bash环境下修改服务的开机启动项)

1 . 进入当前界面,按a键

Centos6 系统修复grub_第4张图片
图4

2 . 在当前界面的 rhgb quiet后键入 1进入单用户模式,或直接进入/bin/bash下
Centos6 系统修复grub_第5张图片
图5

3 . 执行命令

chkconfig --list   查看服务启动失败的进程是否在指定模式下开启   
chkconfig sshd on  开始服务的进程,默认运行级别为2345,也可自定义运行级别,在此以sshd服务为例   
chkconfig --level 2 sshd on 只启动sshd服务在运行级别2下启动 
reboot 重启系统  

三、修复grub目录和grub.conf文件

GRUB引导的stage1阶段损坏,系统启动会直接进入光盘引导界面,stage1.5阶段损坏,系统启动失败且不会自动进入光盘引导界面
grub-install修复grub后,则将grub相关的文件放置于grub目录下,若某文件丢失,则导致启动失败
grub-install --root=directory /dev/sda 安装grub文件,--root指定grub的跟目录,默认选择在/下的boot目录,/dev/sda指定安装的磁盘设备

1 . 进入光盘修复救援模式

Centos6 系统修复grub_第6张图片
图6

2 . 生成grub文件

Centos6 系统修复grub_第7张图片
图7

3 . 编辑/boot/grub/grub.conf文件

Centos6 系统修复grub_第8张图片
图8

chroot /mnt/sysimage 进入系统真实系统下    
df -h   观察发现/挂载到/dev/sda2分区上  
grub-install /dev/sda   在/挂载磁盘生成grub目录 
vim /boot/grub/grub.conf
    default=0    \\默认进入第一个引导系统
    timeout=5  \\ 5秒后自动进入启动界面
    hiddenmenu  \\隐藏菜单
    title danran  \\ 标签
    root (hd0,0)  boot目录在(hdo,0)分区上
    kernel /vmlinuz-2.6.32-696.e16.x86_64 ro root=/dev/sda2
        或 kernel /vmlinuz-2.6.32-696.e16.x86_64 ro root=UUID=XXXXX   \\指明内核文件,ro为只读挂载,root指定跟分区,rhgb为启动过程图形化显示的参数,quiet为显示内核启动过程的参数
    initrd /initramfs-2.6.32-696.e16.x86_64.img   指明ramfs文件

四、当在grub.conf文件中,将kernel和initrd的顺序写反了,导致启动失败,从而临时在启动时调整/boot/grub/grub.conf文件中kernel和initrd的顺序

/boot/grub/grub.conf文件中的kernel和initrd的顺序是固定的

kernel /vmlinuz-2.6.32-696.e16.x86_64 ro root=/dev/sda2
initrd /initramfs-2.6.32-696.e16.x86_64.img   指明ramfs文件

如下图所示

Centos6 系统修复grub_第9张图片
图9

1 . 在以下界面中将将光标放到最下一行,然后按o打开新的一行,然后在新加入的空行中编辑initrd /initramfs-2.6.32-696.e16.x86—64.img

Centos6 系统修复grub_第10张图片
图10

Centos6 系统修复grub_第11张图片
图11

2 . 将最上面错误的哪行initrd按‘d’键删除,然后按‘b’键启动

Centos6 系统修复grub_第12张图片
图12

Centos6 系统修复grub_第13张图片
图13

五、在系统启动临时使用命令行编辑/boot/grub/grub.conf文件

1 . 在系统仅损坏/boot/grub/grub.conf文件时,系统在启动时会自动进入如下界面

Centos6 系统修复grub_第14张图片
图14

使用交互式命令临时编辑grub.conf文件,指明启动必要的文件路径即可,但仅临时启动,不改变/boot/grub/grub.conf文件
Centos6 系统修复grub_第15张图片
图15

2 . grub未损坏或者不完全损坏时,也可通过菜单进入grub命令编辑界面,如下界面按'e'键

Centos6 系统修复grub_第16张图片
图16

按“c”键进入grub交互命令窗口
Centos6 系统修复grub_第17张图片
图17

即如下界面,编辑内容同上
Centos6 系统修复grub_第18张图片
图18

Centos6 系统修复grub_第19张图片
图19

六、在系统启动界面命令行修复grub目录

1 . 使用grub-install /dev/sda命令生成grub目录

mv /boot/grub /app
grub-install /dev/sda
Centos6 系统修复grub_第20张图片
图20

2 . 使用grub命令交互安装grub(修复stage1和stage1.5阶段)

  • grub交互命令依赖于/boot/grub/目录下的stage文件
dd if=/dev/zero of=/dev/sda bs=1 count=446    破坏引导记录grub的第一阶段stage

修复操作:
    grub
    grub > root (hd0,0) 表示/boot分区的磁盘分区位置在第一块磁盘的第一块分区上  
    grub > setup (hd0) stage1分区不属于任何分区,故只需指明磁盘即可
Centos6 系统修复grub_第21张图片
图21
dd if=/dev/zero of=/dev/sda bs=1 count=4000 skip=512 seek=512    破坏引导记录grub的第1.5阶段stage
mv /boot/grub/*stage1_5* /app
mv /boot/grub/stage2 /app 将grub目录下的stage1.5和stage2阶段的文件移除,然后执行修复操作    

修复操作:
    grub
    grub > root (hd0,0) 表示/boot分区的磁盘分区位置在第一块磁盘的第一块分区上  
    grub > setup (hd0) stage1分区不属于任何分区,故只需指明磁盘即可
Centos6 系统修复grub_第22张图片
图22
  • 故grub交互命令依赖于/boot/grub/目录下的stage文件

七、修改系统启动背景图片(图片格式只能为.xpm.gz格式)

1 . 将本地图片(640X480)上传到Linux系统的/boot/grub目录下
2 . 格式转换为*.xpm.gz
格式转换需要使用convert工具

which convert    查看工具的路径   
rpm -qf `which convert`  查看工具对用的安装包

convert -resize 640X480 -colors 14 win.png win.xpm   -resize指定图片的大小 -colors指定颜色为14位,win.png图片转换为win.xpm
Centos6 系统修复grub_第23张图片
图23

3 . win.xpm图片文件进行压缩打包为win.xpm.gz

gzip win.xpm

4 . 编辑grub.conf文件,将win.xpm.gz图片文件路径写入

splashimage=(hd0,0)/grub/win.xpm.gz  (hd0,0)表示boot的/

Centos6 系统修复grub_第24张图片
图24

5 . 启动界面如下
Centos6 系统修复grub_第25张图片
图25

八、在grub.conf文件中添加密码口令,从而达到进单用户或菜单启动 界面加密的目的

  • 密码放在不同的位置,即产生不同的加密效果
在系统中执行命令   
    grub-md5-crypt   生成md5加密口令
    grub-crypt  生成512加密口令
Centos6 系统修复grub_第26张图片
图26
在grub.cfg文件中编辑
    password --[md5] 口令    增加加密口令或md5加密   
    password --encrypted 口令 添加512加密口令     
Centos6 系统修复grub_第27张图片
图27
  • 加入的两个密码都不影响电脑的正常启动,只是在编辑启动设置选项时起作用;第一个password --md5加密是在菜单选择时输入密码,第二个password --encrypted加密是在编辑系统启动设置时输入密码,如下所示
  • 第一密码的输入,编辑此界面进入单用户或grub命令设置时输入md5加密口令,按‘p’键输入口令,然后进入正常的编辑界面
Centos6 系统修复grub_第28张图片
图28

Centos6 系统修复grub_第29张图片
图29
  • 进入系统时的界面的加密
Centos6 系统修复grub_第30张图片
图30
  • 当如下界面按‘b’键启动时,将会进入第二次加密512口令加密界面
Centos6 系统修复grub_第31张图片
图31
  • 密码输入正确,即可正常进入系统
    Centos6 系统修复grub_第32张图片
    图32
结论

在grub.conf文件上的不同的位置设置密码,发生的效果不同,故需准确明白需要在启动的哪个阶段加密从而才能在适当的位置添加密码,否则可能不产生理想的效果,在title之前添加密码即为启动菜单选择界面加密,在title之后为选择title之后的加密,在内核文件之后添加密码即为启动系统加密

你可能感兴趣的:(Centos6 系统修复grub)