CentOS 7开机启动过程,引导和服务,密码的修改

开机启动过程:

引导过程:1.开机自检(BIOS)->2.MBR引导->GRUB菜单->加载内核kernel->systemd进程初始化

程序:执行特定任务的一串代码,静态,存在硬盘中。

进程:运行中的程序叫进程,动态,存在内存中。有生命周期。linux宏内核。

守护进程:init(CentOS6),systemd(CentOS7)。开机后先启动systemd再启动其它程序

开机启动顺序:告诉硬件去哪里找操作系统。BIOS:1.硬件,2.移动设备(光驱CDROM),3.网卡。

BIOS软件:检测硬件,然后指引硬件去找操作系统

MBR(硬盘的第一个扇区)512字节:1.开机引导程序 446字节。2.分区表64字节

GRUB:根据grub.cfg配置文件找到内核文件引导内核文件运行起来

kernel:加载内核,把内核放入内存中运行

运行级别所对应的Systemd目标

运行级别Systemd的target说明
0target关机状态,使用该级别时将会关闭主机
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护
2multi-user.target用户定义/域特定运行级别。默认等同于3
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4multi-user.target用户定义/域特定运行级别。默认等同于3
5graphical.target图形界面的多用户模式,提供了图形桌面操作环境
6reboot.target重新启动,使用该级别时将会重启主机

2,3是字符界面,5是图形界面。可通过init 3进入字符界面

输入用户名和密码登录字符界面。说明:密码含有数字的小键盘输入无效!

可以再输入init 5切回图形界面!

解决系统故障问题

1.修复MBR分区

修复MBR扇区故障

故障原因:病毒,木马等造成的破坏;不正确的分区操作、磁盘读写误操作

故障现象:找不到引导程序,启动中断;无法加载操作系统,开机后黑屏

解决思路:应提前做好备份文件;以安装光盘引导进入急救模式;从备份文件中恢复

1.备份mbr引导扇区到其他磁盘。2.模拟破坏mbr引导扇区。3.引导镜像急救模式进入mbr扇区恢复

基本原理:

1.增加一块磁盘sdb(可以重启一下,lsblk就能看到sdb了)

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    4G  0 part /boot
└─sda2            8:2    0   54G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sr0              11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64 

2.分区格式化挂载到mnt下

3.复制(备份分区表)

dd if=/dev/sda of=/mnt/mbr.bak count=1 bs=512

[root@localhost ~]# dd if=/dev/sda of=/mnt/mbr.bak count=1 bs=512
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000643148 秒,796 kB/秒

[root@localhost ~]# ls /mnt                # 备份进来了
mbr.bak

4.破坏sda中第一个扇区

可以先看一下前512字节,是完整的数据

可以看到备份的文件和sda的第一个扇区完全一致

破坏:往sda第一个扇区里面写0:dd if=/dev/zero of=/dev/sda count=1 bs=512

数据被破坏

 重启前保证光驱是连接的

重启!选择第三个进入急救模式!

选择第二个!

 进入光驱的系统中去

ls /mnt        看到当前的mnt下没有任何东西

mount /dev/sdb1 /mnt        将sdb1挂载到mnt下

ls /mnt        看到了我们的备份文件

dd if=/mnt/mbr.bak of=/dev/sda count=1 bs=512        复制回去

reboot重启

重启后就能正常进入操作系统了

总结:

增加一块磁盘sdb 分区sdb1 挂载到/mnt上。

复制(备份分区表):dd if=/dev/sda of=/mnt/mbr.bak count=1 bs=512

hexdump -C -n 512 /dev/sba  查看完整性

dd if=/dev/zero of=/dev/sda count=1 bs=512 损坏

hexdump -C -n 512 /dev/sda 查看到数据被破坏

reboot 重启进入光驱:选择第三个急救模式,选择第二个进入光驱系统,输入1 continue

mount /dev/sdb1 /mnt 把sdb1挂载到/mnt下

dd if=/mnt/mbr.bak of=/dev/sda count=1 bs=512 备份回去(备份分区表)

hexdump -C -n 512 /dev/sda #能看到数据恢复了

重启:reboot。能正常进入系统了。

2.修复GRUB分区

文件在/boot/grub2/grub.cfg。我们在根下创建个文件夹mkdir /data。把grub.cfg移动到/data中

使得开机启动时找不到grub.cfg

重启!重启时在读条过程中按esc,且只能按一次,读条只有0.5秒。

如果成功了,就进入这个界面,没成功就多试几次。选择CD-ROM

操作

总结:

把grub.cfg从/boot/grub2/grub.cfg移动到/data/下

