详解在 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 中引导到救援模式的更多相关文章

  1. 详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别

    详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别 http://blog.sina.com.cn/s/blog_686999de0100jgda.html   实例: ...

  2. 详解 Go 语言中的 time.Duration 类型

    swardsman详解 Go 语言中的 time.Duration 类型swardsman · 2018-03-17 23:10:54 · 5448 次点击 · 预计阅读时间 5 分钟 · 31分钟之 ...

  3. 详解jquery插件中(function ( $, window, document, undefined )的作用。

    1.(function(window,undefined){})(window); Q:(function(window,undefined){})(window);中为什么要将window和unde ...

  4. zz详解深度学习中的Normalization,BN/LN/WN

    详解深度学习中的Normalization,BN/LN/WN 讲得是相当之透彻清晰了 深度神经网络模型训练之难众所周知,其中一个重要的现象就是 Internal Covariate Shift. Ba ...

  5. [转载]详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表

    [转载]详解网络传输中的三张表,MAC地址表.ARP缓存表以及路由表 虽然学过了计算机网络,但是这部分还是有点乱.正好在网上看到了一篇文章,讲的很透彻,转载过来康康. 本文出自 "邓奇的Bl ...

  6. 详解WebService开发中四个常见问题(2)

    详解WebService开发中四个常见问题(2)   WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...

  7. 详解WebService开发中四个常见问题(1)

    详解WebService开发中四个常见问题(1)   WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...

  8. 详解Python编程中基本的数学计算使用

    详解Python编程中基本的数学计算使用 在Python中,对数的规定比较简单,基本在小学数学水平即可理解. 那么,做为零基础学习这,也就从计算小学数学题目开始吧.因为从这里开始,数学的基础知识列位肯 ...

  9. 第7.16节 案例详解:Python中classmethod定义的类方法

    第7.16节  案例详解:Python中classmethod定义的类方法 上节介绍了类方法定义的语法以及各种使用的场景,本节结合上节的知识具体举例说明相关内容. 一.    案例说明 本节定义的一个 ...

  10. Signalr系列之虚拟目录详解与应用中的CDN加速实战

    目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...

随机推荐

  1. 小知识:如何配置OSW添加私网监控

    最近遇到一个Case,Oracle Support要求添加私网(心跳网络)监控. OSW默认是没有私网监控的,如需增加只需配置private.net文件,对应采集信息会存放到archive/oswpr ...

  2. Vdbench 使用说明

    一. vdbench简介 vdbench是一个 I/O 工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能.它是一个免费的工具,容易使用,而且常常用于测试和基准测试. 可以使用vd ...

  3. 基于python+mysql的宠物领养网站系统

    功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发. 整个平台包括前台和后台两个部分. 前台功能包括:首页.宠物详情页.用户中心模块. 后台功能包 ...

  4. 【解决方案】Java 互联网项目如何防止集合堆内存溢出(一)

    目录 前言 一.代码优化 1.1Stream 流自分页 1.2数据库分页 1.3其它思考 二.硬件配置 2.1云服务器配置 三.文章小结 前言 OOM 几乎是笔者工作中遇到的线上 bug 中最常见的, ...

  5. Centos8 单机配置 Zookeeper3.6.3 集群

    安装 Zookeeper 3.6.3 前提 已经安装好 JDK8+. 如果使用JDK8, 版本需要在211以上. 下载, 解压 使用root用户 wget https://downloads.apac ...

  6. Js实现链表操作

    Js实现链表操作 JavaScript实现链表主要操作,包括创建链表.遍历链表.获取链表长度.获取第i个元素值.获取倒数第i个元素值.插入节点.删除节点.有序链表合并.有序链表交集. 创建链表 cla ...

  7. linux下python3环境安装(源码编译的方式安装)

    1.将压缩包上传到/usr/local/ 2.解压压缩包 tar -xzvf Python-3.6.6.tgz 3.装一些编译源码需要的依赖文件 yum -y install gcc make cma ...

  8. django中使用redis管道

    管道(事务),要是都成功则成功,失败一个全部失败 原理:将数据操作放在内存中,只有成功后,才会一次性全部放入redis 记住,redis中的管道可以开启事务处理,但是并没有回滚这一说法!跟mysql中 ...

  9. 【Azure Notification Hub】创建Notification Hub失败,提示 unrecognized arguments: --sku Free

    问题描述 用Azure CLI命令创建 Notification Hub,报错不识别的参数 --Free SKU 问题解答 经测试发现,在创建Notification Hub前,需要创建 Notifi ...

  10. 【Azure 应用服务】App Service多个部署槽(Slot)之间,设置Traffic百分比后,如何来判断请求是由那一个槽(Slot)来进行处理呢?

    问题描述 当我们部署应用到App Service后,为了实现对生成的最小影响,通常是把新版本部署在一个预生产的槽中,然后进行验证.另一方面,为了进行A/B验证,需要把生成槽的流量,切入一部分到预生产槽 ...