Centos7新特性:
MBR 分区的前 446 个字节存放的是系统引导程序 grub,中间 64 字节是分区表,最后 2 个字 节表示结束。
系统开机都经历了什么?
1、BIOS 自检,检查硬件;
2、激活 MBR,MBR 上不存在文件系统,可以视作硬件一部分,因此可以被直接读取
3、grub 加载到内存,生成一个微系统,微系统内置了精简版的文件系统
4、通过这个微系统,他会去引导分区,比如默认一般是 sda1 上去找内核文件如 vmlinuz,然 后再调用 grub 的配置文件。
grub 的主要把他的配置文件放在了 3 个地方
/boot/grub2/grub.cfg (/etc/grub2.cfg 是/boot/grub2/grub.cfg 文件的符号链接) /etc/grub.d/
/etc/default/grub
1. 修改系统启动的等待时间
默认为5秒,修改/etc/default/grub文件
修改完成之后重新编译生成grub.cfg文件
2. 加密grub(明文)
修改/etc/grub.d/00_herder文件末尾
Cat <<EOF
Set superusres=’用户名’
Password 用户名 密码
EOF
重新编译生成grub.cfg
重启之后输入e,输入用户和密码
加密grub(密文)
命令:grub2-mkpasswd-pbkdf2
进入/etc/grub.d/00_header
cat <<EOF
set superusers=”用户名”
passwd_pbkdf2 用户名 加密密文
EOF (EOF为定义名称,可随意起名)
重新编译生成grub.cfg文件
grub2-mkconfig -o /boot/grub2/grub.cfg
(在终端模式下,需安装gpm工具来复制粘贴)
3. 修改root密码
(1.)重启系统时按e进入单用户模式
在linux16这行末尾添加rd.break console=tty0,ctrl+x重启
Mount –o remount,rw /sysroot
Chroot /sysroot
Passwd 设置密码
touch /.autorelabel
exit
exit
(2.)方法二
在linux16这行删除rhgb quiet,然后添加init=/bin/sh
Ctrl+x
Passwd 密码
touch /.autorelabel
exec /sbin/init
4. grub故障
1.(mbr故障)
模拟mbr故障:dd if=/dev/zero of=/dev/sda bs=1 count=446
完成之后系统提示,因为系统默认从本地启动,然后是光盘,最后是pxe网络启动,这个提示就是网络启动
挂载光盘,选择光盘启动
选择Troubleshooting(排错)模式,选择rescue a contos 7.0,选择1(continue)
重新安装grub2分区,
grub2-install /dev/sda
重启之后就ok了
2.(boot分区故障)
模拟故障(删除boot分区内的所有文件)
重启进入GRUB救援模式: grub rescue>
挂载光盘,从光盘启动,查看boot分区,没有任何文件
切换根目录Chroot /mnt/sysimage,挂载光盘mount /dev/cdrom /media
RPM重新安装kernel,需加(—force),强制安装
安装完内核之后,重新安装grub2,
Grub2-install /dev/sda
Grub2-mkconfig –o /boot/grub2/grub.cfg
重启系统就OK!!
原文地址:http://blog.51cto.com/13544810/2055585