重启,在读条0.5秒内按esc键,选择第三个进入光驱里面。选第三个急救模式,选择第二个进入光驱模式,输入1 continue

chroot /mnt/sysimage #有提示,根被挂载到mnt下了,切换到自己的根。进入急救模式后,更改环境

ls /data 发现有grub.cfg。可以直接复制过去到/boot/grub2/grub.cfg也可以用命令生成它。这里用以下两条命令生成

grub2-install /dev/sda 重新设置分区。重新建立加载sda分区

grub2-mkconfig -o /boot/grub2/grub.cfg 到这个路径下。只能叫这个名字。重新构建grub菜单配置文件

exit #退出shell环境

重启reboot

3.修改密码

当忘记root密码时可以通过两种方式:1.进入急救模式,通过passwd修改密码。2.启动时任意键暂停启动。按e键进入编辑模式

方式一:比较简单

需要在读条0.5秒中按一次esc键。进入光驱系统中,上面讲了。

选择1继续->2.更改环境->3.passwd更改密码->4.输入密码和确认密码(密码不显示)->5.退出当前环境->重启

方式二:

重启时在这个界面按e键,只有5秒

进入这个界面在linux开头的行的最后,敲一个空格,输入rd.break。按ctrl+x启动。

服务

服务程序:1.本地服务程序,管理本机:systemd,init。2.网络服务程序,接待网络客户

systemd:管家式的程序,管理系统中其他程序;为了方便管理将系统中的程序按照一定的规则进行分类

通过命令pstree -p查看进程树,可见systemd是系统启动的第一个进程。由它来引导其他程序启动。

想被systemd程序管理:系统必要的程序,yum rpm安装的程序,编译安装的程序,需要手写配置文件后才可以。必须在/usr/lib/systemd/system/下.service才会被systemd管理,yum和rpm会自动生成,天生可以被systemd管理,编译需要手写该文件,手写服务名.service的文件。

[root@localhost system]# pwd
/usr/lib/systemd/system
[root@localhost system]# find ./ -name '*.service' | wc -l
338

当一个服务被停掉后,如果有其他用户来访问这个服务时,只有在/usr/lib/systemd/system/下以.service的文件才会被systemd被唤醒。

  • systemctl命令:

    systemctl start 服务名 开启服务

    systemctl stop 服务名 关闭服务

    systemctl status 服务名 查看状态

    systemct restart 服务名 重启服务

    systemctl reload 服务名 重新加载服务不影响使用

    systemctl enable 服务名 开机自启

    systemctl disable 服务名 关闭开机自启

    systemctl enable --now 服务名 开机自启并立即启动

    systemctl disable --now 服务关闭开机自启,并立即关闭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/813389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django之rest_framework(一)

一、请求和响应对象介绍 REST framework引入了2个新的对象:Request和Response 1.1、Request rest_framework.request.Request 该对象扩展了常规的HttpRequest ,增加了对REST框架灵活的请求解析和请求认证的支持 官网:Requests - Django REST framework 主要属性: data 这…

Oracle 数据库全表扫描的4种优化方法(DB)

全表扫描的工作是扫描高水位一下所有的数据块。 这里就有一个问题,什么是高水位线。高水位的标志存在表头。 该数据块以后都是崭新未格式化的数据块,高水位的目的有二。它是全表扫描的 终点,并行插入的起点! 优化全表扫描的办法有…

类和对象(拷贝构造函数)

目录 拷贝构造函数 特征 结论: 拷贝构造函数 拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存 在的类类型对象创建新对象时由编译器自动调用。 特征 拷贝构造函数也是特殊的成员函数&…

AD7685BRMZRL7 16位 2.3V 低功耗模数转换器芯片 ADI

AD7685BRMZRL7是一款由ADI(亚德诺)公司生产的模数转换器(ADC)芯片。该芯片的主要功能是将模拟信号转换为数字信号,以便在数字系统中处理. AD7685BRMZRL7 规格信息: 制造商:Analog Devices Inc. 产品种类:模…

【SpringBoot】获取参数

