1、开机流程
(1)centos6的启动流程
内核引导:
当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。
运行init
init进程是指系统所有的进程起点,没有这个进程,系统中任何进程都不会启动
init程序首先是需要读取配置文件/etc/inittab。
运行级别
许多程序需要开机启动,在windows 家做 "服务",在linux叫做 ‘守护进程’。不同的场合需要启动不同的程序,比如用服务器时,需要启动Apache,用作桌面就不需要了。linux允许在不同的场合,分配不同的开机启动流程,就叫做 ‘运行级别’。启动时根据 ‘运行级别’ 确认运行的程序
centos启动流程完整的流程就是:
(2)centos7启动流程
简单说就是首先按下电源--->然后就是开机自检(BIOS)-->然后进入(MBR)引导--->然后进入(GRUB)菜单-->然后进入配置文件,并行启动服务--->最后就进入login界面。详细流程如下
(硬件启动centos6和centos7是一样的)
2、cntos6和centos7的区别
命令 | centos6 | centos7 |
---|---|---|
ifconfig | 有 | 有 yum install -y net-tools |
rouet | 有 | 有 yum install -y net-tools |
ntpd服务和ntpdate命令 | 有 | 有 yum install ntp ntpdate |
cat/etc/isue | 有版本号 | 无信息只能查看cat/etc/redhat-release |
setup | 能更改网络配置 | setup祛除了防火墙和网络配置,通过安装yum install Network Manager-tui -y nmtui 命令取代了setup 中的网络配置 |
时区和时间设置 | /etc/sysconfig/ciok等文件 | timedatectl set-timezone Asia/Shanghai timedatectl stayus |
语言等设置 | locale -a | localectl staeus |
服务管理 | chkonfig /etc/ini.d/服务 | systemctl |
python | 2.6 | 2.7 |
kernel | 2.6 | 3.10 |
网卡 | etho | 成为了可预见性的命令规则 |
文件系统 | ext4 | xfs |
dig nslookup命令 | 有 | 有yum install bind-utils -y |
主机名 | cat/etc/sysconfig/network | cat/hostname |
服务的管理和控制 | sysvinit | system systemctl是最主要的工具。它融合service和chkonfig的功能于一体。 |
防火墙 | iptables | 被firewall取代 |
启动级别 | /etc/inittab | 不在使用了 |
开机执行文件/etc/rc.local | 可放置开机要执行的脚本文件 | 默认这个文件没有执行权限 x (官方推荐不使用这个文件(自己写服务),但是你可以加+x继续使用。) |
内核参数配置文件 | /etc/sysctl.conf | /usr/lib/sysctl.d/00-system.conf和/etc/sysctl.d/<name>.conf |
init关机重启命令 | init 0 关机 | init 0 关机 |
切换等级 | 切回单用户模式 init 0 | init 0 systemctl emergency systemctl isolate runlevel1.target |
3、运行级别
centos6
级别 | 含义 |
---|---|
0 | 表示关机 |
1 | 表示单用户模式 |
2 | 暂未使用 |
3 | 表示字符界面(黑框) |
4 | 暂未使用 |
5 | 表示图形界面 |
6 | 表示重启 |
总结: | 0 6 关机 重启 |
3 5 | 字符 图形 |
2 4 | 没有使用 |
1 | 单用户 |
1、临时性的操作
[root@yangdan ~]# runlevel 查看级别
N 3
N 表示上一次是什么级别
3 表示当前运行级别
[root@yangdan ~]# init 3 切换到3级别上
永久操作就要进入配置文件/etc/inittab修改即可
centos7
级别 | 含义 |
---|---|
0 | 表示关机 |
1 | 表示单用户模式 |
2 | 暂未使用 |
3 | 表示字符界面(黑框) |
4 | 暂未使用 |
5 | 表示图形界面 |
6 | 表示重启 |
总结: | 0 6 关机 重启 |
3 5 | 字符 图形 |
2 4 | 没有使用 |
1 | 单用户 |
(1)什么是运行级别
运行级别就是操作系统当前正在运行的功能级别
System V init运行级别 | systemd目标名称 | 作用 |
---|---|---|
0 | runlevel0.target,poweroff.target | 关机 |
1 | runlevel1.target.resue.target | 单用户模式 |
2 | runlevel2.target,multi-user.target | |
3 | runlevel3.target,mlit-user.target | 多用户的文本界面 |
4 | runlevel4.target,mulit-user.target | |
5 | runlevel5.target,graphical.target | 多用户的图形界面 |
6 | runlevel6.target,rebot.target | 重启 |
[root@yangdan ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3(看这两个就好)
# graphical.target: analogous to runlevel 5(同上)
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
1、查看当前运行级别
[root@yangdan ~]# systemctl get-default
multi-user.target
2、修改系统下次启动的运行级别
[root@yangdan ~]# systemctl get-default multi-user.target
(2) systemd的由来
init有两个缺点:1、启动时间长,init进程是串行启动,只有前一个进程启动完,才会启动下一进程
2、启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自情况,脚本多复杂
(3)systemd的优势
1、最新系统都采用systemd 管理(RedHat7、CentOS7、Ubuntu15等)
2、CentOS7支持开机并启动服务,显著提高开机启动效率
3、CentOS7关机只关闭正在运行的服务,而CentOS6全部关闭一次
4、CentOS7服务的启动与停止不再使用脚本进行管理,也就是/etc/init.d下不在有脚本
5、CentOS7使用systemd解决原有模式缺陷
(4)systemd相关配置文件
/usr/lib/systemd/system/ 类似CentOS6系统的启动脚本
/etc/systemd/sysytem/ 类似CentOS6系统 的/etc/rc.d/rcN.d、
/etc/systemd/system/mulit-user.target.wants/
systemctl命令 | 作用 |
---|---|
systemctl starl 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 croud.servre | 取消禁止服务运行 |
当使用systemctl启动一个守护进程后,可以通过systemctl xtatus 查看守护进程状态
状态 | 描述 |
---|---|
loaded | 服务单元的配置文件已经被处理 |
active(running) | 服务持续运行 |
active(exited) | 服务成功完成一次配置 |
active(waiting) | 服务已经运行但在等待某个事件 |
inactive | 服务没有在运行 |
enabled | 服务设定为开机运行 |
disabled | 服务设定为开机不运行 |
static | 服务开机不启动,但可以被其他服务调用启动 |
[root@yangdan ~]# 关机
shutdown -h now
poweroff
halt init 0
systemctl poweroff
[root@yangdan ~]# 重启
reboot
shutdown -r now
init 6
systemctl reboot
4单元模式
在使用Linux系统中,维护人员经常会碰到一个问题,就是在拥有root账号权限和密码的用户中,总是会出现忘记root密码的情况。
遇到这种情况,一般情况下,维护人员就会通过最常用的方法进行root密码重置,那就是单用户模式。
其次,单用户最突出且实用的一个好处就是:可以无密码登录,所以,在忘记密码时,可以进入单用户模式修改登录密码。
先重启系统
方法一:
在Linux系统启动 内核启动顺序选择界面(如下图倒计时的界面时) 按键盘任意键 让Linux引导启动停留内核选择阶段通过上下键(任意按键也可以的)让Linux引导启动停留内核选择阶段。
在上一个界面 计时 时按任意按键便可进入如下图界面,根据提示 键入小写字母e,进入下一步
images.jianshu.io/upload_images/18905180-af1dbf87bfd5f690.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
进入如下图界面后,选择kernel 开头这项(第二个)按下按键e,进入下一步
进入后会显示如下图这个界面 如图输入空格single后 按回车 编辑完毕
编辑完后回到第二步界面,直接输入b重新引导系统,系统重启后 会直接进入root用户模式下,在此模式下你就可以使用root功能的东西了
如上一步骤输入b后便重启系统 如下图所示 等待一会之后 就会进入单用户模式
进入单用户模式了 输入 passwd就可以更改密码了,然后就可以直接用passwd命令修改root
以上操作便是进入单用户模式下修改root密码,解决root密码忘记以及root用户被锁等需要root权限执行而root账户无法使用的问题。
方法二:
先重启系统
在Linux系统启动 内核启动顺序选择界面(如下图倒计时的界面时) 按键盘任意键 让Linux引导启动停留内核选择阶段通过上下键(任意按键也可以的)让Linux引导启动停留内核选择阶段。
在如下图界面键入字母 a
如下图 输入 (空格)1 回车 即可直接进入单用户模式
如上图输入完后 回车后等待一会 即可进入单用户模式
进入单用户模式一般是用于修改密码 修改完大部分人都会关机然后重启
这里有个便捷的方法 修改完密码后 直接按下快捷键ctrl+d 即可立即启动系统