Linux系统管理-开机启动流程
Linux系统管理-开机启动流程
文章目录
- Linux系统管理-开机启动流程
- CentoOS6的开机启动流程
- CentOS6忘记root密码
- Linux的关机指令
- CentOS7的开机启动流程
- CentOS7进入单用户模式
- 第一种方式(只能修改密码)
- 第二种方式(只能修改运行级别)
- 进入救援模式
- 生产场景1
- 生产场景2
- 生产场景3
- systemd管理服务
- systemctl相关命令
CentoOS6的开机启动流程
1.内核引导
- MBR引导
- BIOS加电自检
- 加载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.内核引导
- MBR引导(512字节)
- BIOS加电自检
- 加载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.系统初始化
- systemctl get-default 查看当前的运行级别 -> multi-user.target
- /etc/systemd/system/multi-user.target.wants
- 并行开启所有的开机自启服务
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系统管理-开机启动流程相关推荐
- Linux系统开机启动流程介绍
一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...
- linux开机引导进程是什么,Linux系统开机启动流程介绍
一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...
- 初学Linux对开机启动流程的相关实验
实验环境: 运行脚本 /Linux基础进级-宫俊鹤/实验代码包/grubtest.x 根据提示完成系统的恢复工作: 准备工作:备份grub.conf fstab 两个文件 cp /etc/ ...
- linux修改开机启动,Linux修改开机启动logo
默认开机LOGO会在液晶屏的左上脚显示一只小企鹅,分辨率为80*80,具体在kernel/drivers/video/logo下会有logo_linux_clut224.ppm这幅图像,程序会根据这幅 ...
- linux系统下开机启动流程
在了解开机启动流程之前,还是得先了解一些磁盘的基本知识.磁盘主要由盘片,机械手臂,磁头,主轴马达构成.盘片就是存储数据的物理单位了.然后盘片上我们可以分成扇区(sector)和柱面(cylinder) ...
- 红帽linux设置自动启动,RedHat开机启动流程
RedHat 开机启动流程 : 1. LILO 取得控制权. PC 起动时, 会读取开机磁碟第一条 cylinder 的第一个 sector(此即 MBR), 然後它会试着将读取到的程式码载入记忆体中 ...
- Linux - 开机启动流程
目录 一.掌握开机启动流程的意义: 1.1 为什么需要了解开机启动流程? 1.2 在日常的运维过程中,是否会遇到机器出现问题启动不了? 1.3 开机启动流程的意义 二.开机启动流程 2.1 开 ...
- Linux——开机启动流程
开机启动流程 为什么需要了解开机启动流程? 掌握让某个软件开机自启 排查服务器启动了的故障,了解原因 防止黑客植入木马,去查询黑客会把木马方到哪 ...
- RedHat开机启动流程
RedHat 开机启动流程 : 1. LILO 取得控制权. PC 起动时, 会读取开机磁碟第一条 cylinder 的第一个 sector(此即 MBR), 然後它会试着将读取到的程式码载入记忆体中 ...
最新文章
- 【Android APT】注解处理器 ( 根据注解生成 Java 代码 )
- getcwd()函数用法
- java 获取手机归属地,引起net.UnknownHostException错误
- insert ignore duplicate key
- (Docker实战) 第六篇:建立持续集成环境03
- 软件测试基础课程学习笔记3---软件测试方法
- sql 列求和_图解面试题:累计求和问题如何分析?
- 逻辑回归算法python_逻辑回归算法原理和例子
- 1.2 数值分析 误差的来源和分类
- python 图片文字转换成word_如何把图片文字转换成word文字?
- WebBrowser无法显示招商银行密码输入控件的问题
- ios实时卡顿检测和优化方案
- 智安网络丨IPv6 为网络安全带来新机遇
- opencv+directshow采集视频图像
- tf2常用数据类型与常用函数汇总
- WEB漏洞——SQL注入之简要SQL注入
- mysql维基_维基逃离MySQL 力挺开源数据库 MariaDB
- 第六章 异常 try-catch-finally 6.2.3
- php每天自动备份数据库
- 计算机组成原理 --- 输入输出系统