系统排错
linux系统启动
- BIOS 加电自检(POST):主要负责检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)是否正常,BIOS自检阶段会报错,系统就无法启动起来。然后根据我们在BIOS中设置的系统启动顺序来搜索用于启动系统的驱动器,如硬盘、光盘、U盘、软盘和网络等,以硬盘启动为例,BIOS此时去读取硬盘驱动器的第一个扇区(MBR,512字节),然后执行里面的代码。至此,BIOS的任务就完成了,此后将系统启动的控制权移交到MBR部分的代码。
- 引导装载程序 (GRUB2):指定 /boot 分区位置、加载内核、启动系统初始化进程。GRUB 允许用户从任何给定的 Linux 发行版本的几个不同内核中选择一个进行引导,GRUB 能够通过文件
/boot/grub/grub.conf
进行配置。 - 内核初始化。内核文件可以通过其文件名进行识别,其文件名均带有前缀 vmlinuz
- 启动 systemd,其是所有进程之父。开启 selinux 和 systemd-tools、加载内核参数、加载系统时钟 , 键盘 , 主机名称、读写挂载 / 文件系统、** raid , lvm 设备、**系统配额、启动 multi-user.target.wants 中的所有服务脚本、启用虚拟控台、启动图形
破坏了引导程序
1)下面我们模拟破坏引导程序,破坏后重启
2)重启后发现如下图保报错
3)进入挽救模式,打开虚拟程序图形管理,点击小灯泡图标,选择下面的Add Hardware添加进去后选择Storage并在Browse里选择与自己系统匹配的镜像文件,Device type设备类型选择添加CDROM光驱出来后选择Boot Options 把刚才添加的CDROM排到第一读取的位置,然后重启虚拟机
4)进入挽救模式后,恢复引导程序,命令如下,完成后两次exit退出
引导文件丢失恢复
1)删除/boot/grub2下的grub.cfg文件
2)重启后出现如下报错
3)输入以下内容,boot后系统重新启动
4)在进入虚拟机后重新使用命令生成grub配置文件,防止下次重启出现同样问题
内核文件丢失的恢复
1)删除内核文件并重启
2)开机后显示如下报错:
3)我们需要进入挽救模式,将本来是硬件启动改为使用CDROM启动,若不存在CDROM,可点击添加硬件,选择storage,选择本地的iso,但要保证版本与系统版本一致,否则恢复时会出现问题
选择troubleshooting
点击一次continue,两次ok
获得shell后输入以下命令,两次exit后开始加载系统
删除镜像文件
同样进入挽救模式后,输入以下命令,两次exit后系统重启
注意:
1.uname -r :输出linux的版本号
2.$(command):将命令的执行结果当作文本输入,相当于`command`
当/boot被删除恢复
出现如下报错:
忘记root用户密码
进入登陆选择界面时,先按上下键停止进入,然后选择你要登陆的系统按e,将linux16那行从末尾删除至ro,从ro改变为rw rd.break,再按ctrl+x进入修改界面,然后直接修改密码,完成后两次exit退出重新登陆即可.
开机启动级别被修改
reboot后启动不了,进入登陆选择界面时,先按上下键停止进入,然后选择你要登陆的系统按e,将linux16那行末尾添加数字5.表示以图形化界面登陆
进入虚拟机后,重新链接/etc/systemd/system下的default.target文件为图形化,在下次重启后恢复正常
或者进入登陆选择界面时,先按上下键停止进入,然后选择你要登陆的系统按e,将linux16那行从末尾删除至ro,从ro改变为rw rd.break,再按ctrl+x进入修改界面,查看开机级别,并删除错误的,重新恢复正确的开机级别,两次exit退出即可恢复
注意:
/etc/systemd/system/multi-user.target.wants文件为系统中能开机自己启动的服务
linux parted磁盘分区
通常我们用的比较多的一般都是fdisk工具来进行分区,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大;而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘。但是现在的磁盘空间很多都已经是远远大于2T了,甚至达到2.5T和3T,那要怎么办能,有两个方法,其一是通过卷管理来实现,其二就是通过Parted工具来实现对GPT磁盘进行分区操作。
MBR分区格式:最大支持2TB的磁盘
GPT分区格式:最大支持18EB
fdisk -l 查看/dev/vdb变为了gpt类型
使用fdisk /dev/vdb命令,发现在创建分区时,不存在4个主分区的选择