Linux系统管理-开机启动流程

文章目录

  • Linux系统管理-开机启动流程
    • CentoOS6的开机启动流程
    • CentOS6忘记root密码
    • Linux的关机指令
    • CentOS7的开机启动流程
    • CentOS7进入单用户模式
      • 第一种方式(只能修改密码)
      • 第二种方式(只能修改运行级别)
    • 进入救援模式
      • 生产场景1
      • 生产场景2
      • 生产场景3
    • systemd管理服务
    • systemctl相关命令

CentoOS6的开机启动流程

1.内核引导

  1. MBR引导
  2. BIOS加电自检
  3. 加载grub菜单

2.运行init

运行级别 作用
0 关机
1 切换到单用户模式,root权限,禁止远程连接
2 多用户状态(没有文件系统)
3 完全多用户状态,有文件系统,登录后使用命令行控制
4 unused,没有被使用
5 切换到图形化界面(前提是安装了图形化)
6 重启

查看当前运行级别

[root@oldboy ~]# runlevel
N 3

临时切换运行级别

[root@zls ~]# init 5
[root@zls ~]# runlevel
3 5

永久切换运行级别

[root@zls ~]# vim /etc/inittab
id:3:initdefault

3.系统初始化

首先找到,runlevel查看当前系统的运行级别
然后找到/etc/rc.d/rcN.d N代表当前的运行级别

4.建立终端

​ tty1

​ tty2

​ tty3

​ tty4

​ tty5

​ tty6

5.用户登录系统

init程序的类型:SysV:       init, CentOS 5之前, 配置文件: /etc/inittab。
Upstart:    init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。
Systemd:    systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。

CentOS6忘记root密码

1.开机进入grub菜单

2.按e,进入单用户模式

3.按上下键选择内核kernel,再按e

4.在最后一行quiet后面加上空格再加数字1(是单用户模式的运行级别)或者single然后回车

5.然后根据提示按下b(boot)进行重新引导

6.修改root密码

passwd root
reboot

Linux的关机指令

sync 将数据由内存同步到硬盘中。shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。shutdown –h now 立马关机shutdown –h 20:25 系统会在今天20:25关机shutdown –h +10 十分钟后关机shutdown –r now 系统立马重启shutdown –r +10 系统十分钟后重启reboot 就是重启,等同于 shutdown –r nowhalt 关闭系统,等同于shutdown –h now 和 poweroff

CentOS7的开机启动流程

1.内核引导

  1. MBR引导(512字节)
  2. BIOS加电自检
  3. 加载grub2菜单(选择要进入的系统)

2.运行init(使用systemd来管理init及所有服务)

运行级别 作用 centos7
0 关机 poweroff.target
1 切换到单用户模式,root权限,禁止远程连接 recuse.target
2 多用户状态(没有文件系统) multi-user.target
3 完全多用户状态,有文件系统,登录后使用命令行控制 multi-user.target
4 unused,没有被使用 multi-user.target
5 切换到图形化界面(前提是安装了图形化) graphical.target
6 重启 reboot.target
# 修改默认的运行级别
systemctl set-default 运行级别的名字
systemctl get-default 查看运行级别

3.系统初始化

  1. systemctl get-default 查看当前的运行级别 -> multi-user.target
  2. /etc/systemd/system/multi-user.target.wants
  3. 并行开启所有的开机自启服务

4.建立终端

​ tty1

​ tty2

​ tty3

​ tty4

​ tty5

​ tty6

5.用户登录

CentOS7进入单用户模式

第一种方式(只能修改密码)

1.关机

init 0

2.停在grub2菜单

3.按e进入内核编辑界面

4.将光标下移,移动到linux16那一行,行末(一般是quiet后面)

5.输入enforcing=0 init=/bin/bash

6.按Ctrl + x

# 重新挂载/目录 , 因为该模式/目录是只读权限
bash-2.4# mount -o rw,remount /
# 该模式下,只能解决忘记root密码的问题
bash-2.4# echo 123 |passwd --stdin root
# 重新引导系统
bash-2.4# exec /sbin/init

第二种方式(只能修改运行级别)

1.进入grub2菜单

2.按e进入内核编辑界面

3.将 biosdevname=0 前面的 ro 改成 rw ,避免重新挂在 / 目录,然后还是在 linux16 的行末输入 rd.break

4.按 Ctrl + x

5.执行命令

