centos7 开机后进去了命令行_Linux系统管理:开机启动流程(二)

CentOS7

1.BIOS(开机自检)

2.MBR ( Master Boot Record 主引导记录)

3.GRUB2 Bootloader(引导菜单)

4.Kernel(内核引导)

5.Systemd (不再使用init,改成了systemd)

6.Runlevel-Target (运行级别)

1.BIOS

基本输入/输出系统是一个固件接口,它不仅控制启动过程,还提供对连接的外围设备的低级接口的所有控制。打开系统电源后,它将读取所有设备设置并执行开机自检(开机自检)过程,以识别硬件设备,以测试和初始化系统硬件组件。成功后处理后,它将加载MBR(主引导记录)以进行下一个引导处理。

2.MBR引导

主引导记录放在Linux引导硬盘的第一个扇区中,此信息通过BIOS预加载到ROM(只读内存)中。

MBR的大小只有512个字节,它包含用于引导操作系统的机器代码指令,称为引导加载程序,以及分区表。一旦BIOS找到引导加载程序(GRUB2)并将其加载到(ROM)内存或硬盘驱动器中,它就会控制引导过程。只是MBR(主引导记录)加载并执行GRUB2引导加载程序。

3.GRUB2(引导加载程序版本2)引导加载程序

言简意赅:grub2菜单,如果装了双系统会让你进行选择,Linux?还是windows?还是MacOS?

GRUB2是所有最新版本(如Red Hat/CentOS 7)中的默认引导加载程序,也是9.10版中的Ubuntu。它已经被GRUBbootloader(也称为GRUBLegacy)所取代。

grub2配置文件位于/boot/grub2/grub.cfg中,由grub2 mkconfig使用/etc/grub.d中的模板和/etc/default/grub中的设置自动生成。不建议编辑GRUB2配置文件。

引导加载程序(rhel 7的grub2)启动rhel7内核和初始RAM磁盘(initrd)。GRUB 2安装在服务器硬盘的引导扇区中,配置为加载Linux内核和initramfs,initrd是一个初始根文件系统,将在Linux系统上的实际根文件系统之前安装。

4.kernel内核引导

Linux内核是操作系统的核心,它是系统上第一个加载的程序。当系统启动时,内核从initrd.img加载所有必要的内核模块和驱动器,以加载Linux7中的系统第一个进程systemd,在6里面,init是爸爸,在7里面换了个爸爸,那就是systemd

下面的命令将帮助您找到SystemD进程ID(PID)

[root@zls ~]# ps -ef | grep 折叠ystemd
root 1 0 0 7月14 ? 00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 347 1 0 7月14 ? 00:00:00 /usr/lib/systemd/systemd-journald
root 379 1 0 7月14 ? 00:00:00 /usr/lib/systemd/systemd-udevd
root 522 1 0 7月14 ? 00:00:00 /usr/lib/systemd/systemd-logind
dbus 525 1 0 7月14 ? 00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation

systemd管理进程

systemd使用“targets”而不是runlevels。默认情况下,有两个主要级别:

1) multi-user(多用户).target: analogous to runlevel 3

#查看运行级别
[root@zls ~]# systemctl get-default
multi-user.target

2) graphical(图形化).target: analogous to runlevel 5

#设置默认运行级别
[root@zls ~]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
#查看默认界面
[root@zls ~]# systemctl get-default
graphical.target
[root@zls ~]# vim /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

CentOS7中的运行级别:

runlevel0.target -> poweroff.target

runlevel1.target -> rescue.target

runlevel2.target -> multi-user.target

runlevel3.target -> multi-user.target

runlevel4.target -> multi-user.target

runlevel5.target -> graphical.target

runlevel6.target -> reboot.target

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:多用户运行级别(没有文件系统)

运行级别3:完全的多用户状态(有文件系统),登陆后进入控制台命令行模式

运行级别4:多用户运行级别

运行级别5:X11控制台,登陆后进入图形GUI模式

运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

CentOS7如何进入单用户模式

1.重启Linux系统主机并出现引导界面时,按下键盘上的e键,进入内核编辑界面

593a93ac72cf1eaab4335a8548507ff9.png

2.在Linux16这行后面添加enforcing=0 init=/bin/bash,然后按下Ctrl+X组合键来运行修改过的内核程序

