Linux系统启动中的错误管理

几个常见的系统排错:

1,grub磁盘引导阶段:

[root@localhost ~]# fdisk -l     查看硬件信息

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00013f3e

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    20970332    10484142+  83  Linux

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@localhost ~]# dd if=/dev/zero of=/dev/vda bs=446 count=1  损坏磁盘系统无法正常启动
1+0 records in
1+0 records out
446 bytes (446 B) copied, 9.7956e-05 s, 4.6 MB/s

这里写图片描述
重启的效果:
这里写图片描述

然后在真机输入virt-manager对虚拟机进行挽救。

挽救模式

1,虚拟机管理界面
这里写图片描述
2,将server虚拟机关闭,一切更改都是在虚拟机关闭情况下进行操作的。
这里写图片描述
3,添加光盘:
这里写图片描述
4,配置CD参数:
这里写图片描述
5,选取镜像:
这里写图片描述
6,将光盘放到最上面进行启动挽救模式。
这里写图片描述
7,
这里写图片描述
8,
这里写图片描述
9,
这里写图片描述
10,
这里写图片描述
11,
这里写图片描述
进入挽救模式修复光盘损坏的情况:
这里写图片描述
将selinux关闭系统启动快:
这里写图片描述
两次退出后又回到了开始界面,千万不要一直循环操作,我们已经挽救好了,只需要按照原来的启动即可:
挽救成功后1,
这里写图片描述
2,然后运行就可以正常启动。
这里写图片描述
启动成功桌面多了一个光盘标志:
这里写图片描述

2,grub文件引导阶段:

2-1删除系统没有重启

