文章目录
Liunx操作系统的引导过程
1:开机BIOS自检,加载硬盘。
2:读取MBR,进行MBR引导。
3:grub引导菜单(Boot Loader)。
4:加载内核kernel。
5:启动init进程,依据inittab文件设定运行级别
6:init进程,执行rc.sysinit文件。
7:启动内核模块,执行不同级别的脚本程序。
8:执行/etc/rc.d/rc.local
9:启动mingetty,进入系统登陆界面:开机自检,MBR引导,GRUB菜单, 加载linux内核,init进程初始化
引导过程
引导过程能以两种方式之一初始化。其一,如果系统处于关机状态,那么打开电源按钮将开启系统引导过程。其二,如果操作系统已经运行在一个本地用户(该用户可以是 root 或其他非特权用户),那么用户可以借助图形界面或命令行界面通过编程方式发起一个重启操作,从而触发系统引导过程。重启包括了一个关机和重新开始的操作。
Blos自检
在 1981 年,IBM 设计的第一台个人电脑中,BIOS 被设计为用来初始化硬件组件。POST 作为 BIOS 的组成部分,用于检验电脑硬件基本功能是否正常。如果 POST 失败,那么这个电脑就不能使用,引导过程也将就此中断。
BIOS 上电自检确认硬件的基本功能正常,然后产生一个 BIOS 中断 INT 13H,该中断指向某个接入的可引导设备的引导扇区。它所找到的包含有效的引导记录的第一个引导扇区将被装载到内存中,并且控制权也将从引导扇区转移到此段代码。
grub引导菜单(Boot Loader)
GRUB2 全称是 GRand Unified BootLoader,Version 2(第二版大一统引导装载程序)。它是目前流行的大部分 Linux 发行版本的主要引导加载程序。GRUB2 是一个用于计算机寻找操作系统内核并加载其到内存的智能程序。由于 GRUB 这个单词比 GRUB2 更易于书写和阅读,在下文中,除特殊指明以外,GRUB 将代指 GRUB2。
内核启动
内核文件都是以一种自解压的压缩格式存储以节省空间,它与一个初始化的内存映像和存储设备映射表都存储于 /boot 目录之下。
在选定的内核加载到内存中并开始执行后,在其进行任何工作之前,内核文件首先必须从压缩格式解压自身。一旦内核自解压完成,则加载 systemd 进程(其是老式 System V 系统的 init 程序的替代品),并转移控制权到 systemd
启动init进程,依据inittab文件设定运行级别
内核加载到内存中并开始执行后,在其进行任何工作之前,内核文件首先必须从压缩格式解压自身。一旦内核自解压完成,则加载 systemd 进程(其是老式 System V 系统的 init 程序的替代品),并转移控制权到 systemd。
由Linux内核加载运行 /sbin/init程序
是系统第一个进程
PID(进程标记)号永远是1
SystemV 运行级别 | systemd 目标态 | systemd 目标态别名 | 描述 |
---|---|---|---|
halt.target | 停止系统运行但不切断电源。 | ||
0 | poweroff.target | runlevel0.target | 停止系统运行并切断电源. |
S | emergency.target | 单用户模式,没有服务进程运行,文件系统也没挂载。这是一个最基本的运行级别,仅在主控制台上提供一个 shell 用于用户与系统进行交互。 | |
1 | rescue.target | runlevel1.target | 挂载了文件系统,仅运行了最基本的服务进程的基本系统,并在主控制台启动了一个 shell 访问入口用于诊断。 |
2 | runlevel2.target | 多用户,没有挂载 NFS 文件系统,但是所有的非图形界面的服务进程已经运行。 | |
3 | multi-user.target | runlevel3.target | 所有服务都已运行,但只支持命令行接口访问。 |
4 | runlevel4.target | 未使用。 | |
5 | graphical.target | runlevel5.target | 多用户,且支持图形界面接口。 |
6 | reboot.target | runlevel6.target | 重启。 |
系统初始化进程
init进程
由linux内核加载运行/sbin.inint程序
Init 进程是系统第一进程
init进程的PID号永远为1
systemd进程
ystemd 是所有进程的父进程。它负责将 Linux 主机带到一个用户可操作状态(可以执行功能任务)
systemd是linux操作系统的一个init软件
centos7中采用全新的systemd启动方式,取代了传统的sysvinit
centos7中运行第一个init进程是/ilb/systrmd/sysytemd
运行级别对应systemd目标
########当MBR扇区出现故障如何操作#####
1创建磁盘
2格式化磁盘
3.挂载磁盘到opt下
4备份MBR扇区
5模拟MBR故障
6进入光盘
7把磁盘备份到mnt下
8把MBR扇区备份到SDA中
创建一个30G的硬盘
mkfs -t ext4 /dev/sdb ###格式化sdb
挂载mount /dev/sdb /opt
1、备份MBR扇区数据
dd if=/dev/sda of=/opt/mbr.bak bs=512 count=1 ,磁盘字节
2、模拟MBR扇区故障
dd if=/dev/zero of=/dev/sda bs=512 count=1
init 6重启
F2进入系统
1.装入光盘,在光盘引导界面选择troubleshooting:检修
2、进入troubleshooting菜单 选择Rescue a centos system拯救centos系统
3、进入引导可以按回车,或者等待
按1 在按会车进入sh-4.2#继续
4、mount /dev/sdb1 /mnt ## 将备份sdb备份的文件挂到mnt下 然后进去看下是否有mbr.bak
4、dd if=/mnt/sda.mbr.bak of=/dev/sda
init 6 重启
#####模拟centos 7.4 grub修复####
cd /boot/grub2 ###进入grub2
mv grub.cfg grub.cfg.bak
重新启动
3、进入引导可以按回车,或者等待
按1 在按会车进入sh-4.2#
4、进入救援模式后切根
chroot /mnt/sysimage/
5、使用 grub2-install 命令修复grub
grub2-install /dev/sda
6、修复grub.cfg配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
7、重启
exit
reboot ###主要改启动项,否认还是进光盘模式
#######忘记root密码#####
随便更一下密码
1.装入光盘,在光盘引导界面选择troubleshooting:
3、进入引导可以按回车,或者等待
按1 在按会车进入sh-4.2
4、进入救援模式后切根
chroot /mnt/sysimage/
、重启
exit
reboot ###主要改启动项,否认还是进光盘模式
系统服务—使用systemd管理
systemd不是一个单独的命令,而是一个集合体
systemd是维持整个Linux系统的始祖
主要目的就是为了将服务开启
常用控制类型
start 启动
stop 停止
restart 重新启动 '//重新启动,会中断服务,此服务的PID值会改变'
reload 重新加载 '//重新加载配置文件不会中断服务,此服务的PID值会改变'
status 查看服务状态
例如:
[root@localhost ~]# systemctl start httpd 启动httpd服务
[root@localhost ~]# systemctl stop httpd 停止httpd服务
[root@localhost ~]# systemctl restart httpd 重新启动httpd服务
[root@localhost ~]# systemctl reload httpd 重新加载httpd服务配置文件
Linux运行级别
runlevel命令:查看切换运行级别与当前运行级别
[root@localhost ~]# runlevel
N 3
N 是上一次运行的级别,3是这一次运行的级别,若从init 3 切换到 init 5 ,在init3中输入runlevel命令
init切换运行命令
init命令
0 关机状态,使用该级别时会关闭主机
1 单用户模式,不需要密码验证即可登录系统,多用于系统维护
2 用户定义/域特定运行级别,默认等同于3
3 字符界面的完整用户模式,大多数服务器主机运行在此级别
4 用户定义/域特定运行级别,默认等同于3
5 图形界面的多用户模式,提供了图形桌面操作环境
6 重新启动,使用该级别时将会重启主
优化启动过程(开机自启)
使用ntsysv命令:提供交互仿图像界面,便于管理多个服务
按tab键可以确认退出或取消,空格可以加米子号选择开启或关闭【*】表示开启 【】表示关闭
systemctl 工具
不提供交互式,可视化窗口
[root@localhost ~]# systemctl disable httpd 将httpd服务设置关闭开机自启
[root@localhost ~]# systemctl enable httpd 将httpd服务设置开机自启
面,便于管理多个服务
[外链图片转存中…(img-6ds6ipsO-1593762222749)]
按tab键可以确认退出或取消,空格可以加米子号选择开启或关闭【*】表示开启 【】表示关闭
systemctl 工具
不提供交互式,可视化窗口
[外链图片转存中…(img-Fg9gf8go-1593762222752)]
[root@localhost ~]# systemctl disable httpd 将httpd服务设置关闭开机自启
[root@localhost ~]# systemctl enable httpd 将httpd服务设置开机自启