76bd49d91f7d73afb51b0820b33004aa.png

3.然后进入单用户模式界面。

#重新挂载/目录
bash-4.2# mount -o rw,remount /
#非交互设置root密码
bash-4.2# echo 1 |passwd --stdin root
#重新引导系统
bash-4.2# exec /sbin/init

1f6a7d8cc47cf4c8f032c5efa63c465f.png

不需要重新挂载的方式

5c7a651f765d288fb1f8d5c66f3e6505.png

如果centos7系统运行级别被设置成重启的级别...

386677762a6983fd5f04ab9c90f20bf0.png

eb2de3e84c96dab577eef39965d20fbc.png

CentOS7通过光盘进入救援模式

1.挂载光盘镜像

0de27bcea86e04512a60e8ea4164df8e.png

2.从BIOS启动

9c166fe947f0854c727583416f588ff7.png

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

7cc78b89e7a1f7c3fc1a1f9c0c48e7e5.png

4.按F10保存并退出

33bbb70e358569cca29e8d27f0d5d257.png

5.进入救援模式

2c450e7fd71a1a9f67772d2017b39939.png

6.选择救援模式

3535e2bf8825575cbff8bafc4dc2cb77.png

7.选择继续

34f752a0038227b8239ebc03a4dcdd1c.png

接下来就可以...做你想做的事

生产场景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删除了,需要修复

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

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

2.重启,查看系统状态

824eb4d00dbc01d1f58b252b516315bf.png

3.重启进入救援模式

2371720f865cecedd95c0228a5c3f3b4.png

4.进入系统,获取root权限

5acbc82103de663fd7b57bea63e75a94.png

5.修复MBR引导,然后重启连接服务器

09f1dcbdb2d2655df98d0d2c2e4f99af.png
#修复grub
bash-4.2# grub2-install /dev/sda
#退出
bash-4.2# exit
#重启进入系统
bash-4.2# reboot

生产场景3:

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

1.模拟故障

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

2.查看系统状态

98ce3b0e0169129361bf6a1ddb7fe9c5.png

3.重启进入救援模式

0526a1db4fa03cb9355ad05e509ceca6.png

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

5c6efe0118702cf0805ad6761f382121.png

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

5.查看加载出来的文件

5f75a4fccff6dfbab0f72424cd38cf6e.png
bash-4.2# ls /boot/grub2

6.退出重启

bash-4.2# exit
sh-4.2# reboot

cefa6e8f0f929d1cb135c38ea87db3a7.png

满血复活...

修改CentOS7网卡名称为eth0和eth1

这个可以在安装系统的时候,修改网卡名称,如果已经安装过的系统,那我们还是从BIOS界面到光盘启动,进入系统安装界面。

f0b821b4c01c62dbe45059c56dae3ead.png

选择 Install CentOS 7然后按下Tab键

7b2bf7238db2ddfcd8d05cfefc46d514.png

biosdevname=0 net.ifnames=0

如果不是dell物理机环境:

net.ifnames=0

Systemd 进程管理

systemd的由来

Linux一直以来都采用init进程作为爸爸,但是init有两个缺点:

1.启动时间长,init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。

2.启动脚本复杂,初始化完成后,系统会加载很多脚本,脚本都会处理各自的情况,这回让脚本多而复杂。

CentOS5 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系。

CentOS6 相对启动速度有所改进,有依赖的进程之间依次启动而其他没有依赖关系的则并行启动。

CentOS7 所有进程无论有无依赖关系,都并行启动,当然有很多时候进程并没有真正的启动而是只有一个信号或者说是标记,在真正利用的时候,才会真正启动。

这就类似咱们使用的windows,最开始win95,win98,win7启动速度极其的慢,从win8,开始win8.1,win10启动速度,快的yp...噌一下子就起来了。

b2311ef6fdcfb1aa94ca4d92174e4cca.png

什么是systemd

systemd即为system daemon守护进程,systemd主要解决上文的问题而诞生,systemd的目标是,为系统的启动和管理提供一套完整的解决方案。

systemd的优势

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

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

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

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

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

systemd相关的配置文件

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

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

/etc/systemd/system/multi-user.target.wants/

systemd相关的命令

由于之前长期使用RHEL/CentOS 6系统, 已经习惯使用service chkconfig等命令来管理系统服务,但在RHEL/CentOS 7系统中是使用systemctl命令来管理服务的。

