Linux系统引导过程和故障排错
一.引导过程
1.开机自检:BIOS(基本输入输出系统)
控制CUP虚拟化开关,系统的引导顺序,主机硬件时间。
BIOS需要BIOS电池来维持供电,保证数据的存放。
BIOS 电池放电会恢复出厂设置。
特点:
(1.)加电自检 失败:通过屏幕或蜂鸣报警
(2.)硬件初始化
(3.)引导操作系统(BOOT)
2.MBR引导
主机开机后,首先根据硬盘第一个扇区中的MBR(主引导程序)将系统控制权传递给含操作系统引导文件的分区,读取主引导记录表的512字节,得以调用启动菜单(GRUB)
3.GRUB菜单
系统控制权传递给GRUB后,将会显示启动菜单给用户选择,进而加载Linux内核
4.加载Linux内核
介于各种硬件资源和系统进程之间,负责资源分配 和调度内核接到控制权后掌控整个Linux运行过程
5.init进程初始化
由Linux内核加载运行/sbin/init程序
系统中的第一个进程,控制Linux运行级别
6.Linux运行级别(censot7以上版本会以systemd替换掉init)
0:poweroff.target 关机状态,使用该级别时会关闭主机
1:rescue.target 单用户模式,不使用密码即可登录,多用于系统维护
2:multi-user.target 用户定义运行级别,默认等于3,不支持网络
3:multi-user.target 字符界面的完整多用户模式,多用于服务器运行级别
4:multi-user.target 用户定义运行级别,默认等于3,不常用
5:graphical.target 图形界面的多用户模式,提供图形桌面操作环境
6:reboot'.target 重新启动,使用该级别会重启主机
7.系统服务控制
格式:systemctl 控制类型 服务名称 [.service]
控制类型:start 启动类型
stop 停止类型
restart 重启类型
reload 重新加载配置
8.查看系统运行级别(target)
runlevel命令:
前级别(N表示无,S表示单用户) 当前级别
9.查看系统默认运行级别(图形界面)
格式:systemctl get-default
ln -sf -s:创建软连接 -f:强制覆盖
10.开机优化工具
格式:ntsysv --level 级别 按空格键进行修改
systemctl 1.enable:启用
2.disable:禁用
systemctl list-units --type=service :查看开机自启所有启动项
chkconfig --list 某个启动项 :查看该启动项
二、故障排错
1.MBR扇区故障(黑屏)
原因:1.分区不规范 2.病毒攻击
解决:备份分区表数据,存放在别的磁盘中。进急救模式进行数据还原
步骤:
1.在另外的磁盘中创建大小约1G的分区,格式化并将/devsdb1/挂载到文件/back下
[root@localhost ~]# mount /dev/sdb5 /back/
2.将主引导记录表的512字节拷贝到新分区的目录下的文件 /back/sda.mbr.bak
dd if=/dev/sda of=/back/sda.mbr.bak bs=512 count=1
3.模拟破坏主引导记录表
dd if=/dev/zero of=/dev/sda bs=512 count=1
4.重启进入急救模式
reboot
5.创建文件夹,将/dev/sdb5挂载到该目录下
6.将/back/sda.mbr.bak/中的主引导记录前512字节还原到/dev/sda中
dd if=/back/ of=/dev/sda
7.重启 :reboot
2.RGUB引导故障(停留在grub>界面)
grub.cfg文件损坏:
1.进行备份,将文件拷贝到/tmp下
cp /boot/grub2>grub.cfg /tmp
2.模拟文件丢失,并重启
rm /boot/grub2/grub.cfg
reboot(会显示故障界面)
3.关机重启进入BIOS设置,设置boot选项为光驱第一启动盘
4.进入急救模式,切换到硬盘目录下
chroot /mnt/sysimage
5.将事先备份好的grub文件还原到原目录下
6.进入BIOS设置将硬盘改为第一启动盘后重启即可
MBR引导程序损坏导致的GRUB引导故障:
1.在根目录下创建文件/beifen,将/dev/sdb1挂载到该目录下
[root@localhost ~]# mkdir /beifen
[root@localhost ~]# mount /dev/sdb1 /beifen
2.将/dev/sda中的前446字节备份到文件夹/beifen中
3.模拟MBR引导程序损坏
4.重启
reboot
5.进入急救模式,切换到硬盘目录下
6.将/beifen中的引导数据还原到/dev/sda中
7.退出重启
exit reboot
若没有grub备份,则需要重建grub引导程序
1.在没有备份的前提下清空grub前446字节数据
2.重启,调整光驱启动顺序后进入急救模式切换到硬盘目录
3.重建grub引导程序
grub2-install /dev/sda
4.sync确认后退出重启
sync
exit
reboot
3.修改root用户密码
(1.)进入急救模式,切换到硬盘模式
chroot /mnt/sysimage
输入 root passwd 更改root密码
(2.)在急救模式中使用文本编辑器
vim /etc/shadow 将第一行的root密码删除即可
4./boot 误删除修复
1.进入急救模式切换到硬盘目录下
chroot /mnt/sysimage
2.在/media下创建子目录cdrom
mkdir /media/cdrom
3.将硬盘下的cdrom挂载到子目录下
mount /dev/cdrom /media/cdrom
4.强制安装boot内核
rpm -ivh /media/cdrom/Pachages/kernel-3.10…………--force(强制条件)
5.查看/boot后会恢复大部分内容
ls /boot
6.创建grub2文件
grub2-install /dev/sda
7.创建grub.cfg文件
grub2-mkconfig
5.修复文件系统
xfs_repair /dev/... 针对xfs系统
fsck -y -t ext4 /dev/... 针对ext4系统
6.磁盘资源耗尽故障
原因:固定的inode数量被用户创建的文件占用完,剩余容量空间不可用
(1.)查看文件是否重要,若重要需拷贝后进行格式化,调整inode数量后再进行文件恢复
(2.)若文件不重要则直接清理进行格式化,再调整inode数量(一般情况)
7.磁盘坏道损坏修复
使用badblocks -sv /dev/... 命令进行坏道扫描