(1)前提及细节讲解
<1>首先查看哪个文件系统挂载在根目录下,由图可知/dev/mapper/rhel-root挂载在根目录下
[root@localhost ~]# df
[root@localhost ~]# uname -r ##查看内核
3.10.0-514.el7.x86_64
[root@localhost ~]# ls /boot ##查看/boot下的文件,其中initramfs-3.10.0-514.el7.x86_64.img初始化镜像,vmlinuz-3.10.0-514.el7.x86_64启动内核
config-3.10.0-514.el7.x86_64
grub2
grub2.grub.cfg ##自动引导文件
initramfs-0-rescue-f2308fa67a734a0290404a362ae4304b.img
initramfs-3.10.0-514.el7.x86_64.img ##初始化镜像
initramfs-3.10.0-514.el7.x86_64kdump.img
initrd-plymouth.img
symvers-3.10.0-514.el7.x86_64.gz
System.map-3.10.0-514.el7.x86_64
vmlinuz-0-rescue-f2308fa67a73 ##配置内核的文件
<4>对比/boot/grub2/grub.cfg中的内容和由命令grub2-mkconfig生成的内容
[root@localhost ~]# cat /boot/grub2/grub.cfg
[root@localhost ~]# grub2-mkconfig
目录/boot/grub2/grub.cfg中的内容:
命令grub2-mkconfig生成的内容:
总结:由图可知两者的内容完全相同
(2)关机前及时恢复自动引导文件(删除自动引导文件后没有关闭主机)
<1>删除引导文件并对引导文件进行查看,确保引导文件已经丢失
[root@localhost ~]# rm -rf /boot/grub2/grub.cfg
[root@localhost ~]# cat /boot/grub2/grub.cfg
cat: /boot/grub2/grub.cfg: No such file or directory
[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg ##将grub-mkconfig生成的内容重定向到自动引导文件内
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-0869ee20747b4638a11e14fd25dadcf7
Found initrd image: /boot/initramfs-0-rescue-0869ee20747b4638a11e14fd25dadcf7.img
done
[root@localhost ~]# cat /boot/grub2/grub.cfg ##查看文件内是否已经添加了新的内容
(3)删除自动引导文件后的补救(关机后重新加载)
<1>删除引导文件并对引导文件进行查看,确保引导文件已经丢失
[root@localhost ~]# rm -rf /boot/grub2/grub.cfg
[root@localhost ~]# cat /boot/grub2/grub.cfg
cat: /boot/grub2/grub.cfg: No such file or directory
[root@localhost ~]# reboot ##重启
<2>重启之后会出现以下错误,如图所示:
<3>删除自动引导文件后的补救(关机后重新加载)
grub> set root='hd0,msdos1' ##此位置是不固定的,位置指定/boot所在第一块硬盘的第一个分区
grub> linux16 /vmlinuz-3.10.0-514.el7.x86_64 ro root=/dev/mapper/rhel-root ##加载内核并且只读挂载根(尽量自动补齐),并查看添加分区的设备名称
grub> initrd16 /initramfs-3.10.0-514.el7.x86_64.img ##初始化镜像(尽量自动补齐)
grub> boot
注意:以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行以下操作
<4>开机之后的设置:
开机后查看自动引导文件,发现文件内并没有内容,所以必须手动为其添加内容
[root@localhost ~]# cat /boot/grub2/grub.cfg
cat: /boot/grub2/grub.cfg: No such file or directory
[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-0869ee20747b4638a11e14fd25dadcf7
Found initrd image: /boot/initramfs-0-rescue-0869ee20747b4638a11e14fd25dadcf7.img
done
[root@localhost ~]# cat /boot/grub2/grub.cfg
注意:如果开机较慢,可能是因为内核型的加强性火墙被禁止了,通过命令使其无效后便会缩减开机时间
<1>手动删除内核文件
[root@localhost ~]# rm -fr /boot/vmlinuz-3.10.0-514.el7.x86_64
[root@localhost ~]# reboot
<2>重启后会出现以下报错,使系统无法正常运行
<3>配置硬件
-1-首先关闭虚拟机
-2-新添加一个光驱硬件
-3-系统首先执行光驱硬件
-4-重新开启虚拟机,进入到挽救模式
<4>在挽救模式中写入以下内容
---chroot /mnt/sysimage/
---df
---mount /dev/cdrom /media
---cd /media
---ls
---cd Packages
---cp kernel-3.10.0-514.e17.x86_64.rpm /mnt/
---cd /mnt
---ls
---rpm2cpio kernel-3.10.0-514.e17.x86_64.rpm |cpio -id
---ls
---cd boot/
---ls
---cp vmlinuz-3.10.0-514.e17.x86_64 /boot
---vim /etc/sysconfig/selinux(disabled) ##使开机更加迅速
<5>硬件配置
-1-关闭虚拟机,以便于对硬件进行操作
-2-设置最先执行硬盘
-3-重新开启虚拟机,即可恢复正常
补充:若出现以下问题,即无法找到内核文件,说明系统可能出现了错误,需要将其删除才可
(可能会出现管道等报错,但是不影响)
(1)手动删除初始化镜像文件
[root@localhost ~]# rm -fr /boot/initramfs-3.10.0-514.el7.x86_64.img
[root@localhost ~]# reboot
[root@localhost ~]# mkinitrd /boot/initranfs-$(uname -r).img $(uname -r)
[root@localhost ~]# cd /boot
[root@localhost boot]# ls
config-3.10.0-514.el7.x86_64
grub2
initramfs-0-rescue-f178cac7ec994d58b135f0fdf09ca475.img
initramfs-3.10.0-514.el7.x86_64kdump.img
initranfs-3.10.0-514.el7.x86_64.img
initrd-plymouth.img
symvers-3.10.0-514.el7.x86_64.gz
System.map-3.10.0-514.el7.x86_64
vmlinuz-0-rescue-f178cac7ec994d58b135f0fdf09ca475
vmlinuz-3.10.0-514.el7.x86_64
注意:uname -r可以替代内核
(3)当系统重启后会出现以下报错,使系统无法正常运行
<1>配置硬件
-1-首先关闭虚拟机
-2-新添加一个光驱硬件
-3-系统首先执行光驱硬件
-4-重新开启虚拟机,进入到挽救模式
<2>在挽救模式中写入以下内容
---chroot /mnt/sysimage/
---mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) ##建立镜像文件
---cd /boot/
---ls
---exit
---exit
<3>硬件配置
-1-关闭虚拟机,以便于对硬件进行操作
-2-设置最先执行硬盘
-3-重新开启虚拟机,即可恢复正常
<1>手动删除内核文件并查看
[root@localhost ~]# rm -rf /boot/*
[root@localhost ~]# ls /boot
[root@localhost ~]# reboot
<2>当系统重启后会出现以下报错,使系统无法正常运行
<3>配置硬件
-1-首先关闭虚拟机
-2-新添加一个光驱硬件
-3-系统首先执行光驱硬件
-4-重新开启虚拟机,进入到挽救模式
<4>在挽救模式中写入以下内容
---chroot /mnt/sysimage/
---mount /dev/cdrom /opt/
---fdisk -l
---grub2-install /dev/sda
---df
---cd /opt/
---ls
---cp Packages/kernel-3.10.0-514.el7.x86_64.rpm /mnt/
---cd /mnt/
---ls
---rpm -ivh kernel-3.10.0-514.el7.x86_64.rpm --force
---cd /boot/
---ls
---grub2-mkconfig > /boot/grub2/grub.cfg
---exit
---exit
<5>硬件配置
-1-关闭虚拟机,以便于对硬件进行操作
-2-设置最先执行硬盘
-3-重新开启虚拟机,即可恢复正常
runlever0.target->poweroff.target runlever1.target->rescue.target
runlever2.target->multi-user.target
runlever3.target->multi-user.target
runlever4.target->multi-user.target runlever5.target->grapical.target
runlever6.target->reboot.target
<1>将进入用户自定义特定运行级别配置文件
[root@localhost ~]# cd /etc/systemd/system
[root@localhost system]# cd multi-user.target.wants/ ##进入用户自定义特定运行级别配置文件
[root@localhost multi-user.target.wants]# pwd
/etc/systemd/system/multi-user.target.wants
[root@localhost multi-user.target.wants]# ls
[root@localhost multi-user.target.wants]# systemctl disable sshd
Removed symlink /etc/systemd/system/multi-user.target.wants/sshd.service.
[root@localhost multi-user.target.wants]# ls ##查看在关闭sshd后,此文件内是否不会在出现sshd.service
[root@localhost multi-user.target.wants]# systemctl enable sshd ##假设完成后.需将一切恢复原样,以免影响后面的操作
Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service.
[root@localhost system]# ll /lib/systemd/system/multi-user.target
-rw-r--r--. 1 root root 492 Sep 13 2016 /lib/systemd/system/multi-user.target
[root@localhost system]# ll /lib/systemd/system/reboot.target
-rw-r--r--. 1 root root 543 Sep 13 2016 /lib/systemd/system/reboot.target
[root@localhost system]# ll /lib/systemd/system/shutdown.target
-rw-r--r--. 1 root root 402 Sep 13 2016 /lib/systemd/system/shutdown.target
<4>将reboot配置文件链接至default配置文件内(重启之后便会一直处于开机关机的无限循环状态
[root@localhost system]# ln -s /lib/systemd/system/reboot.target /etc/systemd/system/default.target ##会出现default配置文件已经存在的报错,所以要对其进行删除,再重新进行链接即可
ln: failed to create symbolic link ‘/etc/systemd/system/default.target’: File exists
[root@localhost system]# rm -rf /etc/systemd/system/default.target
[root@localhost system]# ln -s /lib/systemd/system/reboot.target /etc/systemd/system/default.target
[root@localhost ~]# ll /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 33 Jan 28 17:21 /etc/systemd/system/default.target -> /lib/systemd/system/reboot.target
[root@localhost ~]# ll /lib/systemd/system/reboot.target
-rw-r--r--. 1 root root 543 Sep 13 2016 /lib/systemd/system/reboot.target
[root@localhost system]# reboot
<5>重启后会发现一直在重启,看到以下界面后按下e即可
<6>对其进行启动级别的更改,在quiet后加上5(说明图形化界面优先执行),再次按下ctrl+x即可保存并重启
<7>在系统正常运行后,需要更改其级别,否则再次开机依旧会出现一直重启的问题
[root@localhost ~]# ll /etc/systemd/system/default.target ##查看配置优先级执行的文件,会发现其依旧是reboot的链接文件,需将其删掉即可
lrwxrwxrwx. 1 root root 33 Jan 25 13:06 /etc/systemd/system/default.target -> /lib/systemd/system/reboot.target
[root@localhost ~]# rm -fr /etc/systemd/system/default.target
[root@localhost ~]# ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target ##将图形级别设置为优先执行的文件
[root@localhost ~]# ll /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 36 Jan 25 13:40 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
<1>首先查看设备,其中带*的为硬盘设备
[root@station ~]# fdisk -l
<2>更改其selinux状态为disabled,否则开机会很慢
[root@station ~]# vim /etc/sysconfig/selinux
[root@station ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1
<4>出现以下界面说明系统硬盘出现问题
<5>强行关闭虚拟机后打开硬件配置,添加光驱(CDROM device)
<6>选择SATA CEROM1并将镜像导入
<7>选择Boot Options,将SATA CDROM1放置第一位(系统先运行光驱)
<8>重新开启虚拟机,选择挽救模式
<9>选择系统修复
<10>在文本中写入如下内容:
1 ##继续对系统进行修复
空格 ##进入shell脚本
df ##查看正在挂载的设备
chroot /mnt/sysimage ##切换到真实系统的环境下
grub2-install /dev/sda ##启动分区所在的硬盘
exit ##退出
exit ##退出
<11>在Boot Options中将IDE Disk1放置优先,使系统优先运行硬盘
<12>重新开启虚拟机,达到以下界面说明成功解决硬盘损坏问题
(你过来,我有个天想和你聊一下)