1.linux启动流程流程
centos6 : 内核引导 运行init 系统初始化 建立终端 用户登录系统
上面为centos 7 的启动流程
2.运行级别:就是操作系统当前正在运行的功能级别
System V init运行级别systemd目标名称作用
0runlevel0.target, poweroff.target关机
1runlevel1.target, rescue.target单用户模式
2runlevel2.target, multi-user.target
3runlevel3.target, multi-user.target多用户的文本界面
4runlevel4.target, multi-user.target
5runlevel5.target, graphical.target多用户的图形界面
6runlevel6.target, reboot.target重启
如何调整系统启动的运行级别?systemd使用targets而不是runlevels 默认情况下有俩个主要目标
multi-user.target:类似于运行级别3
graphical.target: 类似于运行级别5
查看当前系统默认的运行级别
root@student ~]# systemctl get-default
要设置默认目标 请输入命令运行
root@student ~]# systemctl set-default TARGET.target
3..systemd的由来Linux一直以来都是采用init进程作为祖宗进程,但是init有两个缺点:1、启动时间长。Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。2、启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自的情况,这会让脚本多而复杂。Centos5 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系。Centos6 相对启动速度有所改进。有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动。Centos7 所有进程无论有无依赖关系则都是并行启动(当然很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动。)
2.什么是systemdsystemd即为system daemon守护进程,systemd主要解决上文的问题而诞生,systemd的目标是,为系统的启动和管理提供一套完整的解决方案。
3.systemd的优势 1、最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15等)2、Centos7支持开机并行启动服务,显著提高开机启动效率。3、Centos7关机只关闭正在运行的服务,而Centos6全部都关闭一次。4、Centos7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。5、Centos7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。
3.systemd相关配置文件/usr/lib/systemd/system/ #类似Centos6系统的启动脚本,/etc/init.d//etc/systemd/system/ #类似Centos6系统的/etc/rc.d/rcN.d//etc/systemd/system/multi-user.target.wants/
4.systemd管理服务相关命令systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令
systemctl命令作用
systemctl start crond.service启动服务
systemctl stop crond.service停止服务
systemctl restart crond.service重启服务
systemctl reload crond.service重新加载配置
systemctl status crond.servre查看服务运行状态
systemctl is-active sshd.service查看服务是否在运行中
systemctl mask crond.servre禁止服务运行
systemctl unmask crond.servre取消禁止服务运行
当我们使用systemctl启动一个守护进程后,可以通过sysytemctl status查看此守护进程的状态
状态描述
loaded服务单元的配置文件已经被处理
active(running)服务持续运行
active(exited)服务成功完成一次的配置
active(waiting)服务已经运行但在等待某个事件
inactive服务没有在运行
enabled服务设定为开机运行
disabled服务设定为开机不运行
static服务开机不启动,但可以被其他服务调用启动
systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令
systemctl命令(7系统)作用
systemctl enable crond.service开机自动启动
systemctl disable crond.service开机不自动启动
systemctl list-unit-files查看各个级别下服务的启动与禁用
systemctl is-enabled crond.service查看特定服务是否为开机自启动
systemctl daemon-reload创建新服务文件需要重载变更
CentOS7系统, 管理员可以使用 systemctl 命令来管理服务器启动与停止
开机 systemctl poweroff 重启 systemctl reboot 重启
单用户模式;
能正常进入系统 配置文件错误导致无法启动 忘记root密码 快照 | 单用户修改
忘记root密码 进入单用户模式 直接修改密码选内核的时候,摁e进行一个黑框找到内核加载 的内容 在后面添加 在linux16这行的后面添加enforcing=0 init=/bin/bash,然后按下Ctrl + X组合键来运行修改过的内核程序第3步:大约5秒过后,进入到系统的单用户模式,依次输入命令,进入后默认对系统是只读 因为要修改密码 驱动/etc/下文件 所以改为 读写权限mount -o rw,remount / 默认是只读,重新挂载为读写 使用非交互方式修改密码 echo “132”| passwd --stdin root执行 exec /sbin/init 重新引导系统等待系统重启操作完毕,然后就可以使用新密码来登录Linux系
救援模式:
没有内核文件 只能救援模式将/boot/(存放系统启用相关的文件)下的linux内核文件移动到别的目录下 /tmp 重启进不来 塞光盘 重启 调整启动顺序 打开启动时的固件 就是bios 在 boot下 +号 将 cd 移上去 调整顺序 f10 保存 选择救救援模式 然后进入选择第二个救援模式 因为系统起不来,所以选择第二个 然后 输入 1 continue 继续 进入的是光盘的系统然后chroot /mnt/sysimage 执行然后执行最上面拷贝移动的操作 mv /tmp/tab补全 /boot/ 下然后exit reboot 重启进入troubleshooting进入boot from local drive