11、系统启动流程
从上至下为:
BIOS
MBR:Boot Code
执行引导程序-GRUB(操作系统)
加载内核
执行init
run level
1.BIOS(Basic Input Output System)
基本输入输出系统,一般保存在主板上的BIOS的芯片中,负责检查硬件/查找可启动设备
2.MBR
BIOS找到可启动设备后,执行其引导代码,引导代码为MBR前446字节(一共512字节),一般加载复杂的引导程序。
3.GRUB(主流引导程序)
几乎会引导现在所有的OS,Grub文件保存在/boot/grub目录下。
4.KERNEL
MBR引导代码负责找到并加载Linux内核,内核保存在/boot/vmlinux-2.6.32-279.e16.i686,额外加载内核模块打包文件/boot/initramfs-2.6.32-279.e16.i686.img
命令dmesg可查看本次启动时的内核的输出信息。也保存在/var/log/下。
5.INIT
Linux系统中运行的第一个进程。调用/etc/rc.d/rc.sysinit对 系统初始化,挂载文件系统并根据运行级别启动相应的服务。
-0 关机 -1单用户 -2不带网络的多用户 -3多用户 -4未用 -5图形化模式 -6重启动。
可以通过/etc/inittab配置文件修改默认级别,每级启动服务在/etc/rc.d/rc[0123456].d中。
runlevel可以显示当前以及上一个运行级别
命令init可以用来改变当前运行级别。
破密码
开机菜单栏第一行按e,在linux16行尾,加入rd.break console=tty0
ctrl+x继续启动
mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit
exit
实验-防止破密码
在/etc/grub.d/00_header文件结尾加入
cat << EOF
set superusers="qin"
password qin bing
EOF
grub2-mkconfig -o /boot/grub2/grub.cfg
重启后需要输入账号grub2qin和密码grub2bing方可进入编辑模式
实验-fstab错误的修复
vim /etc/fstab
/dev/sda6 /mnt xfs defaults 0 0
重启后系统无法启动,等待一段时间后输入root的密码可进入单用户模式,修改fstab后可正常启动
如果不能写入,需要重新以读写模式挂载根
mount -o remount,rw /
实验-应急模式
按e,在linux16行尾加入emergency(应急模式)
和单用户模式相似,只不过不加载/boot分区,需要root密码
光盘修复
rm -rf /boot/*
dd if=/dev/zero of=/dev/sda bs=446 count=1
systemctl reboot
Troubleshooting(排错模式)
选择Resuce a Red hat Enterprise Linux
continue
chroot /mnt/sysimage
mount /dev/cdrom /mnt/cdrom
cd /mnt/Packages
rpm -ivh /mnt/cdrom/Packages/kernel-3.1....... 安装/boot分区
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg #和rhel6的后缀不同
exit
exit #重启2次后完成修复进入系统