###linux系统的开机启动过程#####
通电-->bios初始化-->grub2磁盘引导阶段-->grub文件引导阶段-->指定boot所在分区-->启动内核,只读挂载/设备
-->启动init程序进入初始化阶段-->启动systemd初始化进程-->取/etc/systemd中的文件-->启动程序-->启动登陆环境
####linux中在启动过程中mbr主引导程序被破坏,如何恢复#####
1.grub 磁盘引导阶段
mbr 的作用是为了记录 /boot 目录所在分区位置
磁盘的0磁道 1 扇区的前446字节
2.查看自己系统的版本(hostnamectl进行查看)
3.查看boot引导程序所在分区(fdisk -l 查看)
4.模拟破坏程序,进行恢复
(1)dd if=/dev/zero of=/dev/vda bs=446 count=1
reboot ###系统会启不了
(2)重启后有如下报错
(3)在真机中virt-manager打开虚拟机图形管理,关掉server虚拟机,点击小灯泡图标,选择下面的Add Hardware添加
选择本虚拟机相应的镜像7.0,设备选CDROM光驱,IDE,点击finish即可
出来后选择Boot Options 把刚才添加的CDROM排到第一读取的位置,然后重启虚拟机
再次进入后,选择Trobuleshooting进入挽救模式,回车
然后再选择Rescue a Red Hat Enterprise Linux system ,回车
进入之后会让你确认是否恢复选continue,然后会告诉你你的系统被挂载在/mnt/sysimage,进入挽救模式后你需要切换根目录chroot /mnt/sysimage
下面两个选ok即可
进入挽救模式后,恢复引导程序,命令如下,完成后两次exit退出
关闭虚拟机,点击小灯泡,选择Boot Options将Disk1调至第一读取位置,点击apply,重启即可恢复
####系统引导文件删除后的恢复####
引导文件在/boot/grub2/grub.cfg中
1.删除引导文件,在系统没有重启之前可直接恢复
2.若已经重启,就需要手动引导
####第一行,指定/boot所在分区,在grub.cfg里可以查看
####第二行,root=根分区的设备名称,df可以查看
3.恢复好后还需grub2-mkconfig > /boot/grub2/grub.cfg 否则,每次启动都需要手动引导
#######系统内核文件删除后的恢复#######
1.系统内核文件就在/boot下,ls可看到
2.删除内核文件后,未重启的情况
df 查看镜像挂载点
cd /run/media/root/RHEL-7.0\ Server.x86_64/
ls
cd Packages/ ####进入Packages
cp kernel-3.10.0-123.el7.x86_64.rpm /root/Desktop ###复制到桌面
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id ####将内核安装包解压
cp boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/
3.删除内核文件后,重启之后的恢复,报错情况
4.进入到挽救模式,df查看/dev/sr0的挂载点,切换至所在目录cd /run/install/repo/Packages,复制内核安装包到/mnt/sysimage的mnt目录里,操作如下图
cd /run/install/repo
ls
cd Packages
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt/sysimage/mnt
chroot /mnt/sysimage
cd /mnt
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
cp boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/
切入系统现在的根chroot /mnt/sysimage,进入/mnt,将内核包解压,再将内核文件复制到/boot
完成后,两次exit退出,再进入虚拟机管理界面,把Disk1调至第一读取位置,重启即可恢复(同上面)
##########系统初始化文件丢失的恢复###########
1.删除镜像文件(镜像文件在/boot/下)
2.当系统没有重启时,可以直接恢复,命令如下:提示$()为先执行括号里的内容,$(uname -r)自动匹配文件的版本
3.如果重启了,会出现如下报错
4.然后进入挽救模式,恢复初始化镜像文件
5.完成后,两次exit退出,再进入虚拟机管理界面,把Disk1调至第一读取位置,重启即可恢复(同上面)
############系统开机启动级别被篡改的恢复########
###系统的启动级别##
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
1.修改开机级别
systemctl set-default shutdown.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/shutdown.target' '/etc/systemd/system/default.target'
reboot
2.重启后,有如下报错
3.此时修改为,进入登陆选择界面时,先按上下键停止进入,然后选择你要登陆的系统按e,选择linux16这一行,在最后添加5,按crlt+x,系统重启
4.系统重启后,应修改系统的启动级别,不然下次还会出现此情况
systemctl set-default graphical.target