[root@localhost ~]# cd /boot
[root@localhost boot]# ls
config-3.10.0-123.el7.x86_64
grub
grub2
initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img
initramfs-3.10.0-123.el7.x86_64.img
initrd-plymouth.img
symvers-3.10.0-123.el7.x86_64.gz
System.map-3.10.0-123.el7.x86_64
vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817
vmlinuz-3.10.0-123.el7.x86_64
[root@localhost boot]# cd grub2
[root@localhost grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes
[root@localhost grub2]# rm -fr grub.cfg      删除文件
[root@localhost grub2]# grub2-mkconfig > /boot/grub2/grub.cfg   直接进行恢复
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817
Found initrd image: /boot/initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img
done 
[root@localhost grub2]# ls   查看文件已经被恢复
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes

这里写图片描述
删除文件系统未启动之前恢复。
这里写图片描述

2-2删除文件系统重启

[root@localhost grub2]# rm -fr grub.cfg   删除文件
[root@localhost grub2]# ls    查看已经被删除
device.map  fonts  grubenv  i386-pc  locale  themes
[root@localhost grub2]# reboot  重启

这里写图片描述
重启后系统进入了如下界面,输入命令进行恢复启动:
这里写图片描述
等待系统进行正常启动,如下图启动成功:
这里写图片描述
[root@localhost grub2]# grub2-mkconfig > /boot/grub2/grub.cfg 将删除的文件恢复即可

3,内核文件vmlinuz丢失 :

3-1,系统未启动恢复

[root@localhost ~]# cd /boot/
[root@localhost boot]# ls       实验的vmlinuz文件
vmlinuz-3.10.0-123.el7.x86_64
[root@localhost boot]# rm -fr vmlinuz-3.10.0-123.el7.x86_64   删除
[root@localhost boot]# ls查看已经被删除
[root@localhost boot]# yum whatprovides /boot/vmlinuz-3.10.0-123.el7.x86_64   寻找安装包
Loaded plugins: langpacks
kernel-3.10.0-123.el7.x86_64 : The Linux kernel
Repo        : rhel_dvd
Matched from:
Filename    : /boot/vmlinuz-3.10.0-123.el7.x86_64
kernel-3.10.0-123.el7.x86_64 : The Linux kernel
Repo        : installed
Matched from:
Filename    : /boot/vmlinuz-3.10.0-123.el7.x86_64
在虚拟机中双击光盘将光盘里面的kernel安装包移动到桌面上。
[root@localhost boot]# cd
[root@localhost ~]# cd /root/Desktop/
[root@localhost Desktop]# ls
kernel-3.10.0-123.el7.x86_64.rpm
[root@localhost Desktop]# file kernel-3.10.0-123.el7.x86_64.rpm
kernel-3.10.0-123.el7.x86_64.rpm: RPM v3.0 bin i386/x86_64 kernel-3.10.0-123.el7
[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/          已经恢复完成
[root@localhost Desktop]# cd /boot/
[root@localhost boot]# ls                     查看已经有了删除的内核文件
vmlinuz-3.10.0-123.el7.x86_64

删除内核文件
这里写图片描述
将光盘里面的kernel安装包移动出来。
这里写图片描述
双击虚拟机里面的光盘进行查找kernel安装包
这里写图片描述
复制到桌面即可
这里写图片描述
进行恢复:
这里写图片描述

3-2,删除内核文件之后系统启动

[root@localhost Desktop]# cd /boot
[root@localhost boot]# ls
vmlinuz-3.10.0-123.el7.x86_64
[root@localhost boot]# rm -fr vmlinuz-3.10.0-123.el7.x86_64    删除直接重启
[root@localhost boot]# reboot

这里写图片描述
依旧是在虚拟机管理界面进入挽救模式,两个退出然后进行挽救模式完成后的两步操作即可正常启动系统。
这里写图片描述
系统启动成功。
这里写图片描述

4,内核文件initramfs丢失:

4-1,系统未启动进行恢复

[root@localhost ~]# cd /boot
[root@localhost boot]# ls
initramfs-3.10.0-123.el7.x86_64.img
[root@localhost boot]# rm -fr initramfs-3.10.0-123.el7.x86_64.img   删除文件
[root@localhost boot]# uname -r  查看系统版本
3.10.0-123.el7.x86_64
[root@localhost boot]# mkinitrd /boot/initramfs-3.10.0-123.el7.x86_64.img 3.10.0-123.el7.x86_64  直接恢复文件
[root@localhost boot]# ls    查看已经恢复
initramfs-3.10.0-123.el7.x86_64.img

直接恢复成功:
这里写图片描述

4-2,删除文件后系统重启

[root@localhost boot]# rm -fr initramfs-3.10.0-123.el7.x86_64.img   删除文件重启
[root@localhost boot]# reboot进去挽救模式进行图形操作。

这里写图片描述
依旧是进入挽救模式,操作同上,输入命令进行挽救,成功后将光盘移动到原来位置即可。
这里写图片描述
系统正常启动:
这里写图片描述

$()与“区别:

在bash中,$( )与` `(反引号)都是用来作命令替换的。
命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,
然后将其结果替换出来,再重组成新的命令行。
在操作上,这两者都是达到相应的效果,但是建议使用$( ),理由如下:
``很容易与''搞混乱,尤其对初学者来说。
在多层次的复合替换中,``必须要额外的跳脱处理(反斜线),而$( )比较直观。
最后,$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。

通过一段代码简单演示一下两个命令:

[root@localhost boot]# hostname
localhost
[root@localhost boot]# echo your hostname is hostname     没有效果
your hostname is hostname
[root@localhost boot]# echo your hostname is $(hostname)  命令替换方式一
your hostname is localhost
[root@localhost boot]# echo your hostname is `hostname`  命令替换方式二
your hostname is localhost

效果展示:
这里写图片描述

5,更改系统启动级别:

Linux系统有7个运行级别:
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

命令实现:

[root@localhost ~]# systemctl set-default shutdown.target   改变开机默认级别
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/shutdown.target' '/etc/systemd/system/default.target'
[root@localhost ~]# reboot
进去上下键在linux16行末尾添加5。
[root@localhost ~]# systemctl set-default graphical.target  修改级别
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'

直接上下键索引按’e’找到linux16行的末尾添加5即可正常启动。
这里写图片描述
启动之后修改开机默认运行级别
这里写图片描述

猜你喜欢

转载自blog.csdn.net/aaaaaab_/article/details/80325987