一.系统启动
1.系统启动流程
通电 ------->bios(主板上的只读存储)作用,硬件检测,激活硬件)
grub系统引导(grub引导分为两个阶段)
1)阶段1 mbr(主引导记录)主引导记录在硬盘的磁道上,一扇区,446个字节
2)阶段2 grub文件引导阶段
由文件/boot/grub2/grub.cfg控制流程,指定/boot分区位置——>加载内核——>启动系统初始化进程——>grub2-mkconfig
2.内核引导阶段
检测硬件设备——>设备驱动初始化——>将/只读挂载——> 载入初始化进程systemd——>内核文件丢失请重新安装内核
3.systemd初始化
开启selinux和systemd-tools——>加载内核参数——>加载系统时钟,键盘,主机名称——>读写挂载/文件系统——>激活raid,lvm设备——>激活系统配额——>启动multi-user.target.wants中的所有服务脚本——>启用虚拟控制台——>启动图形
二.系统启动出错恢复
1.引导程序/boot/gurb出错
破坏/dev/vda前446字节引导:dd if=/dev/zero if=/dev/vda bs=446 count=1 (boot分区在哪挂载就破坏哪)
selinux 内核级加强型防火墙
开机无法引导程序
关闭虚拟机,加入iso镜像光盘,从光驱启动
Troubleshooting #系统修复
Rescue a Res Hat Enterprise Linux system #选择挽救模式(菜单的第二项)
1.继续 2.只读 3跳过 选择第一项
chroot /mnt/sysimage
grub2-install /dev/sda #根据实际boot分区挂载
执行两次exit退出从硬盘启动,恢复成功
2.引导文件/boot/grub2/grub.cfg 丢失
当系统没有重新启动
grub > linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1 根分区的设备名称
grub > initrd16 /boot/initramfs-3....... tab 补齐
grub > boot
注:可以让系统正常启动,但是临时的,还需要执行:
grub2-mkconfig > /boot/grub2/grub.cfg
3.内核丢失
模拟问题 rm -rf /boot/vmlinuz-3.10..............
.
进入到挽救模式
进入到挽救模式
chroot /mnt/sysimage 将根分区挂载到硬盘上
mkdir /rhel7 创立目录
mount /dev/sr0 /rhel7 将光盘挂载
cd /rhel7/Packages 进入到光盘的Packages中
cp kernel-3.10.0-123.e17....... /mnt 将内核复制到mnt
cd /mnt 进入到mnt中
rpm2cpio kernel-3.10...... rpm |cpio -id 使用cpio格式压缩内核并且解压
cd boot 进入到拆分生成的boot目录中
将丢失的内核文件复制回去
cp vmlinuz-3.10....... /boot
exit 退出两次
4)当/boot分区被删除后
1》恢复损坏的boot引导程序
2>恢复内核
3>恢复初始化文件
4> 恢复引导文件/boot/grub2/grub.cfg,此时只需要执行grub2-mkconfig > /boot/grub2/grub.cfg即可
5)初始化文件丢失
initramfs-3.10.0-123.el7.x86_64.img #初始化文件
进入挽救模式
chroot /mnt/sysimage
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
执行两次exit,从硬盘启动成功
6. 闪退
从光盘启动进入挽救模式
chroot /mnt/sysimage
cp /bin/bash /mnt/sysimage/bin/bash
exit退出即可
注:在系统启动出错恢复时,除却引导文件/boot/grub2/grub.cfg丢失不需要光盘启动进入挽救模式外,其他情况均需要从光盘启动进入挽救模式
#################################附录####################################
开机启动被篡改
错误形成
systemctl set-default reboot.target
解决方案解决
在开机选项中按上下键停止读秒
按E进入编辑模式
选择内核启动行
linux16 /vmlinuz-xxxxxxxxxx ro xxxxxxxxxxxxxx 改变为:
inux16 /vmlinuz-xxxxxxxxxxx rw rd.break
ctrl +x
chroot /sysroot
rm -rf /etc/systemd/system/default.target
ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
exit
忘记root密码
在开机选项中按上下键停止读秒
按E进入编辑模式
选择内核启动行
linux16 /vmlinuz-xxxxxxxxxx ro xxxxxxxxxxxxxx 改变为:
linux16 /vmlinuz-xxxxxxxxxxx rw rd.break
chroot /sysroot/
touch /.autorelabel