GRUB引导的stage1阶段损坏,系统启动会直接进入光盘引导界面,stage1.5阶段损坏,系统启动失败且不会自动进入光盘引导界面 grub-install修复grub后,则将grub相关的文件放置于grub目录下,若某文件丢失,则导致启动失败
一. 修改默认启动程序
/sbin/init进程被破坏,则系统启动时不能正常启动,则可将第一启动进程改为/bin/bash
在当前界面的 rhgb quiet 后面编辑init=/bin/bash (rhgb 启动过程图形界面显示 quiet 显示内核启动过程)
/bin/bash环境下,文件系统只读挂载,mount -o remount,rw / 读写挂载文件系统
ctrl+alt+del 退出系统
二、服务无法启动,导致开机失败(在单用户或/bin/bash环境下修改服务的开机启动项)
进入当前界面,按a键
执行命令
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指定安装的磁盘设备
生成grub文件
编辑/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/sda2initrd /initramfs-2.6.32-696.e16.x86_64.img 指明ramfs文件如下图所示
将最上面错误的哪行initrd按‘d’键删除,然后按‘b’键启动
五、在系统启动临时使用命令行编辑/boot/grub/grub.conf文件
在系统仅损坏/boot/grub/grub.conf文件时,系统在启动时会自动进入如下界面
六、在系统启动界面命令行修复grub目录
使用grub-install /dev/sda命令生成grub目录
mv /boot/grub /appgrub-install /dev/sda
使用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阶段stagemv /boot/grub/stage1_5 /appmv /boot/grub/stage2 /app 将grub目录下的stage1.5和stage2阶段的文件移除,然后执行修复操作 修复操作: grub grub > root (hd0,0) 表示/boot分区的磁盘分区位置在第一块磁盘的第一块分区上 grub > setup (hd0) stage1分区不属于任何分区,故只需指明磁盘即可
故grub交互命令依赖于/boot/grub/目录下的stage文件
七、修改系统启动背景图片(图片格式只能为.xpm.gz格式)
将本地图片(640X480)上传到Linux系统的/boot/grub目录下
格式转换为*.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
win.xpm图片文件进行压缩打包为win.xpm.gz
gzip win.xpm
编辑grub.conf文件,将win.xpm.gz图片文件路径写入
splashimage=(hd0,0)/grub/win.xpm.gz (hd0,0)表示boot的/
启动界面如下
八、在grub.conf文件中添加密码口令,从而达到进单用户或菜单启动 界面加密的目的
密码放在不同的位置,即产生不同的加密效果
在系统中执行命令 grub-md5-crypt 生成md5加密口令 grub-crypt 生成512加密口令
在grub.cfg文件中编辑 password --[md5] 口令 增加加密口令或md5加密 password --encrypted 口令 添加512加密口令
加入的两个密码都不影响电脑的正常启动,只是在编辑启动设置选项时起作用;第一个password --md5加密是在菜单选择时输入密码,第二个password --encrypted加密是在编辑系统启动设置时输入密码,如下所示
进入系统时的界面的加密
当如下界面按‘b’键启动时,将会进入第二次加密512口令加密界面
密码输入正确,即可正常进入系统
结论
在grub.conf文件上的不同的位置设置密码,发生的效果不同,故需准确明白需要在启动的哪个阶段加密从而才能在适当的位置添加密码,否则可能不产生理想的效果,在title之前添加密码即为启动菜单选择界面加密,在title之后为选择title之后的加密,在内核文件之后添加密码即为启动系统加密