获取参数 传递单个参数传递多个参数传递对象后端参数重命名传递数组传递 json 数据获取 URL 中参数上传文件获取 cookie 和 session获取cookie获取session 传递单个参数 RequestMapping("/user") RestController public class UserController {// 传递单个参数Reque…

实现自动打包py及替换pyinstaller --add-data参数的方法

2024年了,PyInstaller已经来到了6.5.0版本,可我还是不会用它那个--add-data的方法,度了几圈试了试,始终不(行)如(不)意(通),就是没能把附加文件&a…

红色文化展馆3D线上互动展览推动党建创新发展

实现现代化是世界各国人民的共同追求。在追求现代化的艰苦卓绝奋斗中,我们党领导人民不仅创造了世所罕见的经济快速发展和社会长期稳定两大奇迹,而且成功走出了中国式现代化道路,创造了人类文明新形态。对党建学习也应该与时俱进,…

c语言多功能计算软件170

定制魏:QTWZPW,获取更多源码等 目录 题目 要求 主要代码片段 题目 设计一个计算器软件,具备如下功能提示界面。 要求 设计出界面,注意界面名称最后为自己的姓名;(20分)能够实现加、减、乘、…

Linux之bpfjit(2)使用分析和mini-tcpdump实现

Linux之bpfjit(2)使用分析和mini-tcpdump实现 Author: Once Day Date: 2024年4月13日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可以参考专栏:…

QT windeployqt打包出现无法正常启动问题

QT 通过windeployqt 打包后出现的问题 原因QT构建选择的是64位的 但是windows下运行的却是32位的 步骤打开32的所在路径 一般在上一级目录会有安装好的64位的MSVC工具 运行打包即可

《乱弹篇(27)回乡祭扫感慨多》

人老了,真的就要记住“好汉不提当年勇,梅花不提前世绣”这话。 忆往昔,中青年时代的笔者精力旺盛,也曾只身一人闯荡江湖,把自己的足迹印到过大半个中国土地上,可如今岁近耄耋残年,清明节想回一…

Python | Leetcode Python题解之第19题删除链表的倒数第N个结点

题目: 题解: class Solution:def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:dummy ListNode(0, head)first headsecond dummyfor i in range(n):first first.nextwhile first:first first.nextsecond second.nextsecond.ne…

gemini1.5 API调用

https://ai.google.dev/pricing?hlzh-cn 查询可用的model https://generativelanguage.googleapis.com/v1beta/models?keyxxx 使用postman调用 https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent?keyxxx https://ai.google…

聊一下HashMap的底层原理

HashMap作为我们熟悉的一种集合,今天就来聊一下它的原理、数据结构。 1.HashMap的数据结构 JDK1.7的数据结构是数组链表,JDK1.7还有人在用?不会吧…… 说一下JDK1.8的数据结构吧: JDK1.8的数据结构是数组链表红黑树。 数据结…

Vue pdfjs

最终效果图 官网 https://mozilla.github.io/pdf.js 下载 放入项目 vue页面嵌入本地下载好的html sessionStorage.setItem(sdfDldj8KJ45SDF, encodeURIComponent(file_url)) <template><div style"height:100%"><iframe:id"1":key"…

阿里云服务器租用费用,这价格可以呀!

2024阿里云服务器租用优惠价格4月最新报价&#xff0c;阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M服务器108元一年、香港30M带宽轻量服务器24元1个月、云服务器4核16G10M带宽30元1个月、90元3个月&#xff0c;云…

【数据分享】中国首套1米分辨率土地覆盖数据(2023年发布)

土地覆盖数据是我们在各项研究中都非常常用的数据&#xff01;本次我们整理的是全国各城市的1米分辨率的土地覆盖数据&#xff01; 武汉大学李卓鸿、何伟等研究者基于深度学习框架和开放数据&#xff0c;具体包括全球土地覆盖&#xff08;GLC&#xff09;数据、OSM地图数据、谷…

每日两题 / 3. 无重复字符的最长子串 84. 柱状图中最大的矩形(LeetCode热题100)

3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 双指针&#xff0c;l和r从字符串最左边开始&#xff0c;保存l和r之间的所有字符 移动r&#xff0c;若新加入的字符和已有字符重复&#xff0c;则不断移动l&#xff0c;直到l和r之间不出现重复字符 注意&#…

【机器学习】深入剖析贝叶斯算法原理及其广泛应用

一、引言 在机器学习的广阔领域中&#xff0c;贝叶斯算法以其独特的概率推理方式占据了重要的地位。它不仅为分类问题提供了有效的解决方案&#xff0c;还在自然语言处理、信息检索、垃圾邮件过滤等诸多领域发挥着不可替代的作用。 贝叶斯算法的基本思想源于贝叶斯定理&#xf…

数据结构学习之路--实现带头双向循环链表的详解(附C源码)

嗨嗨大家~本期带来的内容是&#xff1a;带头双向循环链表的实现。在上期文章中我们提到过带头双向循环链表&#xff0c;那么它的实现又是怎样的呢&#xff1f;今天我们来一探究竟&#xff01; 目录 前言 一、认识带头双向循环链表 1 认识双向链表 2 带头双向循环链表的定…