如下是RHEL/CentOS 6系统中System V init命令与RHEL/CentOS 7系统中systemctl命令的对比,后续课程中会经常用到它们。

systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令

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服务不能被设定开机启动,但可以由其他服务启动该服务

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

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

相关文章

一点小思考

我记得12年的时候&#xff0c;我就申请了微信公众号&#xff0c;那时候我的号主是TCL&#xff0c;是公司的同事用我的微信号申请公司的主体号&#xff0c;那时候我也有一点想法自己做个公众号写点文章&#xff0c;但是一直没有下决心&#xff0c;后来离职了&#xff0c;原来用我…

第3章 Linux内核调试手段之二

gdb 和 addr2line 调试内核模块内核模块插入内核链表的时候&#xff0c;会调用 init 里面的程序&#xff0c;我们上面给的那个例程的程序因为是经过多年风吹雨打的&#xff0c;但是如果你是一个萌新的码农&#xff0c;你能保证自己写的内核模块没有问题吗&#xff1f;所以就需要…

儿童手表怎么删除联系人_华为儿童手表4X体验:与你一起守护孩子的成长,带娃不再辛苦...

带娃是一件很辛苦的事情&#xff0c;从身体到精神的辛苦&#xff0c;相信各位家长都懂。对于照看正在成长期的孩子&#xff0c;更是让很多家长亲身感受"成长的烦恼"。孩子活泼好动的天性让很多家长都不放心&#xff0c;同时大部分家长又没有能力随时在身边守护&#…

Jmeter分布式测试过程中遇到的问题及摘抄前辈问题汇总

遇到的常见问题&#xff1a; 1、在Controller端上控制某台机器Run&#xff0c;提示"Bad call to remote host"。 解决方法&#xff1a;检查被控制机器上的jmeter-server有没有启动&#xff0c;或者JMeter.properties中remote_hosts的配置错误。2、Agent机器启动Jmete…

介绍一个我创业的朋友

大家好&#xff0c;今天给大家介绍一位跟我一样正在创业路上的朋友&#xff0c;不知道大家对我之前的文章还有没有印象&#xff0c;最近我在做一件特别有意思的事情&#xff0c;这件有意思的事情一直催促着我起床上班&#xff0c;每天都充满能量和动力&#xff0c;又累又充实的…

微信小程序装修解决方案ppt_装修公司微信小程序都有哪些功能?

传统装修行业存在收费不透明、消费者装修服务过程体验差等问题&#xff0c;传统装修已无法满足消费者的实际需求&#xff0c;面临无客量、无签约的困境。然而&#xff0c;随着移动互联网的发展&#xff0c;许多装饰企业利用微信小程序来帮助其疏导和推广。一个装修公司小程序能…

要用什么态度去面对生活?

最近&#xff0c;张扣扣的新闻铺天盖地&#xff0c;因为我非常喜欢逛知乎&#xff0c;刚好张扣扣的新闻这几天上了知乎热搜&#xff0c;所以我就关注上了&#xff0c;说实话&#xff0c;有点痛心&#xff0c;外人看起来很爽&#xff0c;忍辱负重好多年&#xff0c;终于把自己的…

第3章 Linux内核调试手段之三

之前的内核调试&#xff0c;我觉得应该再加上下面的东西&#xff0c;只有好好把下面的几个问题研究透了&#xff0c;你可能才是一个真正的内核高手&#xff0c;或者说&#xff0c;你还不是一个高手&#xff0c;就是一个内核的普通工程师&#xff0c;这个是我和Z总聊天说的&…

中希尔排序例题代码_【数据结构与算法】这或许是东半球分析十大排序算法最好的一篇文章...

码农有道 历史文章目录(请戳我)关于码农有道(请戳我)前言本文全长 14237 字&#xff0c;配有 70 张图片和动画&#xff0c;和你一起一步步看懂排序算法的运行过程。预计阅读时间 47 分钟&#xff0c;强烈建议先收藏然后通过电脑端进行阅读。No.1 冒泡排序冒泡排序无疑是最为出名…

星期四随笔

