grub修复的手段,一种是依赖备份,如果没备份,如何做修复
清空446字节,
grub -install 不仅修复1阶段,还修复1.5,2阶段的
完成修复
如果重启,那么grub-install 只能在救援模式下执行
/sbin/grub并不是在救援模式加载的光盘下有,它在原来的硬盘里才有,所以需要切跟,最后reboot
sync确保写磁盘,因为可能会出现问题
出现这个菜单就是进入2阶段,因为这个菜单是由第二阶段生成的
禁用selinux还有第二种方法,临时禁用 selinux=0
避免打标签的问题就禁用selinux
修复mbr还有另外的方法,就是grub命令,是个交互式命令,可以跟上 setup 和root子命令来进行修复
这边的root指的是boot分区的意思(它认为内核认为所在的分区才是boot分区)
0.0表示第一的分区
再次破坏
修复,把1.5阶段放到了后面的27个扇区
这条命令依赖于/boot./grub里的文件
把/boot/grub里的文件移走,只留下grub.conf和splash.xpm.gz(登录界面),测试移走这些文件是否会影响启动(不会),应该属于grub的相关数据
这些文件的作用就是用grub命令来做修复用的,相当于备份数据,所以暂时把这些杀出也不受影响
恢复到之前,/boot/grub就剩两个文件,再进行一次破坏,未修复过,可以正常启动
恢复之后,因为之前未修复只是移除文件,那么现在进行破坏
破坏完进行修复
修复失败,因为原本移走的文件是grub用来修复的文件,如果想要修复,那就需要把文件移回来,如下
总结:这些文件就是grub用来修复的文件
但是不恢复这些文件也没有关系,可以用到grup-install,生成这些文件,所以grub-install作为修复来讲,更方便
1.5阶段处于27个扇区等于27*512个字节=13824个字节
如果破坏了1.5阶段,机器是否起不来
表现的错误情况(不会进入光盘,说明认为硬盘是有启动能力的,加载之后,尝试找1.5阶段,就死了)
进入救援模式,(硬盘起不来,拿光盘引导)
先切跟 chroot
不切跟如果用grub交互式命令也行,(前提是你的boot分区一定是第一个硬盘第一个分区,如果生产中,不在这,就找boot分区在哪里),更简单的就是grub-install /dev/sda(1,1。5.2三个阶段都能修复)
起不来
说明一旦用grub命令修复过以后,那么/boot/grub下的文件不仅仅是那两个文件就能启动的了,还要依赖于其他的文件
这些文件如果没有修复的话,删除了,就剩2个grub.conf 和splash.xpm.gz,不影响启动
但修复过以后,除了这两个文件,其他文件也是启动相关的必要文件
(所以这些文件也不能想删除就删除,也需要保留,前提是修复过 )
修复,进入救援模式先切跟,再grub-install,sync同步硬盘
前面修复了,grub 1阶段,1.5阶段。2阶段,2阶段里这个grub.conf文件非常重要,是grub配置文件
title对应的是一个语句块,下面的title是另一个启动项,有几个title就等于启动 的时候有几个菜单
root(hd0,0)就代表boot分区在哪里第一个硬盘第一个分区/dev/sda1
vmlinuz内核文件,是在/下放的,/代表boot(上一行描述是在sda1分区上)
也可以像下面一样写,写跟分区在哪里
/vmlinuz-2.6.32-754.el6.x86_64 代表/boot分区
root(hd0,0)去掉不写
在下面声明就可以
ro是只读的意思,当内核找到,加载到内存中以后,会尝试找操作系统的跟,而操作系统的根会以ro只读的方式挂载,当然挂载之后会第二次挂载,变为rw
也可以改成如下这样
根的文件系统加载需要initramfs,来识别根的文件系统,然后加载根,根就可以执行第一个InIT进程
quiet代表是否显示内核的加载启动过程信息,rhgb代表启动的时候是否是图形界面(默认图形界面,会把错误信息挡住)
如果你想在生产环境中观察启动过程就不要加rhgb
如上图,顺序修改会不会导致错误,会
e可以临时编辑
因为grub有强大的编辑修改功能,才给了我们这些能力,只要grub加载了2阶段,就可以进行一些编辑修改
default=0,(0代表用第一个title启动)如果希望用下面的就用1
timeout=5如果默认不选那就等待5秒进入默认的内核启动
splashimage=是个图片,启动背景 640*480
hiddenmenu(不过不敲命令,这个菜单是隐藏的)
替换背景,需要安装ImageMagick
用convert工具转换 640x480 颜色14深度
移动至/boot/grub目录
修改grub.conf文件
因为直接破系统口令很简单,进入到单用户即可,那么现在希望用户不这么简单地去破解,加大难度,可以用在grub.conf添加口令的方法
要先输入密码
但是口令明文存放是很不好的,通常需要加密
用这个 口令
但是有MD5已经被破解了,所以可以用另外的,sha512加密算法
encrpted就代表是用的sha512算法
(实在不行,把硬盘拆下来装到别的电脑上,作为分区直接读数据)
grub-install
grub-crypt
grub-md5-crypt
grub
convert
chkcinfig
ntsysv
test
function 函数定义的时候一般不写function
return
grub 2阶段就是grub里的其他文件,可以把这些都移走,也能启动,grub.conf就几行就可以写下来
没有2阶段配置文件,出现错误,如下
补充两行就可以了