Linux引导过程和服务控制

Posted 28线不知名云架构师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux引导过程和服务控制相关的知识,希望对你有一定的参考价值。

一、centos7系统引导过程

①bios加电自检----------->当机器上电之后,根据主板上bios的设置进行硬件的自检,如cpu、内存等并初始化,它找到可引导的硬盘之后把控制器给MBR

②MBR引导----------->硬盘启动时根据MBR的设置,将系统控制权传递给包含系统操作引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单

③grub2菜单----------->系统控制权传递给GRUB 以后,将会显示提供用于选择,并根据-选项加载linux内核文件

④加载内核----------->系统引导器程序会从本地硬盘中加载内核以及内存文件系统 initramfs,其中包含启动时所有必要的硬件内核模块、初始化脚本等

⑤初始化进程----------->在initramfs中找到驱动程序的所有硬件,然后作为PID 1从initramfs执行/lib/systemd/systemd
systemd启动initrd.target中所有单元,包括挂载/etc/fstab
然后从initramfs根文件系统切换到磁盘根目录并且systemd启动默认target(字符界面还是图形化界面)也就是 /etc/systemd/system/default.target
最后等待用户登陆

二、运行级别对应的systemd

在这里插入图片描述
可以用init命令加上面的运行级别来进行系统运行级别的切换

init 0:表示关机
init 6:表示重启
init 5:进入图形界面
init 3:进入命令行界面
[root@AIDEBOY ~]# runlevel            //查看当前系统运行级别
N 5        //前面数字表示上次的运行级别,后面数字表示当前系统运行级别,N表示未做运行级别的转换

三、系统及服务管理器systemctl

systemctl是systemd的工具,用于系统和服务的管理
[root@AIDEBOY ~]# systemctl cat sshd          查看服务配置信息
[Unit]
Description=OpenSSH server daemon               //描述信息
Documentation=man:sshd(8) man:sshd_config(5)    //man手册
After=network.target sshd-keygen.service        //在此单元启动前启动的单元 
Wants=sshd-keygen.service                      //与此单元配合使用的单元

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd           //此服务的服务配置文件
ExecStart=/usr/sbin/sshd -D $OPTIONS          //服务启动命令
ExecReload=/bin/kill -HUP $MAINPID           //重载服务命令
KillMode=process                             //终止该服务的单元进程模式
Restart=on-failure                           //定义什么情况下systemd会重启该服务
RestartSec=42s                              //自动重启该服务的秒数
lines 1-15...skipping...

[Install]
WantedBy=multi-user.target                 //当前服务激活时软链接会放在fet/systemdsystem目录下的muiti-usertargetwants目录中
[root@AIDEBOY ~]# systemctl get-default
graphical.target
[root@AIDEBOY ~]# ll /etc/systemd/system   //此目录存放不同级别的开启自启服务,里面大部分都为链接文件,
总用量 8
drwxr-xr-x. 2 root root   57 422 10:03 basic.target.wants
drwxr-xr-x. 2 root root   31 422 10:02 bluetooth.target.wants
lrwxrwxrwx. 1 root root   41 422 10:02 dbus-org.bluez.service -> /usr/lib/systemd/system/bluetooth.service
lrwxrwxrwx. 1 root root   44 422 10:03 dbus-org.freedesktop.Avahi.service -> /usr/lib/systemd/system/avahi-daemon.service
lrwxrwxrwx. 1 root root   44 422 10:03 dbus-org.freedesktop.ModemManager1.service -> /usr/lib/systemd/system/ModemManager.service
lrwxrwxrwx. 1 root root   46 422 10:02 dbus-org.freedesktop.NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
lrwxrwxrwx. 1 root root   57 422 10:02 dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service
lrwxrwxrwx. 1 root root   36 422 10:06 default.target -> /lib/systemd/system/graphical.target
drwxr-xr-x. 2 root root   87 422 10:02 default.target.wants
drwxr-xr-x. 2 root root   38 422 10:03 dev-virtio\\x2dports-org.qemu.guest_agent.0.device.wants
lrwxrwxrwx. 1 root root   35 422 10:03 display-manager.service -> /usr/lib/systemd/system/gdm.service
drwxr-xr-x. 2 root root   32 422 10:02 getty.target.wants
drwxr-xr-x. 2 root root  133 422 10:17 graphical.target.wants
drwxr-xr-x. 2 root root   35 422 10:02 local-fs.target.wants
drwxr-xr-x. 2 root root 4096 430 13:40 multi-user.target.wants
drwxr-xr-x. 2 root root   48 422 10:02 network-online.target.wants
drwxr-xr-x. 2 root root   26 422 10:03 printer.target.wants
drwxr-xr-x. 2 root root   31 422 10:02 remote-fs.target.wants
drwxr-xr-x. 2 root root  217 422 10:03 sockets.target.wants
drwxr-xr-x. 2 root root 4096 422 10:02 sysinit.target.wants
drwxr-xr-x. 2 root root   44 422 10:02 system-update.target.wants
drwxr-xr-x. 2 root root   34 422 10:02 timers.target.wants
drwxr-xr-x. 2 root root   29 422 10:02 vmtoolsd.service.requires
systemctl start 服务名 :开始服务
systemctl stop 服务名 :停止服务
systemctl restart 服务名 :重启服务
systemctl reload 服务名 :重载服务
systemctl enable 服务名 :设置服务开机自启
systemctl disable 服务名 :设置服务开机不自启
systemctl is-enabled 服务名 :查看服务是否开机启动

四、启动过程的问题解决

4.1MBR扇区故障

故障原因:病毒、木马等造成的破坏,不正确的分区操作,磁盘读写误操作
故障现象:找不到引导程序,启动中断
解决思路:应提前做好备份文件,以安装光盘引导进入急救模式,从备份文件中恢复

4.2root密码忘记

解决方法:进入急救模式重设密码
1)第一种方式,有光盘情况下的修改root密码,从光盘启动,进入急救模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入完成后关机重启即可,如果没有成功就在进入这个界面输入“rm -rf /etc/selinux/config”删除这个文件,删除之前记得做备份
2)没有光盘文件的修改root密码
首先重启系统进入grub2界面时迅速按下e键
在这里插入图片描述
进入命令行界面后,由于是没有光盘的,需要将根重新挂载,输入“mount -o remount.rw /”,然后输入“passwd”,输入两次密码,最后输入“exec /sbin/init”重启系统就行了

4.3、GRUB引导故障

故障原因:MBR中的grub引导程序遭到破坏,grub.conf文件丢失、引导配置有误
故障现象:系统引导停滞,显示“grub>”提示符
解决思路:尝试手动输入引导命令,进入急救模式,重写或者从备份中恢复grub.conf,向MBR扇区重建grub程序,

以上是关于Linux引导过程和服务控制的主要内容,如果未能解决你的问题,请参考以下文章

Linux引导过程及服务控制

linux引导过程和服务控制

Linux引导过程与服务控制

Linux的引导过程与服务控制

linux引导过程与服务控制

linux引导过程与服务控制!