GRUB引导的stage1阶段损坏,系统启动会直接进入光盘引导界面,stage1.5阶段损坏,系统启动失败且不会自动进入光盘引导界面
grub-install修复grub后,则将grub相关的文件放置于grub目录下,若某文件丢失,则导致启动失败
一. 修改默认启动程序
- /sbin/init进程被破坏,则系统启动时不能正常启动,则可将第一启动进程改为/bin/bash
- 进入当前界面,按a键
- 在当前界面的 rhgb quiet 后面编辑init=/bin/bash (rhgb 启动过程图形界面显示 quiet 显示内核启动过程)
- /bin/bash环境下,文件系统只读挂载,mount -o remount,rw / 读写挂载文件系统
- ctrl+alt+del 退出系统
二、服务无法启动,导致开机失败(在单用户或/bin/bash环境下修改服务的开机启动项)
1 . 进入当前界面,按a键
2 . 在当前界面的 rhgb quiet后键入 1进入单用户模式,或直接进入/bin/bash下
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 . 进入光盘修复救援模式
2 . 生成grub文件
3 . 编辑/boot/grub/grub.conf文件
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文件
如下图所示
1 . 在以下界面中将将光标放到最下一行,然后按o打开新的一行,然后在新加入的空行中编辑initrd /initramfs-2.6.32-696.e16.x86—64.img
2 . 将最上面错误的哪行initrd按‘d’键删除,然后按‘b’键启动
五、在系统启动临时使用命令行编辑/boot/grub/grub.conf文件
1 . 在系统仅损坏/boot/grub/grub.conf文件时,系统在启动时会自动进入如下界面
使用交互式命令临时编辑grub.conf文件,指明启动必要的文件路径即可,但仅临时启动,不改变/boot/grub/grub.conf文件
2 . grub未损坏或者不完全损坏时,也可通过菜单进入grub命令编辑界面,如下界面按'e'键
按“c”键进入grub交互命令窗口
即如下界面,编辑内容同上
六、在系统启动界面命令行修复grub目录
1 . 使用grub-install /dev/sda命令生成grub目录
mv /boot/grub /app
grub-install /dev/sda
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分区不属于任何分区,故只需指明磁盘即可
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分区不属于任何分区,故只需指明磁盘即可
- 故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
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的/
5 . 启动界面如下
八、在grub.conf文件中添加密码口令,从而达到进单用户或菜单启动 界面加密的目的
- 密码放在不同的位置,即产生不同的加密效果
在系统中执行命令
grub-md5-crypt 生成md5加密口令
grub-crypt 生成512加密口令
在grub.cfg文件中编辑
password --[md5] 口令 增加加密口令或md5加密
password --encrypted 口令 添加512加密口令
- 加入的两个密码都不影响电脑的正常启动,只是在编辑启动设置选项时起作用;第一个password --md5加密是在菜单选择时输入密码,第二个password --encrypted加密是在编辑系统启动设置时输入密码,如下所示
- 第一密码的输入,编辑此界面进入单用户或grub命令设置时输入md5加密口令,按‘p’键输入口令,然后进入正常的编辑界面
- 进入系统时的界面的加密
- 当如下界面按‘b’键启动时,将会进入第二次加密512口令加密界面
- 密码输入正确,即可正常进入系统
结论
在grub.conf文件上的不同的位置设置密码,发生的效果不同,故需准确明白需要在启动的哪个阶段加密从而才能在适当的位置添加密码,否则可能不产生理想的效果,在title之前添加密码即为启动菜单选择界面加密,在title之后为选择title之后的加密,在内核文件之后添加密码即为启动系统加密