系统启动的过程
首先来了解一下系统启动的过程
如果某个阶段除了差错,系统不能正常启动,接下来我们来学习一下不同阶段出错的排错方法
1.grub2磁盘引导阶段
dd if=/dev/zero of=/dev/vda bs=446 count=1 #损坏mbr引导文件
如果没有重启:
grub2-install /dev/vda #启动分区所在的硬盘
如果已经重启:
reboot --->系统起不来
在主机里执行virt-manager
关闭虚拟机,添加光盘和镜像,设置为光盘引导,运行虚拟机
选择第三行troubleshooting
选第二行进入挽救模式,提示系统被挂载到了/mnt/sysimage,提示三次之后,得到一个shell
执行下面命令
chroot /mnt/sysimage/ #切换根目录
grub2-install /dev/vda
两次exit退出
再次关闭虚拟机,设置为硬盘引导,再打开虚拟机
实际操作:
重启之后系统起不来
在主机中执行virt-manager,关闭虚拟机
选择Add Hardware
添加光盘
添加镜像
选择镜像文件
确认添加
设置光盘引导
选择第三行troubleshooting
第二行进入挽救模式
系统被挂载到/mnt/sysimage下,点继续
回车
回车
查看
执行下面命令
两次exit退出,再次关闭虚拟机
设置为硬盘引导
修复成功
注意:设置光盘引导和硬盘引导的时候,必须先关闭虚拟机
2.grub2文件引导阶段
1)引导文件丢失
hd0 是系统第1块硬盘,msdos1 第1个分区
先启动内核,内核有所有系统的驱动
64+2中2表示硬盘的有效性标识
rm -fr /boot/grub2/grub.cfg #引导文件丢失
重启之前可执行:
grub2-mkconfig > /boot/gtub2/grub.cfg #恢复文件
如果已经重启,则自己写引导:
set root='hd0,msdos1'
linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1
initrd16 /boot/initramfs-3.10.0.123.e.17.x86_64.img
boot
系统修复好之后再执行:
grub2-mkconfig > /boot/gtub2/grub.cfg #恢复文件
实际操作
不小心删除/boot/grub2/grub.cfg,重启之前可执行下面命令进行恢复
如果已经重启,则执行下面命令:
登录系统
执行下面命令恢复文件
如果最后没有恢复引导文件,则下次仍需手动引导
2)内核文件丢失
[root@localhost boot]# rm -fr vmlinuz-3.10.0-123.el7.x86_64 #内核文件丢失
重启之前:
在镜像文件中找到packages/kernel-3.10.0-123.el7.x86_64.rpm复制到桌面
[root@localhost Desktop]# rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id #拆解安装包
219282 blocks
[root@localhost Desktop]# cp boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/ #把文件复制到/boot
如果已经重启:
真机里:virt-manager
关掉虚拟机
设置光驱引导
运行虚拟机
选择第三行troubleshooting
选第二行进入挽救模式
df #查看/dev/sr0光盘设备的挂载点和/dev/vda1的挂载点(真实根目录)
cd /run/install/repo/Packages #切换到安装包目录
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt/sysimage/mnt #把安装包复制到根目录下的mnt目录
chroot /mnt/sysimage #切换到根目录
cd /mnt
ls
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id #拆解安装包
ls
cp boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/ #把内核文件复制到/boot
实际操作:
内核文件丢失
如果没有重启:进入镜像文件,找到Package目录
找到kernel-3.10.0-123.el7.x86_64.rpm安装包,复制到桌面
拆解安装包
把丢失的文件复制到/boot
如果重启:提示内核文件找不到了
关闭虚拟机
设置为光盘引导
进入挽救模式
执行下面命令恢复内核文件
两次exit,关闭虚拟机,设为硬盘引导,再开启就可以了
3.系统初始化镜像文件丢失
[root@localhost boot]# rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
重启之前:
[root@localhost boot]# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) #恢复文件
动词变为名词' '
名词变为动词$()
如果系统已经重启:
真机里:virt-manager
关掉虚拟机
设置光驱引导
运行虚拟机
选第三行troubleshooting
选第二行进入挽救模式
chroot /mnt/sysimage #切换到根目录
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) #恢复文件
实际操作:
初始化镜像文件丢失:重启之前可执行图中最后一个命令直接恢复
如果重启:提示镜像文件丢失
关掉虚拟机,设置光驱引导,运行虚拟机,选第三行troubleshooting,选第二行进入挽救模式,执行下面命令
两次exit,关闭虚拟机,设为硬盘引导,再开启
4.系统启动阶段
启动级别
0 为停机,机器关闭
1 为单用户模式,root权限,用于系统维护
2 为多用户模式,但是没有NFS支持
3 为完全的多用户模式,登录后进入图形GUI模式
4 系统未使用
5 X11控制台
6 为重启,运行init 6机器就会重动
systemctl set-default shutdown.target #设置默认运行级别为shutdown
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/shutdown.target' '/etc/systemd/system/default.target'
如果重启前:
systemctl set-default graphical.target #设置默认运行级别为graphical
如果重启后:
[root@localhost ~]# reboot
ctrl+alt+delete
上下键选第一个按e
找到linux16最后加5按ctrl+x
进入系统后:
systemctl set-default graphical.target
设置默认运行级别
重启后
按ctrl+alt+delete,进入下面页面,上下键选择第一行后,按e
找到linux16,最后加上5,按ctrl+x
进入系统后执行下面命令设置默认运行级别为graphical