开机启动


Centos6的安装

image-20240429144216212

# 检测镜像 选择跳过(skip)

image-20240429144407482

image-20240429144457562

image-20240429144623874

image-20240429144722534

image-20240429144758597

密码必须六位

image-20240429144826347

image-20240429145024492

# 选择自由分区 分为 boot(启动) swap(虚拟内存) /(根)三个分区

image-20240429145316014

# 选择最小化安装

image-20240429145414796

image-20240429145551321

image-20240429145659638

# 重启网卡需要在/etc/init.d/network restart

Centos6的启动顺序

内核引导

打开电源,BIOS加电自检 (VMware进bios在电源选项中的打开电源时进入固件)
检测硬件是否损坏:CPU 、内存、磁盘
读取/boot目录下的文件,加载启动文件,GRUB菜单
GRUB 菜单提供已安装系统的选项,如果是多系统,选择要进入的系统

运行init查看修改系统级别

# 在Cencos6中都是进程都是从init开始的。init才是爸爸
[root@cenos6 ~]# pstree
init─┬─auditd───{auditd}
     ├─crond
     ├─login───bash
     ├─master─┬─pickup
     │        └─qmgr
     ├─5*[mingetty]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd─┬─sshd─┬─bash
     │      │      └─sftp-server
     │      └─sshd─┬─bash───pstree
     │             └─sftp-server
     └─udevd───2*[udevd]
     
# init运行级别 在/etc/inittab中存储
[root@cenos6 ~]# cat /etc/inittab
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
id:3:initdefault:

## 中文翻译
0 级别 init 0   ----- 关机
1级别  init 1   ----- 单用户级别(用来恢复root用户密码)
2级别  init 2   ----- 多用户模式,无系统文件,无网络
3级别  init 3   ----- 完整的多用户模式,有系统文件,有网络
4级别  init 4   ----- 未被使用的运行级别
5级别  init 5   ----- 切换到图形化界面(没安装则无效)
6级别  init 6   ----- 重启


## 修改
[root@cenos6 ~]# vi /etc/inittab
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
id:3:initdefault:   ------------------      修改id后面的数字来对应上面的运行等级

查看系统运行级别runlevel

runlevel 用来查看系统运行级别  N代表上次运行的级别  3代表现在的级别
[root@cenos6 ~]# runlevel
N 3

image-20240429153641350

开机启动chkconfig

[root@cenos6 ~]# chkconfig 查看开机启动有那些进程  找到当前级别3 所对应的
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
ip6tables       0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
kdump           0:off   1:off   2:off   3:on    4:on    5:on    6:off
mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off

看开机启动顺序/etc/rc3.d/

# 文件存在/etc/rc3.d/目录下   S代表启动顺序   K代表关机顺序
[root@cenos6 ~]# ll /etc/rc3.d/
lrwxrwxrwx. 1 root root 19 Apr 29 22:54 K10saslauthd -> ../init.d/saslauthd
lrwxrwxrwx. 1 root root 21 Apr 29 22:54 K87restorecond -> ../init.d/restorecond
lrwxrwxrwx. 1 root root 20 Apr 29 22:54 K89netconsole -> ../init.d/netconsole
lrwxrwxrwx. 1 root root 15 Apr 29 22:54 K89rdisc -> ../init.d/rdisc
lrwxrwxrwx. 1 root root 19 Apr 29 22:54 S08ip6tables -> ../init.d/ip6tables
lrwxrwxrwx. 1 root root 18 Apr 29 22:54 S08iptables -> ../init.d/iptables
lrwxrwxrwx. 1 root root 17 Apr 29 22:54 S10network -> ../init.d/network
lrwxrwxrwx. 1 root root 16 Apr 29 22:55 S11auditd -> ../init.d/auditd
lrwxrwxrwx. 1 root root 17 Apr 29 22:54 S12rsyslog -> ../init.d/rsyslog
lrwxrwxrwx. 1 root root 19 Apr 29 22:54 S15mdmonitor -> ../init.d/mdmonitor
lrwxrwxrwx. 1 root root 15 Apr 29 22:54 S25netfs -> ../init.d/netfs
lrwxrwxrwx. 1 root root 19 Apr 29 22:54 S26udev-post -> ../init.d/udev-post
lrwxrwxrwx. 1 root root 15 Apr 29 22:55 S50kdump -> ../init.d/kdump
lrwxrwxrwx. 1 root root 14 Apr 29 22:55 S55sshd -> ../init.d/sshd
lrwxrwxrwx. 1 root root 17 Apr 29 22:54 S80postfix -> ../init.d/postfix
lrwxrwxrwx. 1 root root 15 Apr 29 22:54 S90crond -> ../init.d/crond
lrwxrwxrwx. 1 root root 11 Apr 29 22:54 S99local -> ../rc.local

