目录

一.linux操作系统引导过程

二.排除启动类故障

三.服务控制及切换运行级别

四.优化启动过程


一.linux操作系统引导过程

引导过程与服务控制_重启

1.开机自检

服务器主机开机以后,将根据主板BIoS中的设置对CPU (Central Processing Unit,中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。

总结:检测出第一个能够引导系统的设备,比如硬盘或光驱、u盘

2.MBR引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中 MBR (Master Boot Record,主引导记录〉的设置,将系统控制权传递给包含操作系统引导文件的分区,或者直接根据MBR 记录中的引导信息调用启动菜单(如GRUB) 。

总结:运行放在MBR扇区里的启动GRUB引导程序

3.GRUB菜单

对于Linux操作系统来说,GRUB (GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB 以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,centos 7 采用的是 GRUB2启动引导器(CentOS6 是GRUB)。

总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置

4.加载Linux内核

Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个 Linux操作系统的运行过程。在centos 系统中,默认的内核文件位于"/boot/vmlinuz-3.10.0-514.el7.x86_64"。

总结:把内核和镜像文件系统加载到内存中

5.init进程初始化

为了完成进一步的系统引导过程,Linux内核首先将系统中的"/sbin/init”程序加载到内存中运行(运行中的程序称为进程)), init进程负责完成一系列的系统初始化过程,最后等待用户进行登录systemed

总结:加载硬件驱动程序,内核把init进程加载到内存中运行

引导过程与服务控制_加载_02

引导过程与服务控制_加载_03

引导过程与服务控制_加载_04

   0系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的;

1单用户模式,root权限,用于系统维护,禁止远程登录(只能通过实机进去),该模式的进入方式百度操作即可;就像windows下的安全模式登录;(进入单用户模式的时候root不需要密码就可以登录,所以在此模式下可以修改root密码)

2多用户模式,没有NFS和网络支持;

3完整的多用户文本模式,有NFs和网络,登录后进入控制台命令行模式。

4系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电池用尽时,可以切换到这个模式来做一些设置;

5图形化模式,登录后进入图形GUI模式,x windows系;

6重启模式,默认运行级别不能设为6,否则不能正常启动。运行init6机器就会重启

二.排除启动类故障

(一).修复MBR扇区

引导过程与服务控制_加载_05

MBR位于第一块硬盘( /dev/sda)的第一一个物理扇区处,总共512字节

修复MBR扇区示例:

1.备份MBR扇[区数据到其它磁盘( / dev / sdb1)

mkdir / backup                      创建备份目录

mount /dev / sdb1 / backup            将备份服务器硬盘 挂载到备份目录

dd if=/dev/sda of=/ backup/mbr.bak bs=512 count=1  

将MBR数据 输入到 / backup/mbr.bak bs 文件内

    ​2. 模拟破坏MBR引导扇区

dd if=/dev/zero of=/dev/ sda bs=512 count=1  

重启  之前要关闭连接

    3.引导界面进入急救模式,从备份文件中恢复MBR扇区数据先加载好光盘镜像,重启操作系统,

重启后出现故障

恢复连接,重新启动

当出现安装向导界面时,选择"Troubleshooting"选项,

再选择"Rescue a Centos Linux system"选项,进入急救模式选择"1"选择continue并按Enter键继续

再次按Enter键后将进入带"sh-4.2#"提示符的Bash shell环境

sh-4.2# mkdir / backupdir        

sh-4.2#mount /dev / sdb1 / backupdir    #挂载带有备份文件的分区

sh-4.2# dd if=/ backupdir/mbr.bak of=/dev/sdaI#恢复备份数据.

sh-4.2#exit

#执行exit命令退出临时shell环境,系统将会自动重启

(二).修复GRUB引导故障

引导过程与服务控制_运行级别_06

方法一:手动输入引导命令(笨拙繁琐,不建议使用)

/ boot/grub/目录下的包是用于启动菜单的背景图片及样式

/ boot/grub2/grub.cfg      #GRUB配置文件

grub> insmod xfs      #加载指定的模块到内核

grub> lInux16 / vmlinuz-3.10.0-693.el7.x86_64

root=uuID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet

LANG=zh_ CN.UTF-8           #内核的名字及位置等信息.

grub> initrd16 /initramfs-3.10.0-693.e17.x86_64.img     #镜像系统文件

grub> boot              #引导boot

方法二:进入急救模式,恢复GRUB引导程序

MBR位于第一块硬盘( /dev / sda)的第一个物理扇区处,总共512字节,前446字节是主引导记录,分区表保存在NBR扇区中的第447-510字节中。

mkdir / bak

mount / dev / sdb1 / bak

dd if=/dev/sda of=/ bak/grub.bak bs=446 count=1

#模拟对MRB中的GRUB引导程序的破坏,但并不破坏分区表dd if= / dev / zero of-/dev /sda bs=446 count=1

#引导界面进入急救模式,从备份文件中恢复GRUB引导程序N

sh-4.2# mkdir / backupdir

sh-4.2#mount /dev / sdbl /backupdir

sh-4.2.dd if=/ backupdir/grub.bak of=/dev /sda

sh-4.2 #exit

方法三:引导界面进入急救模式,重建GRUB菜单配置文件

rm -rf/ boot/grub2/grub.cfg    创建故障后重启

#进入急救模式(重启是快速按下ESC或者输入exit 回车),加载光盘镜像,切换到系统根环境

sh-4.2# chroot /mnt/sysimage

#重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的MRB扇区,如果有多个分区可省略bash-4.2#grub2-install /dev / sda

#重新构建GRUB菜单的配置文件

bash-4.2#grub2-mkconfig -o /boot/grub2/grub.cfg#退出chroot环境,并重启

bash-4.2#exit

sh-4.2#reboot

(三).遗忘root用户密码

引导过程与服务控制_加载_07

方法一:进入急救模式,加载系统镜像,重启按exit 按c切换到系统根环境

sh-4.2#chroot/mnt/sysimage

#重设root用户密码

bash-4.2#passwd root

方法二:进入单用户模式修改root密码(无光盘镜像时使用)

1.重启开机按esc,第一行按e在启动GRUB菜单中选择编辑选项,按键"e”进入编辑;

⒉.编辑修改:大约在第16行找到"ro”将"ro”修改为" rw init=/sysroot/bin/bash ";

3.按ctrl+X重启,输入命令进入系统

sh-4.2#chroot /sysroot

4.字符集修改

#修改前可修改字符集:

sh-4.2#LANG=en_US.UFT-8    

重置root密码

sh-4.2# passwd root

#退出chroot环境,并重启

bash-4.2#exit  退出

sh-4.2# init 6  重启

三.服务控制及切换运行级别

引导过程与服务控制_重启_08

       systemctl status firewalld    查看防火墙服务状态

      systemctl start firewalld     启动防火墙服务

      systemctl reload [配置文件]

设置运行级别命令:

systemctl [ command指令][unit.target]

command参数:

get-default :       查看当前默认的target(运行级别)

set-default :       设置指定的target为默认的运行级别(设置永久运行级别)

isolate :          切换到指定的运行级别

systemctl get-default                   查看当前的运行级别

systemctl set-default multi-user.target     设置默认的运行级别为mulit-user

systemctl isolate multi-user.target        在不重启的情况下,切换到运行级别mulit-user下

systemctl isolate graphical.target         在不重启的情况下,切换到图形界面下

init 0=systemctl isolate poweroff.target

init 1=systemctl isolate rescue.target

init 3=systemctl isolate multi-user.target

init 5=systemctl isolate graphical.target图形

init 6=systemctl isolate reboot.target

chkconfig工具]

格式: chkconfig --list[服务名称]

chkconfig --add 服务名称

chkconfig --level级别列表服务名on/off

chkconfig --add httpd 将httpd添加到服务列表

chkconfig --level 35 httpd on   切换至3.或5 级别时 httpd自动开启

设置永久运行级别:

ln -sf  /lib/systemd/system/multi-user.target  /etc/systemd/system/default.target或

systemctl set -default multi-user.target

永久修改主机名

hostnamectl set-hostname newname

查看主机名的状态

hostnamectl status

设置系统语言为中文

localectl set-locale LANG=zh_ CN. utf8

查看当前系统使用的语言

localectl  status

四.优化启动过程

引导过程与服务控制_重启_09

上下键选择需要开启和关闭的服务。空格键选择开启和关闭,Tab键选择确认后回车

引导过程与服务控制_重启_10