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

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

CentoOS6的开机启动流程

1.内核引导

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

2.运行init

运行级别作用
0关机
1切换到单用户模式,root权限,禁止远程连接
2多用户状态(没有文件系统)
3完全多用户状态,有文件系统,登录后使用命令行控制
4unused,没有被使用
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 now

halt 关闭系统,等同于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
4unused,没有被使用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 startsystemctl start crond.service启动服务
service crond stopsystemctl stop crond.service停止服务
service crond restartsystemctl restart crond.service重启服务
service crond reloadsystemctl reload crond.service重新加载配置(不终止服务)
service crond statussystemctl 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 onsystemctl enable crond.service开机自动启动
chkconfig crond offsystemctl disable crond.service开机不自动启动
chkconfig --listsystemctl list-unit-files查看各个级别下服务的启动与禁用
chkconfig --list crondsystemctl is-enabled crond.service查看特定服务是否为开机自启动
chkconfig–add crondsystemctl 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统中,开机启动流程通常包括以下几个步骤: 1. 开机自检(Power-On Self-Test,POST):当计算机启动时,系统会进行自我检测以确保硬件设备正常工作。这个过程由计算机的固件负责,例如BIOS或UEFI。 2. 引导加载程序(Boot Loader):引导加载程序是位于硬盘的特定位置的代码,负责加载操作系统内核并将控制权转移到内核。常见的引导加载程序有GRUB和GRUB2。 3. 内核初始化:一旦引导加载程序将控制权传递给内核,内核开始初始化系统的各个组件,例如内存管理、设备驱动程序和文件系统。 4. 运行级别(Runlevel):在Linux系统中,运行级别定义了系统启动后的运行状态。不同的运行级别确定了哪些服务和进程在系统启动时自动运行。运行级别通常由/etc/inittab文件或者systemd配置文件来定义。 5. 服务启动:一旦系统进入指定的运行级别,系统管理器(如systemd)负责启动各个服务和进程。这些服务和进程可能包括网络服务、日志记录服务、文件系统挂载等。 总结起来,Linux系统的开机启动流程包括开机自检、引导加载程序、内核初始化、运行级别和服务启动。了解这些流程对于理解系统启动过程以及排除启动问题非常有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux系统开机启动流程(超详细)](https://blog.csdn.net/qq_51010919/article/details/131465536)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值