[root@cenos6 rc3.d]# cat K89netconsole 
#!/bin/bash
# chkconfig: - 11 89
在所有级别中 关机第11 开机第89

建立终端

rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。init接下来会打开6个终端,以便用户登录系统。在inittab中的以下6行就是定义了6个终端
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
pts/0

用户登录系统

一般来说,用户的登录方式有三种:
(1)命令行登录
(2)ssh登录
(3)图形界面登录

总结Centos6启动顺序

BIOS加电自检
内核引导
读取GRUB菜单
运行init,读取/etc/inittab默认运行级别
按顺序启动其他服务/etc/rcN.d
建立终端
用户登录

Centos7启动顺序

Centos6 Centos7
bios自检 bios自检
MBR(引导) MBR(引导)
Kerbnel(内核引导) Kerbnel(内核引导)
init加载进程(读取运行级别) systemd加载进程
按顺序启动其他服务/etc/rcN.d 按顺序启动其他服务 systemctl list-unit-files
建立终端2 建立终端
用户登录 用户登录

Centos7运行级别(/usr/lib/systemd/system/runlevel*)

运行级别文件在/usr/lib/systemd/system/目录下  都是以软连接的形势存在。
[root@mb system]# ll /usr/lib/systemd/system/|grep '^l'
lrwxrwxrwx. 1 root root   15 Mar 25 22:22 runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root   13 Mar 25 22:22 runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root   17 Mar 25 22:22 runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root   17 Mar 25 22:22 runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root   17 Mar 25 22:22 runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root   16 Mar 25 22:22 runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root   13 Mar 25 22:22 runlevel6.target -> reboot.target
lrwxrwxrwx. 1 root root   15 Mar 25 22:22 runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root   13 Mar 25 22:22 runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root   17 Mar 25 22:22 runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root   17 Mar 25 22:22 runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root   17 Mar 25 22:22 runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root   16 Mar 25 22:22 runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root   13 Mar 25 22:22 runlevel6.target -> reboot.target


runlevel0.target -> poweroff.target		 runlevel0.target   -----  关机    
runlevel1.target -> rescue.target		 runlevel1.target   -----  单用户模式(root密码,运行级别)
runlevel2.target -> multi-user.target	 runlevel2.target   -----  多用户完整模式
runlevel3.target -> multi-user.target	 runlevel3.target   -----  多用户完整模式
runlevel4.target -> multi-user.target	 runlevel4.target   -----  多用户完整模式
runlevel5.target -> graphical.target	 runlevel5.target   -----  图形化界面
runlevel6.target -> reboot.target		 runlevel6.target   -----  重启

Centos7系统修改查看运行级别runlevel,systemctl get-default

##  查看
runlevel 查看系统运行级别  N上次运行级别  3是现在运行的级别
[root@mb ~]# runlevel
N 3 

systemctl get-default 查询现在运行的级别
[root@mb system]# systemctl get-default
multi-user.target

##  修改系统运行级别
systemctl set-default <target_name>
                    <target_name>