周二的晚上&#xff0c;发了一篇文章&#xff0c;题目是《要用什么态度去面对生活》&#xff0c;发文是凌晨1点&#xff0c;早上7点起来&#xff0c;用手机刷了一下&#xff0c;很多回复&#xff0c;其中几个回复有点偏激&#xff0c;感觉被刺痛了&#xff0c;毕竟是睡着的&…

根据大小分割大文本_基于深度学习的图像分割在高德地图的实践

一、前言图像分割(Image Segmentation)是计算机视觉领域中的一项重要基础技术&#xff0c;是图像理解中的重要一环。图像分割是将数字图像细分为多个图像子区域的过程&#xff0c;通过简化或改变图像的表示形式&#xff0c;让图像能够更加容易被理解。更简单地说&#xff0c;图…

别人不让你发传单怎么办?

人生在世难免遇到几个傻逼&#xff0c;我今天没有上班&#xff0c;去外面兼职发了一天的传单&#xff0c;也许你们没有过发传单的经历&#xff0c;当然了&#xff0c;我也不是想为了增加人生阅历去发传单&#xff0c;单纯就是今天没什么事情&#xff0c;刚刚好公司停电&#xf…

模块化加载_谈谈双亲委派模型的第四次破坏-模块化

前言JDK9引入了Java模块化系统(Java Platform Moudle System)来实现可配置的封装隔离机制&#xff0c;同时JVM对类加载的架构也做出了调整&#xff0c;也就是双亲委派模型的第四次破坏。前三次破坏分别是&#xff1a;双亲委派模型推出之前&#xff0c;SPI机制&#xff0c;以及O…

第4章 原子操作

有一件事情&#xff0c;你不得不承认&#xff0c;C语言相对汇编来说是高级语言&#xff0c;为什么&#xff0c;因为高级语言会形成封装&#xff0c;比如&#xff0c;我需要把一个变量A&#xff0c;对于CPU来说&#xff0c;先从内存里把这个变量读进运算寄存器&#xff0c;然后运…

龙芯下中标系统C语言查找设备号_龙芯:主控进驻国产激光打印机并适配麒麟OS...

导读&#xff1a;龙芯中科宣布&#xff0c;龙芯1C0300B作为主控芯片&#xff0c;已经批量用于天津光电出品的多款激光打印机中&#xff0c;在打印扫描、通信控制、协议解析方面发挥着重要的作用。图&#xff1a;龙芯1C0300B 主控芯片龙芯1C系列是基于GS232处理器核的高性价比单…

随笔日记

最近加班比较多&#xff0c;昨晚上又坐了最后一班地铁回家&#xff0c;回到家已经是一点了&#xff0c;在路上遇到一个美团外卖的小哥&#xff0c;小哥跟我说&#xff0c;嗨&#xff0c;帅哥&#xff0c;我想借你的头盔用一下&#xff0c;你们可以想象一下&#xff0c;在晚上12…

C#的命名空间

对于大型组织而言&#xff0c;如果涉及到产品线&#xff0c;项目&#xff0c;公共平台很多&#xff0c;如何通过命名空间将所有代码有效的组织起来。就一个目的&#xff0c;用的时候能够很容易的找到。 对于命名空间在大型项目中&#xff0c;必须组织好&#xff0c;一般命名空间…

今日头条关键词排名怎么搜索_公众号搜索关键词排名、公众号怎么排名靠前

真正的互联网老鸟其实都知道&#xff0c;不管在线上推广什么产品都好&#xff0c;其实都没有所谓的难度&#xff0c;获取流量方式其实就是简单的一批&#xff0c;哪里有怎么玄乎&#xff0c;不管以后遇到什么问题&#xff0c;除了首先需要知道的核心关键词&#xff0c;无非就是…

​CPU单挑到群架发展史

CPU 又称中央处理器&#xff0c;搞软件开发的兄弟已经耳熟能详了&#xff0c;CPU 的发展史最基本的矛盾就是软件性能需求的快速提升与 CPU 技术工艺性能提升发展相对缓慢之间的矛盾。摩尔定律也是基于此背景&#xff0c;将硬件性能的有限提升给软件开发者一个预期&#xff0c;告…

JDK、JRE、JVM三者间的关系

JDK&#xff08;Java Development Kit&#xff09;是针对Java开发员的产品&#xff0c;是整个Java的核心&#xff0c;包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment&#xff08;JRE&#xff09;是运行JAVA程序所必须的环境的集合&#xff0c;包含J…