详解在 centos 中引导到救援模式
详解在 centos 中引导到救援模式
Linux系统CentOS进入单用户模式和救援模式详解
一、概述
目前在运维日常工作中,经常会遇到服务器异常断电、忘记root密码、系统引导文件损坏无法进入系统等等操作系统层面的问题,给运维带来诸多不便,现将上述现象的解决方法和大家分享一下,本次主要以CentOS为例;
二、CentOS 6 进入单用户模式
1、重启服务器,系统加载至如图界面时,按“E”键,进入grub引导菜单的内核界面
2、在内核界面选择使用上下箭头移动并选择内核;
3、内核选定之后再次按下“E”键进行编辑;
4、在最后一行后面加上数字1(是单用户模式的运行级别)或者single然后回车(补充:好像加数字1比较有效);
内核启动时的选
选项 | 含义 |
---|---|
init=/sbin/init | 告诉内核用/sbin/init作为它的init程序 |
init=/bin/bash | 只启动bash,在紧急恢复时有用 |
root=/dev/foo | 告诉内核用/dev/foo作为根设备 |
single | 引导进入单用户模式 |
5、然后根据提示按下b键(boot)进行重新引导;
6、重启后,可以进入系统,现在就是单用户模式。我们查看一下系统刚刚是从哪个运行级别进来的;
7、现在我们可以进行相关操作,如:修改 root以及其他账户密码;使用fsck进行系统修复、配置IP地址后,可以备份数据等等
三、CentOS 6 进入救援模式
1、首先开机后,选择进入快速引导模式下,一般服务器都会选择F12,选择CD-ROM为第一引导分区。
2、重启后进入安装菜单,选中Rescue install system(救援模式) 后回车;
3、选择语言,保持默认English
4、选择键盘类型,保持默认us
5、是否启动网络,需要根据你实际情况进行选择,如果需要通过联网拷贝数据,选择YES,在这里我们选择NO;
6、进入到Rescue界面,选择Continue
7、系统挂载在/mnt/sysimage下 如果要到root环境下,运行 chroot /mnt/sysimage 命令
8、三种选项:shell 进入命令行模式;fakd是诊断模式;reboot重启电脑;我们这里选择shell
9、进入shell命令行,提示符为bash-4.1#
ls /mnt/sysimage/ 显示挂载的目录为根目录的文件
执行chroot /mnt/sysimage/ 将/mnt/sysimage/目录下的文件移动到根目录;
命令后提示符为sh-4.1#
ls 显示为根目录的文件;
进入该模式下,可以选择进行相关操作,如修改root密码,使用fsck命令进行修复磁盘和文件等。
10、在sh-4.1#模式下需要先exit退出,回到bash-4.1#才可以reboot重启系统;
----------------------------------------------------------------------------------------------
特别介绍:
fsck 命令用于检查文件系统并尝试修复出现的错误。
命令的基本格式如下:
[root@localhost ~]``# fsck [选项] 分区设备文件
选项 | 功能 |
---|---|
-a | 自动修复文件系统,没有任何提示信息。 |
-r | 采取互动的修复模式,在修改文件前会进行询问,让用户得以确认并决定处理方式。 |
-A(大写) | 按照 /etc/fstab 配置文件的内容,检查文件内罗列的全部文件系统。 |
-t 文件系统类型 | 指定要检查的文件系统类型。 |
-C(大写) | 显示检查分区的进度条。 |
-f | 强制检测,一般 fsck 命令如果没有发现分区有问题,则是不会检测的。如果强制检测,那么不管是否发现问题,都会检测。 |
-y | 自动修复,和 -a 作用一致,不过有些文件系统只支持 -y。 |
此命令通常只有身为 root 用户且文件系统出现问题时才会使用,否则,在正常状况下使用 fsck 命令,很可能损坏系统。另外,如果你怀疑已经格式化成功的硬盘有问题,也可以使用此命令来进行检查。
使用 fsck 检查并修复文件系统是存在风险的,特别是当硬盘错误非常严重的时候,因此,当一个受损文件系统中包含了非常有价值的数据时,务必首先进行备份!
需要注意:在使用 fsck 命令修改某文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是非常不安全的,数据可能会遭到破坏,也有可能会损坏磁盘。
举例说明:如果想要修复某个分区,则只需执行如下命令:
[root@docker-01 ~]``# df -hP //查看一下硬盘分区情况,我的目前没有损坏,只是举例说明``文件系统 容量 已用 可用 已用% 挂载点``devtmpfs 3.9G 0 3.9G 0% ``/dev``tmpfs 3.9G 0 3.9G 0% ``/dev/shm``tmpfs 3.9G 281M 3.6G 8% ``/run``tmpfs 3.9G 0 3.9G 0% ``/sys/fs/cgroup``/dev/mapper/centos-root` `20G 2.9G 18G 15% /``/dev/mapper/centos-data` `78G 33M 78G 1% ``/data``/dev/xvda1` `197M 166M 32M 85% ``/boot``tmpfs 782M 0 782M 0% ``/run/user/0``overlay 20G 2.9G 18G 15% ``/var/lib/docker/overlay2/e147ff81360b119d6f724e68fb781e6c2aa93c983f3e264b94ba84e71528e37d/merged``[root@docker-01 ~]``# fsck -r /dev/mapper/centos-root //采用互动的修复模式,本次我修复的是根分区``fsck``,来自 util-linux 2.23.2``If you wish to check the consistency of an XFS filesystem or``repair a damaged filesystem, see xfs_repair(8).``/dev/mapper/centos-root``: status 0, rss 1460, real 0.008662, user 0.000980, sys 0.000980
fsck 命令在执行时,如果发现存在没有文件系统依赖的文件或目录,就会提示用户是否把它们找回来,因为这些没有文件系统依赖的文件或目录对用户来说是看不到的,换句话说,用户根本无法使用,这通常是由文件系统内部结构损坏导致的。如果用户同意找回(输入 y),fsck 命令就会把这些孤立的文件或目录放到 lost+found 目录中,并用这些文件自己对应的 inode 号来命名,以便用户查找自己丢失的文件。
因此,当用户在利用 fsck 命令修复磁盘分区以后,如果发现分区中有文件丢失,就可以到对应的 lost+found 目录中去查找,但由于无法通过文件名称分辨各个文件,这里可以利用 file 命令查看文件系统类型,进而判断出哪个是我们需要的文件。
Linux开关机&重启命令:
重启:reboot、init6 、shutdown -r now
关机:PowerOff、init0 、halt
Linux运行级别:
0 --- 关机;
1 --- 单用户模式
2 --- 命令行多用户模式,不带nfs网络
3 --- 命令行多用户模式
4 --- 保留
5 --- 图形界面
6 --- 重启
--------------------------------------------------------------------------------------------
四、CentOS 7 进入单用户模式
1、服务器按开机按钮,在进入条出现选择内核系统时,按“e”键,之后使用上下按键进行选择,在按“e”键进入编辑模式
2、进入编辑界面后,快速定位到ro 处(ro=readonly),把ro修改成“rw init=/sysroot/bin/sh”,完成后按 Ctrl+X 启动运行。
3、进入到单用户模式下 ,输入 chroot /sysroot/ 改变根分区,使用passwd root修改root密码;
注:可使用 touch /.autorelabel (为了使selinux生效)
五、CentOS 7进入到救援模式,进入救援模式需要系统安装光盘(注:U盘不可以)
注意:
如果你是在虚拟机里面的话,重启,只有0.5秒,快速按下esc按键
如果还是进不去
也可以ctrl+alt+insert,之后再按一下esc,注意按多下等于自动取消了
1、服务器开机启动,进行BIOS界面后,选择快度铠甲启动项,一般机器均为F12;选择CD-ROM为第一引导分区。
2、进入光盘安装界面,选择第三项, 选择“Troubleshooting”回车 ,选择“Rescue a CentOS Linux system”回车。
3、进入救援模式下,选择“continue”:输入1 回车;
4、回车得到一个shell命令行,显示提示符后,根据提示输入chroot /mnt/sysimage 切换到原来的系统。
5、进入到单用户模式下,进行相关操作即可,与CentOS6类同。如修改root密码:
详解在 centos 中引导到救援模式的更多相关文章
- 详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别
详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别 http://blog.sina.com.cn/s/blog_686999de0100jgda.html 实例: ...
- 详解 Go 语言中的 time.Duration 类型
swardsman详解 Go 语言中的 time.Duration 类型swardsman · 2018-03-17 23:10:54 · 5448 次点击 · 预计阅读时间 5 分钟 · 31分钟之 ...
- 详解jquery插件中(function ( $, window, document, undefined )的作用。
1.(function(window,undefined){})(window); Q:(function(window,undefined){})(window);中为什么要将window和unde ...
- zz详解深度学习中的Normalization,BN/LN/WN
详解深度学习中的Normalization,BN/LN/WN 讲得是相当之透彻清晰了 深度神经网络模型训练之难众所周知,其中一个重要的现象就是 Internal Covariate Shift. Ba ...
- [转载]详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
[转载]详解网络传输中的三张表,MAC地址表.ARP缓存表以及路由表 虽然学过了计算机网络,但是这部分还是有点乱.正好在网上看到了一篇文章,讲的很透彻,转载过来康康. 本文出自 "邓奇的Bl ...
- 详解WebService开发中四个常见问题(2)
详解WebService开发中四个常见问题(2) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...
- 详解WebService开发中四个常见问题(1)
详解WebService开发中四个常见问题(1) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...
- 详解Python编程中基本的数学计算使用
详解Python编程中基本的数学计算使用 在Python中,对数的规定比较简单,基本在小学数学水平即可理解. 那么,做为零基础学习这,也就从计算小学数学题目开始吧.因为从这里开始,数学的基础知识列位肯 ...
- 第7.16节 案例详解:Python中classmethod定义的类方法
第7.16节 案例详解:Python中classmethod定义的类方法 上节介绍了类方法定义的语法以及各种使用的场景,本节结合上节的知识具体举例说明相关内容. 一. 案例说明 本节定义的一个 ...
- Signalr系列之虚拟目录详解与应用中的CDN加速实战
目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...
随机推荐
- 小知识:如何配置OSW添加私网监控
最近遇到一个Case,Oracle Support要求添加私网(心跳网络)监控. OSW默认是没有私网监控的,如需增加只需配置private.net文件,对应采集信息会存放到archive/oswpr ...
- Vdbench 使用说明
一. vdbench简介 vdbench是一个 I/O 工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能.它是一个免费的工具,容易使用,而且常常用于测试和基准测试. 可以使用vd ...
- 基于python+mysql的宠物领养网站系统
功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发. 整个平台包括前台和后台两个部分. 前台功能包括:首页.宠物详情页.用户中心模块. 后台功能包 ...
- 【解决方案】Java 互联网项目如何防止集合堆内存溢出(一)
目录 前言 一.代码优化 1.1Stream 流自分页 1.2数据库分页 1.3其它思考 二.硬件配置 2.1云服务器配置 三.文章小结 前言 OOM 几乎是笔者工作中遇到的线上 bug 中最常见的, ...
- Centos8 单机配置 Zookeeper3.6.3 集群
安装 Zookeeper 3.6.3 前提 已经安装好 JDK8+. 如果使用JDK8, 版本需要在211以上. 下载, 解压 使用root用户 wget https://downloads.apac ...
- Js实现链表操作
Js实现链表操作 JavaScript实现链表主要操作,包括创建链表.遍历链表.获取链表长度.获取第i个元素值.获取倒数第i个元素值.插入节点.删除节点.有序链表合并.有序链表交集. 创建链表 cla ...
- linux下python3环境安装(源码编译的方式安装)
1.将压缩包上传到/usr/local/ 2.解压压缩包 tar -xzvf Python-3.6.6.tgz 3.装一些编译源码需要的依赖文件 yum -y install gcc make cma ...
- django中使用redis管道
管道(事务),要是都成功则成功,失败一个全部失败 原理:将数据操作放在内存中,只有成功后,才会一次性全部放入redis 记住,redis中的管道可以开启事务处理,但是并没有回滚这一说法!跟mysql中 ...
- 【Azure Notification Hub】创建Notification Hub失败,提示 unrecognized arguments: --sku Free
问题描述 用Azure CLI命令创建 Notification Hub,报错不识别的参数 --Free SKU 问题解答 经测试发现,在创建Notification Hub前,需要创建 Notifi ...
- 【Azure 应用服务】App Service多个部署槽(Slot)之间,设置Traffic百分比后,如何来判断请求是由那一个槽(Slot)来进行处理呢?
问题描述 当我们部署应用到App Service后,为了实现对生成的最小影响,通常是把新版本部署在一个预生产的槽中,然后进行验证.另一方面,为了进行A/B验证,需要把生成槽的流量,切入一部分到预生产槽 ...