# 获取到root权限
switch_root:/# chroot /sysroot
# 修改运行级别
sh-4.2# systemctl set-default multi-user.target
# 退出
sh-4.2# exit
# 重启
switch_root:/# reboot

进入救援模式

生产场景1

当系统坏了,无法登陆系统,但是需要把里面的数据拷贝出来,怎么办?

bash-4.2# mkfs.xfs -f /dev/sdc
bash-4.2# mkdir /data
bash-4.2# mount /dev/sdc /data
bash-4.2# cp -a /raid0 /data
bash-4.2# umount /dev/sdb

生产场景2

修复MBR,主要出现在安装双系统的时候,后安装的系统把原来的MBR删除了,需要修复

破坏硬盘的钱446字节,模拟MBR引导损坏,会发现重启无法启动系统

系统损坏,没有机会进入grub菜单

[root@zls ~]# dd < /dev/zero >/dev/sda bs=1 count=446
记录了446+0 的读入
记录了446+0 的写出
446字节(446 B)已复制,0.0011061 秒,403 kB/秒

1.选择Troubleshooting

2.选择Rescue a CentOS system 进入救援模式

3.进入救援模式后输入 1 按回车

4.敲回车,获得一个shell

## 获取到root权限
bash-2.4# chroot /mnt/sysimage## 修复mbr引导
grub2-install /dev/sda## 退出
exit## 重启
reboot

生产场景3

CentOS7 误删除grub文件,进行修复

1.模拟故障

#删除grub2
[root@oldboy ~]# rm -fr /boot/grub2/
#重启
[root@oldboy ~]# reboot

2.查看系统状态

3.从BIOS启动

4.进入BIOS设置从光盘启动

5.按F10保存退出

6.选择Troubleshooting

7.选择救援模式

8.进入救援模式后输入 1 按回车获得一个shell

9.输入chroot /mnt/sysimage获取root权限


10.重新安装MBR,加载grub2中的grub.cfg文件

bash-4.2# chroot /mnt/sysimage
bash-4.2# grub2-install /dev/sda
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg

11.查看加载出来的文件

12.退出、关机

13.进入BIOS设置从光盘启动把Hard Drive调到最上面,然后按F10保存退出

systemd管理服务

优势

1.最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15…)

2.CentOS7 支持开机并行启动服务,显著提高开机启动效率

3.CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。

4.CentOS7服务的启动与停止不再使用脚本进行管理,也就是/etc/init.d下不再有脚本。

5.CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。

相关的配置文件

/usr/lib/systemd/system #类似C6系统的启动脚本目录/etc/init.d/

/etc/systemd/system/ #类似C6系统的/etc/rc.d/rcN.d/

/etc/systemd/system/multi-user.target.wants/ (开机启动的服务在这个目录下)

System V init(6系统) systemctl命令(7系统) 作用
service crond start systemctl start crond.service 启动服务
service crond stop systemctl stop crond.service 停止服务
service crond restart systemctl restart crond.service 重启服务
service crond reload systemctl reload crond.service 重新加载配置(不终止服务)
service crond status systemctl status crond.servre 查看服务运行状态
systemctl is-active sshd.service 查看服务是否在运行中
systemctl mask crond.servre 禁止服务运行
systemctl unmask crond.servre 取消禁止服务运行

systemctl设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令

System V init(6系统) systemctl命令(7系统) 作用
chkconfig crond on systemctl enable crond.service 开机自动启动
chkconfig crond off systemctl disable crond.service 开机不自动启动
chkconfig --list systemctl list-unit-files 查看各个级别下服务的启动与禁用
chkconfig --list crond systemctl is-enabled crond.service 查看特定服务是否为开机自启动
chkconfig–add crond systemctl daemon-reload 创建新服务文件或者变更设置

systemctl服务状态说明

服务状态 状态说明
loaded 服务单元的配置文件已经被处理
active(running) 服务的一个或多个进程在运行中
active(exited) 一次性运行的服务成功被执行并退出(服务运行后完成任务,相关进程会自动退出)
active(waiting) 服务已经运行但在等待某个事件
inactive 服务没有在运行
enable 服务设定为开机运行
disabled 服务设定为开机不运行
static 服务不能被设定开机启动,但可以由其他服务启动该服务

systemctl相关命令

