目录
一、Linux的操作系统引导过程
1.开机自检(BIOS):
是一个小程序,开机之后对CPU、内存、显卡等设备进行初步的检测。
小结:检测出开机时第一个能够引导系统的设备,比如 硬盘、光驱、U盘
2.MBR引导:
当从本机硬盘中启动系统时,首先把第一扇区的MBR中设置,将系统控制权传递给包含操作系统引导文件的分区;根据MBR记录的引导信息调用启动菜单。
小结:运行放在MBR扇区中的启动GRUB引导程序
3.GRUB菜单:
是系统引导器的程序。系统控制权传递给GRUB后会显示启动菜单为用户,根据选项加载Linux内核文件。
小结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg 来获取内核和镜像文件系统的设置和路径位置。
4.加载内核:
Linux内核是已经编译好的二进制文件,用于资源的分配和调度。内核在接过系统控制权后会掌握Linux系统的整个运行过程。 Centos7中默认的内核位置是在/boot/vmlinuz-3.10.0-514.el7.x86_64
小结:把内核和镜像文件加载到内存当中
5.init进程初始化:
Linux内核首先将系统中的/sbin/init 程序加载到内存中运行,init 进程完成整个系统初始化
小结:加载硬件驱动程序,内核把init进程加载到内存中运行
6.init进程
是Linux内核加载运行的程序
init是系统的第一个进程
init进程PID号为1
7.systemd
是Linux系统的一种init软件
CentOS7采用全新的Systemd启动方式,取代传统的SysVinit
CentOS中运行的第一个init进程是/lib/systemd/systemd
systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进
程,从而提高系统启动速度。
7.1systemd 单元类型
7.2运行级别所对应的systemd目标
二、服务控制及切换运行级别
1.系统服务控制
systemctl 控制类型 服务名称
类型 | 说明 |
start | 启动 |
stop | 停止 |
restart | 重启 |
reloud | 重新加载 |
status | 查看服务状态 |
2.Linux的运行级别
2.1 查看级别的命令
2.1.1runlevel 查看切换前的运行级别和当前运行级别
N的意思是上一次的运行级别,5是当前的运行级别
2.1.2 systemctl 查看当前级别
graphical.target 相当于级别5 表示当前为视图模式
2.2 临时切换运行级别和查看级别
2.2.1 init 命令
init + 对于的数字
init 0 systemctl isolate poweroff. target /systemctl poweroff 关机
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 /systemctl reboot 重启
2.2.2 systemctl 命令
①systemctl get-default 查看当前系统运行级别
②systemctl set-default + 需要设置得级别 设置级别
③systemctl poweroff 关机
④systemctl reboot 重启
⑤systemctl start+服务名 启动服务
⑥systemctl stop+服务名 关闭服务
⑦systemctl status+服务名 查看服务的运行状态
⑧systemctl is-active +服务名字 查看服务是否运行
2.2.2.1 systemctl 命令设置开机自启
systemctl is-enabled +服务名 查看服务开机是否自启
systemctl enable+服务名 设置某个服务开机自启
systemctl disable+服务名 关闭某个服务开机自启
systemctl list-unit-files 查看所有服务开机自启的状态
2.3 chkconfig 命令(设置开机自启)
此命令用于编辑安装后的服务
chkconfig --list 服务名 查看服务状态
chkconfig --add 服务名 添加服务到服务列表
chkconfig --level 级别 +服务 on/off 设置服务级别是否开机自启(on表示自启)
2.4 ntsysv命令(设置开机自启)
上图带*的表示开机时会自动启动,如果你想要自动启动就选则哪个服务
此命令提供了一个可视化窗口能方便
2.5 设置永久运行级别
in -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
或者 systemctl set -default +所对应设置的级别
2.6永久修改主机名
hostnamectl set-hostname 新名字
2.7查看主机名状态
hostnamectl status 主机名
2.8设置系统语言成中文
localectl set-locale LANG=zh_CN.utf8
三、生产环境中遇到的故障
1.MBR扇区故障
MBR位于第一块硬盘/dev/sda的第一个物理扇区处一共512字节。
通常故障原因:病毒和木马的破坏、不正确的分区操作、磁盘读写错误
解决办法:
①创建一个新的硬盘,并且格式化在挂在到新的目录中
mkdir /backup
mount /dev/sdb1 /backup
②备份MBR扇区数据到你所创建的硬盘中
dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1
③进入引导界面进入急救模式,从备份文件中恢复MBR 扇区数据先加载好光盘镜像,重启操作系
统,当出现安装向导界面时,选择“Troubleshooting”选项,再选择“Rescue a CentOS Linux
system”选项,进入急救模式选择“1”选择Continue并按 Enter 键继续再次按 Enter 键后将进入带“
sh-4.2#”提示符的 Bash Shell 环境中
在above 下输入 1
最后exit 退出后重启
2.GRUB引导故障
MBR中的GRUB引导程序遭到破坏 /boot/grub2/grub.cfg 中文件丢失或者配置错误
解决思路:
①进入急救模式选择Troubleshooting
②在选择Rescue a Centos system
③在最后一行上输入1
④重新配置文件
3.root 密码忘记
解决方法:加入急救模式 进行操作
sh-4.2#chroot/mnt/sysimage
#重设root用户密码
bash-4.2#passwd root
总结
linux的系统引导过程:开机自检 、MBR引导、GRUB菜单、加载内核、init进程初始化
进行服务级别的切换有 init 、systemctl 的命令操作
开机自启的操作可以使用 ntsysv 和 systemctl 命令进行操作