几个常见的系统排错:
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即可正常启动。
启动之后修改开机默认运行级别