在Linux中各类重要文件被丢失的解决方式

1.引导文件丢失

(1)前提及细节讲解
<1>首先查看哪个文件系统挂载在根目录下,由图可知/dev/mapper/rhel-root挂载在根目录下

[root@localhost ~]# df

在这里插入图片描述
<2>查看主机配置的内核

[root@localhost ~]# uname -r       ##查看内核
3.10.0-514.el7.x86_64

在这里插入图片描述
<3>通过研究/boot下的内容对自动引导文件更加了解

[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

在这里插入图片描述
<2>恢复自动引导文件

[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

在这里插入图片描述
注意:如果开机较慢,可能是因为内核型的加强性火墙被禁止了,通过命令使其无效后便会缩减开机时间

2.内核文件丢失

<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-重新开启虚拟机,即可恢复正常
补充:若出现以下问题,即无法找到内核文件,说明系统可能出现了错误,需要将其删除才可
在这里插入图片描述

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

(可能会出现管道等报错,但是不影响)
(1)手动删除初始化镜像文件

[root@localhost ~]# rm -fr /boot/initramfs-3.10.0-514.el7.x86_64.img 
[root@localhost ~]# reboot

在这里插入图片描述
(2)当系统没有重启时,输入以下命令并进入boot下查看

[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-重新开启虚拟机,即可恢复正常

4./boot分区丢失

<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-重新开启虚拟机,即可恢复正常

5.启动级别被篡改

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

在这里插入图片描述
<2>查看在配置文件中关闭sshd服务前后内容的差距

[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.

在这里插入图片描述
<3>查看是否有配置用户模式,重启,关机的启动级配置文件

[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

在这里插入图片描述

6.硬盘损坏

<1>首先查看设备,其中带*的为硬盘设备
[root@station ~]# fdisk -l
在这里插入图片描述
<2>更改其selinux状态为disabled,否则开机会很慢

[root@station ~]# vim /etc/sysconfig/selinux

在这里插入图片描述
配置文件的更改如下:
在这里插入图片描述
<3>损坏硬盘

[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>重新开启虚拟机,达到以下界面说明成功解决硬盘损坏问题
在这里插入图片描述
(你过来,我有个天想和你聊一下)

猜你喜欢

转载自blog.csdn.net/qq_39376481/article/details/86681564