一、忘记root密码的解决方法

1.开机后在系统选择页面按e,找到以linux16开头的那行,删除 ro 后面的所有内容,并将 ro 改为 rw rd.break ,按ctrl+x进入下一个页面

linux突然启动不了java程序 linux不能正常启动_linux突然启动不了java程序


linux突然启动不了java程序 linux不能正常启动_开机异常_02


2.等系统停止后按Enter弹出

switch_root:/# 界面

输入

chroot /sysroot/					##从内核模式切换到shell模式
 echo westos | passwd --stdin root	##设置密码为westos
 touch /.autorelabel					##建立密码认证文件

linux突然启动不了java程序 linux不能正常启动_解决方法_03


3.root密码更改完成,重启即可

二、硬盘引导阶段异常

1.模拟问题

MBR主引导记录丢失

dd if=/dev/zero of=/dev/vda bs=446 count=1   ##破坏MBR,/dev/vda是本机/boot所在地

linux突然启动不了java程序 linux不能正常启动_linux突然启动不了java程序_04


linux突然启动不了java程序 linux不能正常启动_linux突然启动不了java程序_05

2.解决方法

若是真实主机,需要插入镜像光驱,并从光驱启动。

若是虚拟机,则添加虚拟光驱,从光驱启动

linux突然启动不了java程序 linux不能正常启动_linux无法开机_06


linux突然启动不了java程序 linux不能正常启动_linux突然启动不了java程序_07


进入挽救模式

linux突然启动不了java程序 linux不能正常启动_linux无法开机_08


linux突然启动不了java程序 linux不能正常启动_解决方法_09

linux突然启动不了java程序 linux不能正常启动_命令行_10


linux突然启动不了java程序 linux不能正常启动_开机异常_11


出现命令行后输入

chroot /mnt/sysimage      ##切换到真实根目录
 grub2-install  /dev/vda   ##此处磁盘应与刚才所截位置一致

linux突然启动不了java程序 linux不能正常启动_linux无法开机_12


关闭虚拟机,更改从磁盘启动,即可恢复正常

linux突然启动不了java程序 linux不能正常启动_命令行_13

三、文件引导阶段可能出现的问题

1.引导文件丢失

(1)引导文件所在路径

/boot/grub2/grub.cfg

(2)预准备

需提前知道根目录所在分区和内核版本

linux突然启动不了java程序 linux不能正常启动_命令行_14

uname -r		##查询内核版本命令

linux突然启动不了java程序 linux不能正常启动_开机异常_15

(3)模拟问题
rm -fr /boot/grub2/grub.cfg		##删除引导文件
 reboot								##重启系统

linux突然启动不了java程序 linux不能正常启动_开机异常_16

linux突然启动不了java程序 linux不能正常启动_开机异常_17

(4)解决方法
grub > set root='hd0,msdos1'  
 grub > linux16 /vmlinuz-3.10.0-514.el7.x86_64 ro root=/dev/vda3	##内核版本指定本机的,位置指定根目录所在分区
 grub > initrd16 /initramfs-3.10.0-514.el7.x86_64.img				##内核版本指定本机的
 grub > boot

linux突然启动不了java程序 linux不能正常启动_命令行_18


以上步骤只是临时更改,下次开机还会报同样的错误,所以需要进入系统后恢复引导文件。

grub2-mkconfig > /boot/grub2/grub.cfg	##恢复引导文件

linux突然启动不了java程序 linux不能正常启动_linux无法开机_19

2.内核文件丢失

(1)内核文件

/boot/vmlinuz-3.10.0-514.el7.x86_64

(2)模拟问题
rm -fr /boot/vmlinuz-3.10.0-514.el7.x86_64		##删除内核文件

linux突然启动不了java程序 linux不能正常启动_开机异常_20

(3)解决方法

进入挽救模式(与上面解决MBR丢失相同的进入方法)

出现命令行后

linux突然启动不了java程序 linux不能正常启动_linux突然启动不了java程序_21


在命令行输入

chroot /mnt/sysimage/						##切换到真实根目录下
 mount  /dev/cdrom /media/						
 cp /media/Packages/kernel-3.10.0-514.el7.x86_64.rpm /mnt/
 cd /mnt/
 rpm2cpio kernel-3.10.0-514.el7.x86_64.rpm | cpio -id	##从rpm包中提取文件
 cd boot/
 cp vmlinuz-3.10.0-514.el7.x86_64 /boot/	##复制缺失的内核文件到/boot下

linux突然启动不了java程序 linux不能正常启动_命令行_22


linux突然启动不了java程序 linux不能正常启动_解决方法_23


关闭虚拟机,更改从磁盘启动,即可恢复正常

3.系统初始化镜像文件丢失

(1)系统初始化镜像文件

/boot/initramfs-3.10.0-514.el7.x86_64.img

(2)模拟问题
rm -fr /boot/initramfs-3.10.0-514.el7.x86_64.img		##删除系统初始化镜像文件

linux突然启动不了java程序 linux不能正常启动_linux无法开机_24

(3)解决方法

进入挽救模式(与上面解决MBR丢失相同的进入方法)

出现命令行后

linux突然启动不了java程序 linux不能正常启动_linux突然启动不了java程序_21


在命令行输入

chroot /mnt/sysimage/			##切换到真实根目录下
 mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)		##$(uname -r)	表示当前内核版本,也可直接写

linux突然启动不了java程序 linux不能正常启动_开机异常_26

4./boot/分区丢失

(1)模拟问题
rm -fr /boot/*			##删除/boot分区下所有文件

linux突然启动不了java程序 linux不能正常启动_linux无法开机_27

(2)解决方法

进入挽救模式(与上面解决MBR丢失相同的进入方法)

出现命令行后

linux突然启动不了java程序 linux不能正常启动_linux突然启动不了java程序_21


在命令行输入

chroot /mnt/sysimage/			##切换到真实根目录下
 grub2-install /dev/vda			##/boot所在分区
 mount /dev/cdrom /opt/	
 cp /opt/Packages/kernel-3.10.0-514.el7.x86_64.rpm /mnt/
 cd /mnt/
 rpm -ivh kernel-3.10.0-514.el7.x86_64.rpm --force		##安装
 grub2-mkconfig > /boot/grub2/grub.cfg			##导入引导文件

linux突然启动不了java程序 linux不能正常启动_命令行_29


linux突然启动不了java程序 linux不能正常启动_解决方法_30

四、开机启动级别被篡改

1.模拟问题
rm -fr /etc/systemd/system/default.target		##删除原有的开机级别
 ln -s /lib/systemd/system/reboot.target /etc/systemd/system/default.target		##更改重启为新开机级别

此问题出现后电脑在开机后会无限重启

2.解决方法

(1)开机后在系统选择页面按e,在以linux16开头的那行的最后面加个5,ctrl+x即可正常进入系统

linux突然启动不了java程序 linux不能正常启动_命令行_31


(2)进入系统后

systemctl set-default graphical.target		##恢复正常开机启动级别

linux突然启动不了java程序 linux不能正常启动_linux突然启动不了java程序_32