一、引导流程
1、BIOS:BIOS是进本输入输出系统。服务器主机开机后,将根据主办BIOS只用的设置对CPU内存显卡,键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,检测失败会(1)通过显示器屏幕或(2)蜂鸣器报警,多时候会移交给本机硬盘。可存储硬件配置信息,独立电池供电。BIOS电池放电可以恢复出厂设置。
BIOS的功能:(1)加电自检(2)硬件初始化(3)引导操作系统(BOOT)
2、MBR引导:当从本机硬盘中启动程序时,首先根据硬盘第一个扇区MBR的设置,将系统控制权传递给包含操作系统引导文件的分区(/boot);或者直接根据MBR记录中的音带信息调用启动菜单。(GRUB)
3、GRUB菜单:对于Linux操作系统来说。GRUB是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB后,将会显示启动菜单给用户选择,并根据所选项加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,CentOS7采用的是GRUB2启动引导器。
4、加载Linux内核:Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌握整个Linux操作系统的运行过程。在CentOS系统中,默认的内核文件位于“/boot/VMLinuz-3.10.0.el7.x86_64”
5、init进程初始化:它是系统中的第一个进程,所有进程的父进程,PID永远为1。为了完成系统进一步的系统引导过程,Linux内核首先将系统先中的/sbin/init程序加载到内存中运行(运行中的程序称为进程),init进程负责完成系列的系统初始化进程,最后等待用户进行登录。
二、系统引导级别的查看及级别
1、runlevels:查看运行级别
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 :重新启动,使用该级别的即将会重启主机
2、切换级别:init 0/1/2/3/4/5/6
查看系统的默认运行级别:systemctl get-default
三、服务控制及优化启动
1、系统服务控制
sysytemctl+控制类型+服务名称
常用控制类型:start 启动
stop 停止
restart 重启
reload 先退出再重新运行,只是刷新配置文件,再重新加载配置
status 查看状态及相关信息
优化启动过程
2、ntsysv:提供一个交互式可视化窗口,可以再字符终端运行,便于集体管理多个服务
ntsysv --level 35(指定级别)
3、查看当前系统中已启用的所有系统服务
systemctl list-units --type=service
4、chkconfig:不提供交互式可视化窗口,管理单个服务效率更高
格式:chkconfig --list(全部服务)
chkconfig --list+服务名称(某一个服务)
chkconfig --level+级别列表+服务名 on|off (设置开机启用或禁用,不指定级别,默认2345)
四、修复MBR扇区故障
1、故障原因:病毒、木马等造成的破坏或者不正当分区操作、磁盘读写误操作
2、故障现象:找不到引导程序,启动中断或者无法加载操作系统,开机后黑屏
3、解决思路:应提前做好备份文件(因为MBR中保存了分区表信息等,必须把MBR备份到别的硬盘上,因为它无法读取当前的硬盘);以安装光盘引导进入急救模式;然后从备份文件中恢复。
操作:
硬盘分区:fdisk /dev/sdb
格式化:mkfs.ext4 /dev/sdb1
创建文件:mkdir /bakup
挂载:mount /dev/sdb1 /bakup
dd备份:dd if /dev/sda of=/bakup/sda.mbr.bak bs=512 count=1
覆盖:dd if=/dev/zero of=/dev/sda bs=512 count=1
重启:reboot
进入急救模式
创建文件:mkdir /lty
把之前的bakup挂载到创建的文件下:mount /dev/sdb1 /lty
dd复原:dd if=/lty/sda.mbr.bak of=/dev/sda
重新开机进入后先选第三项,之后选择第四项进入虚拟机。
五、修复GRUB引导故障
1、grub.conf文件丢失,引导配置有误
(1)模拟文件丢失,有备份
cp /boot/grub2/grub.cfg /tmp //备份到tmp下
rm -rf /boot/grub2/grub.cfg //模拟文件丢失
关机重启虚拟机进入固件模式,移到boot选项,把CD移动到第一行,按Fn+f10,保存退出
重新开机点击第三个选项后再点击第二个选项
输入命令:chroot /mnt/systimage //切换到硬盘目录下
cp /tmp/grub.cfg /boot/grub2 //把文件还原到boot下
exit(Ctrl+d)两次退出
重新开机进入后先选第三项,之后选择第四项进入虚拟机。
(2)文件丢失没有备份
cp /boot/grub2/grub.conf /tmp //备份到tmp下
rm -rf /boot/grub2/grub.conf //模拟文件丢失
关机重启虚拟机进入固件模式,移到boot选项,把CD移动到第一行,按Fn+f10,保存退出
重新开机点击第三个选项后再点击第二个选项
输入命令:chroot /mnt/systimage //切换到硬盘目录下
grub2-mkconfig > /boot/grub2/grub.cfg
exit(Ctrl+d)两次退出
重新开机进入后先选第三项,之后选择第四项进入虚拟机。
2、MBR中GRUB引导程序遭到破坏
dd if=/dev/zero of=/dev/sda bs=200 count=1 //模拟引导程序遭到破坏
重新开机点击第三个选项后再点击第二个选项
输入命令:chroot /mnt/systimage //切换到硬盘目录下
grub2-install /dev/sda
sync
sync
exit退出
六、/boot文件误删除
rm -rf /boot //模拟/boot文件误删除
重新开机点击第三个选项后再点击第二个选项
输入命令:chroot /mnt/systimage //切换到硬盘目录下
mkdir /media/cdrom //在media下创建一个新的文件
mount /dev/cdrom /media/cdrom //将/dev下的cdrom挂载到/media下
rpm -ivh /media/cdrom/Packages/kernel-3.10.0-229.e17...--force //加载内核,还原/boot里的大部分文件
grub2-install /dev/sda //将grub2安装到/sda下
grub2-mkconfig > /boot/grub2/grub.cfg //将grub2这个文件重定向到/boot/下
七、root密码修复
重启:reboot
进入急救模式
输入命令:chroot /mnt/systimage //切换到硬盘目录下
root passwd //直接改密码
输入新的密码即可
或者:vi /etc/shadown 把root:后面清空即可
八、文件系统修复
xfs_repair | fsck //扫盘
两个命令:xfs_repair /dev/sdb1
fsck -y -t ext4 /dev/sdb1
九、空间耗尽故障(可能是文件数量过多)
比如在/data下创建了{1..65525}个文件
mkdir /lty //创建一个新的文件
mv /data/* /lty //将/data下的文件先转移到新创建的文件下
umount /data //推出挂载
mkfs.ext4 -N 600000 /dev/sdb1 //重新格式化并指定文件数量
mount /dev/sdb1 /data //重新挂载
mv /lty/* /data //把之前的文件重新移回来
十、磁盘坏道故障
磁盘坏道分为:物理坏道和逻辑坏道
物理坏道:只能换硬盘
逻辑坏道:badblocks -sv /dev/sdb //扫描看看有没有坏道