runlevel0.target -> poweroff.target		    
runlevel1.target -> rescue.target		 
runlevel2.target -> multi-user.target	 
runlevel3.target -> multi-user.target	 
runlevel4.target -> multi-user.target	 
runlevel5.target -> graphical.target	 
runlevel6.target -> reboot.target		 

Centos7 开机启动项

## 查看开机启动项 systemctl list-unit-files
## ----- enabled代表启动  disable代表关闭 
[root@mb systemd]# systemctl list-unit-files|grep enabled
auditd.service                                enabled 
[email protected]                               enabled 
crond.service                                 enabled 
dbus-org.fedoraproject.FirewallD1.service     enabled 
dbus-org.freedesktop.nm-dispatcher.service    enabled 
firewalld.service                             enabled 
[email protected]                                enabled 
irqbalance.service                            enabled 
microcode.service                             enabled 
NetworkManager-dispatcher.service             enabled 
NetworkManager-wait-online.service            enabled 
NetworkManager.service                        enabled 
postfix.service                               enabled 
rhel-autorelabel-mark.service                 enabled 
rhel-autorelabel.service                      enabled 
rhel-configure.service                        enabled 
rhel-dmesg.service                            enabled 
rhel-domainname.service                       enabled 
rhel-import-state.service                     enabled 
rhel-loadmodules.service                      enabled 
rhel-readonly.service                         enabled 
rsyslog.service                               enabled 
sshd.service                                  enabled 
sysstat.service                               enabled 
systemd-readahead-collect.service             enabled 
systemd-readahead-drop.service                enabled 
systemd-readahead-replay.service              enabled 
tuned.service                                 enabled 
vgauthd.service                               enabled 
vmtoolsd.service                              enabled 
default.target                                enabled 
multi-user.target                             enabled 
remote-fs.target                              enabled 
runlevel2.target                              enabled 
runlevel3.target                              enabled 
runlevel4.target                              enabled 

查看添加取消开机启动

systemctl list-unit-files     -----   查看所有的开机启动项
systemctl enable <服务名>      -----  设置一个服务为开机启动
systemctl disable <服务名>     -----  禁用一个服务开机启动

进入单用户模式

Centos6进入单用户模式(修改root密码)

在启动的时候按e(疯狂的按),进入此界面 再按一下e

image-20240429164443846

选择Kernel(内核) 按e

image-20240429164532928

在空格后面输入1 或者 single 再按回车返回上一级目录

image-20240429164629581

选择Kernel 按b进入

image-20240429164532928

成功进入系统  可以修改密码
使用 passwd root
配合 reboot

image-20240429165140504

Centos7 进入单用户模式(修改root密码)

再启动界面按e

image-20240429165429738

在linunx16所在行后面加上 enforcing=0(将seliunx临时关闭)  init=/bin/bash (指定用bash) CTRL + X 运行

image-20240429165756693

mount -o rw ,remorun /    -----  挂载根目录为可读可写
setenforce=0               ------   临时关闭selinux
vi /etc/sysconfig/selinux
SELINUX=disabled           ------  永久关闭selinux
passwd                     -----   修改密码

exec /sbin/init            ----- 重新引导

image-20240429171822834

Centos7进入单用户模式(修改运行级别)

按e进入编辑模式 在后面输入rd.break

image-20240429172353830

mount -o rw,remount /sysroot    		 ---------挂载sysroot目录
chroot /sysroot                  		---------获取root权限
setenforce=0		           			 ---------临时关闭selinux
vi /etc/sysconfig/selinux        
SELINUX=disabled               		    --------永久关闭selinux
passwd 						  		  --------修改密码
systemctl set-default reboot.target     -------修改系统运行等级
exit                                    ------- 退出
reboot                                  ------ 重启(死循环)

image-20240429173035578


关机重启命令

关机 重启
init 0 init 6
poweroff reboot
halt
shutdown -h now shutdown -r now
shutdown -h 10 shutdown -r 10
取消定时任务 shutdown -c
同步数据 sync