Linux系统引导过程及排除启动故障
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
一、Linux操作系统引导过程
二、系统初始化进程
三、排除启动类故障
3.1模拟修复MBR扇区故障问题
3.2 修复GRUB引导故障
3.3遗忘root用户的密码怎么更改
提示:以下是本篇文章正文内容,下面案例可供参考
一、Linux操作系统引导过程
1.开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。
总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱
2.MBR 引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单(如 GRUB)。
总结:运行放在MBR扇区里的启动GRUB引导程序
3.GRUB 菜单
对于Linux操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。
CentOS 7 采用的是 GRUB2 启动引导器。
总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
4.加载 Linux 内核
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。
CentOS 7系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。
总结:把内核和镜像文件系统加载到内存中
5.init 进程初始化
为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init 进程负责完成整个系统的初始化,最后等待用户进行登录。
总结:加载硬件驱动程序,内核把init进程加载到内存中运行
传统sysvinit依赖于串行执行 Shell 脚本启动服务,导致效率低下,系统启动速度较慢
systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度。
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、系统初始化进程
1、init进程
●由linux内核加载运行/sbin/init程序
●init进程是系统中第一个进程
●init进程的PID(进程标记)号永远为1
2、Systemd
●Systemd也是linux操作系统的一种init软件
●CentOS7采用全新的Systemd启动方式,取代传统的SysVinit
●CentOS中运行的第一个init进程是/lib/systemd/systemd
三、排除启动类故障
●MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节
应用场景
●故障原因
病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作
●故障现象
找不到引导程序,启动中断
无法加载操作系统,开机后黑屏
●解决思路
应提前做好备份文件
以安装光盘引导进入急救模式
从备份文件中恢复
3.1模拟修复MBR扇区故障问题
步骤一
先创建一个备份磁盘并分区
fdsik /dev/sdb 进行分区
2.格式化磁盘并挂载到指定目录
[root@ky17 bao]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310656 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242624, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@ky17 bao]# cd /home
[root@ky17 home]# cd
[root@ky17 ~]# mkdir /back
[root@ky17 ~]# mount /dev/sdb1 /back
[root@ky17 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda3 xfs 57G 4.7G 52G 9% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 167M 330M 34% /boot
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/1000
/dev/sdb1 xfs 20G 33M 20G 1% /back
[root@ky17 ~]#
3.把主磁盘数据备份到sdb1
mbr.bak是备份文件 bs是字节数 MBR只有512个字节
[root@ky17 ~]# dd if=/dev/sda of=/back/mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000226775 秒,2.3 MB/秒
[root@ky17 ~]#
4.模拟破坏MBR引导扇区
zero是空洞文件
[root@ky17 ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000182723 秒,2.8 MB/秒
[root@ky17 ~]#
5.init 6重启虚拟机,进入急救模式
选择白色光标位置回车
输入1选择continue 回车
6.创建目录并挂载备份磁盘
7.恢复备份
8.exit回车等待重启 成功恢复
3.2 修复GRUB引导故障
方法一
和修复MBR扇区方法一致把bs=512改为bs=446就可以了(因为DRUB2就占446个字节)
方法二
1.引导界面进入急救信息
init6重启虚拟机
[bao@ky17 ~]$ su
密码:
[root@ky17 bao]# cd /home/
[root@ky17 home]# rm -rf /boot/grub2/grub.cfg
[root@ky17 home]# init 6
2.重启后输入exit 回车进入系统界面选择急救模式
.
输入1选择continue 回车
3.加载镜像,切换到系统根环境,并重新将grub安装到sda的MRB 扇区
4.重新构建GRUB菜单的配置文件
5.退出chroot,并重启
6.成功
3.3遗忘root用户的密码怎么更改
方法一 适用于有镜像文件的情况
●进入急救模式,加载系统镜像,切换到系统根环境
sh-4.2# chroot /mnt/sysimage
●重设root用户密码
bash-4.2# passwd root
方法二 适用没有镜像文件的情况
1.在这个界面按e键
2..编辑修改∶大约在第16行找到"ro" 将"ro" 修改为" rw init=/sysroot/bin/bash";3.按Ctrl+X重启
如果找不到ro 方向键向下按就可以了
3.ctrl+x后进入这个界面
4.输入chroot /sysroot
passwd root 更改密码
输入LANG=en_US.UFT-8去除乱码(不输入也可以改,只是不方便看)
再次输入passwd root 更改密码
设置密码
5.退出重启
6.重启验证root密码
代码如下(示例):
该处使用的url网络请求的数据。
Linux系统引导过程及排除启动故障相关推荐
- Linux系统引导过程及故障排除
Linux系统引导过程及故障排除 一.Linux操作系统引导过程 二.系统初始化进程 三.排除启动类故障 (一)修复MBR扇区故障 (二)修复GRUB引导故障 (四)遗忘root用户的密码 一.Lin ...
- Linux系统引导过程(BIOS和Bootloader部分)
Linux系统引导过程(BIOS和Bootloader部分) 刘建文( http://blog.csdn.net/keminlau ) KEY:x86体系 CPU 系统引导 启动过程 Linux LI ...
- linux 更改 引导分区,Linux系统引导过程及引导修复
0.Linux系统引导过程: 1.通电 2.bios初始化 3.磁盘引导阶段 4.grub2文件引导程序 5.内核加载 6.系统初始化镜像 7.系统启动级别 8.超级用户密码 以下内容是针对各过程会出 ...
- Linux系统引导过程及引导修复详解
Linux系统引导过程及引导修复 前言: 在我们启动Linux系统时,需要先通电,接着系统会自动进行bios初始化,对硬件进行检测并初始化硬件时钟,之后就进入了 Linux系统引导过程.Linux系统 ...
- Linux系统引导过程及修复
Linux系统引导过程及修复 1.通电 2.bios初始化 2.1 bios简介 2.2作用 3.磁盘引导 3.1mbr 3.2当mbr数据丢失系统会因为找不到启动分区而停止启动 3.2.1问题模拟方 ...
- 图文详解Linux系统引导过程及引导修复
目录 前言 一.磁盘引导与修复 1.模拟问题 2.修复方式 二.grub2 文件引导与修复 1.模拟问题1 2.引导及修复过程 3.模拟问题2 4.引导及修复过程 三.内核加载 1.模拟问题 2.引导 ...
- linux分区引导修复工具,linux系统引导过程及引导修复
系统的引导过程 1.通电 2.bios初始化 eg:内存,硬盘没插好 3.磁盘引导 硬盘里面的数据是以分区形式保存,硬盘上的磁头对硬盘的数据进行扫描 ## 磁道:磁头转一周的轨迹,可以确定数据在哪一环 ...
- Linux系统引导过程及修复引导
目录 一.bios初始化 二.磁盘引导 1.mbr:主引导记录,446字节 2.问题模拟方式 三 .磁盘丢失 1.虚拟机中破坏系统引导 2.进入挽救模式 3.修复 4.磁盘进入 三.grub2文件引导 ...
- 第八章 linux系统引导过程及引导修复
1.bios初始化 虚拟机可通过如下方法进入 调整默认启动 关闭selinux vim /etc/sysconfig/selinux 2.磁盘引导 mbr=主引导记录=0磁道1扇区446 作用: 记录 ...
最新文章
- android 数字时钟代码大全,Android自定义view实现数字时钟
- boost::fusion::convert用法的测试程序
- 如何卸载pip 重新安装mysql_pip install cymysql失败的解决办法 | 厘米天空
- 炒房客身家过亿 曝炒房心得及地产10大真相
- php 继承多个接口,PHP接口多继承及tarits实现多继承效果的方法
- html 内嵌xml数据库,是否可以在SQLite数据库中存储XML/HTML文件?
- 基于JAVA+SpringBoot+Mybatis+MYSQL的送水公司后台管理系统
- web.xml 基本配置
- MySql基础汇总-DDL DML DQL DCL,存储过程,事务,触发器,函数等
- android 自动更新
- c语言else不运行,if...else if..else第三句不执行?
- VR打造视觉盛宴,丰富精彩生活
- SqlParameter类——带参数的SQL语句
- 全网首发:成功解决UOS系统上运行JAVA程序任务栏名称问题
- Shiro 放行Swagger
- C语言实现去掉字符串中重复的字符
- SQL Server with ties 语句
- js如何修改对象的padding属性
- 如何做一个基于微信电子书阅读小程序系统毕业设计毕设作品
- 算法工程 # 深度学习算法落地最后一公里:工业界中的大规模向量检索
热门文章
- 敏捷开发“松结对编程”实践之三:共同估算篇(大型研发团队,学习型团队,139团队,师徒制度,敏捷设计,估算扑克,扑克牌估算) .
- 在TITAN RTX 2080Ti 上安装 Ubuntu18.04+Nvidia-430显卡驱动+配置深度学习环境(1)
- 项目经理的进阶之路——项目集管理
- 100句记住7000单词
- go语言学习笔记(三)
- 低功率、运动传感器 PYQ 1548/7659 特性及应用
- WeRateDog---分析推特数据
- 高数 下总复习 完结
- 送外卖优先级_如何在恶劣天气让外卖小哥优先送您的订单?
- AI人工智能简介和其定义