# 启动服务
systemctl start 服务名
# 停止服务
systemctl stop 服务名
# 重启服务
systemctl restart 服务名
# 重新加载配置文件,不重启服务
systemctl reload 服务名
# 查看服务的运行状态
systemctl status 服务名
# 判断服务是否在运行
systemctl is-active 服务名
# 禁止服务运行
systemctl mask 服务名
# 取消禁止服务运行
systemctl unmask 服务名
# 开机自启
systemctl enable 服务名
# 禁止开机自启
systemctl disable 服务名
# 查看系统中开机自启和禁止、静态服务
systemctl list-unit-files
# 查看服务是否允许开机自启
systemctl is-enabled 服务名
# 重新加载启动脚本
systemctl daemon-reload

Linux系统管理-开机启动流程相关推荐

  1. Linux系统开机启动流程介绍

    一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...

  2. linux开机引导进程是什么,Linux系统开机启动流程介绍

    一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...

  3. 初学Linux对开机启动流程的相关实验

    实验环境:   运行脚本 /Linux基础进级-宫俊鹤/实验代码包/grubtest.x  根据提示完成系统的恢复工作: 准备工作:备份grub.conf   fstab 两个文件 cp  /etc/ ...

  4. linux修改开机启动,Linux修改开机启动logo

    默认开机LOGO会在液晶屏的左上脚显示一只小企鹅,分辨率为80*80,具体在kernel/drivers/video/logo下会有logo_linux_clut224.ppm这幅图像,程序会根据这幅 ...

  5. linux系统下开机启动流程

    在了解开机启动流程之前,还是得先了解一些磁盘的基本知识.磁盘主要由盘片,机械手臂,磁头,主轴马达构成.盘片就是存储数据的物理单位了.然后盘片上我们可以分成扇区(sector)和柱面(cylinder) ...

  6. 红帽linux设置自动启动,RedHat开机启动流程

    RedHat 开机启动流程 : 1. LILO 取得控制权. PC 起动时, 会读取开机磁碟第一条 cylinder 的第一个 sector(此即 MBR), 然後它会试着将读取到的程式码载入记忆体中 ...

  7. Linux - 开机启动流程

    目录 一.掌握开机启动流程的意义: 1.1  为什么需要了解开机启动流程? 1.2  在日常的运维过程中,是否会遇到机器出现问题启动不了? 1.3  开机启动流程的意义 二.开机启动流程 2.1  开 ...

  8. Linux——开机启动流程

    开机启动流程     为什么需要了解开机启动流程?         掌握让某个软件开机自启         排查服务器启动了的故障,了解原因         防止黑客植入木马,去查询黑客会把木马方到哪 ...

  9. RedHat开机启动流程

    RedHat 开机启动流程 : 1. LILO 取得控制权. PC 起动时, 会读取开机磁碟第一条 cylinder 的第一个 sector(此即 MBR), 然後它会试着将读取到的程式码载入记忆体中 ...

最新文章

  1. 【Android APT】注解处理器 ( 根据注解生成 Java 代码 )
  2. getcwd()函数用法
  3. java 获取手机归属地,引起net.UnknownHostException错误
  4. insert ignore duplicate key
  5. (Docker实战) 第六篇:建立持续集成环境03
  6. 软件测试基础课程学习笔记3---软件测试方法
  7. sql 列求和_图解面试题:累计求和问题如何分析?
  8. 逻辑回归算法python_逻辑回归算法原理和例子
  9. 1.2 数值分析 误差的来源和分类
  10. python 图片文字转换成word_如何把图片文字转换成word文字?
  11. WebBrowser无法显示招商银行密码输入控件的问题
  12. ios实时卡顿检测和优化方案
  13. 智安网络丨IPv6 为网络安全带来新机遇
  14. opencv+directshow采集视频图像
  15. tf2常用数据类型与常用函数汇总
  16. WEB漏洞——SQL注入之简要SQL注入
  17. mysql维基_维基逃离MySQL 力挺开源数据库 MariaDB
  18. 第六章 异常 try-catch-finally 6.2.3
  19. php每天自动备份数据库
  20. 计算机组成原理 --- 输入输出系统

热门文章

  1. 怎么把wps转换成word
  2. Vue通过spark-md5.js上传本地md5文件
  3. 大连商务英语学校百家外语国际部商务英语与普通英语的不同之处
  4. java 大数加减算法
  5. 春款童装产品做短视频营销应该怎么做?短视频营销策略分析
  6. LSTM和循环网络RNN学习简记
  7. 高清碑文《怀仁集王羲之书圣教序》
  8. matlab 扫雷,matlab 扫雷
  9. 2022江苏最新八大员之(安全员)模拟考试试题及答案
  10. Cisco PacketTracer5---三层交换机连接路由器配置