一、概述

目前在运维日常工作中,经常会遇到服务器异常断电、忘记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 [选项] 分区设备文件
表 1 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盘不可以)

1、服务器开机启动,进行BIOS界面后,选择快度铠甲启动项,一般机器均为F12;选择CD-ROM为第一引导分区。

2、进入光盘安装界面,选择第三项, 选择“Troubleshooting”回车 ,选择“Rescue a CentOS Linux system”回车。

3、进入救援模式下,选择“continue”:输入1  回车;

4、回车得到一个shell命令行,显示提示符后,根据提示输入chroot /mnt/sysimage 切换到原来的系统。

5、进入到单用户模式下,进行相关操作即可,与CentOS6类同。如修改root密码:

-----------------------------------------------------------书山有路勤为径,学海无涯苦作舟-------------------------------------------------------------

Linux系统CentOS进入单用户模式和救援模式详解的更多相关文章

  1. Windows主机里利用VMware安装Linux(CentOS)虚拟机,Host-only连接上网方式详解

    关于Host-only指的是主机与虚拟机之间的互联,因此虚拟机是不能连网的,若需要连网则需要使用NAT模式: Host-only模式实现联网得考虑如下配置过程: 附:VMware虚拟机三种网络模式(B ...

  2. Linux系统编程(36)—— socket编程之UDP详解

    UDP 是User DatagramProtocol的简称,中文名是用户数据报协议.UDP协议不面向连接,也不保证传输的可靠性,例如: 1.发送端的UDP协议层只管把应用层传来的数据封装成段交给IP协 ...

  3. Linux系统编程(31)—— socket编程之TCP详解

    TCP有源端口号和目的端口号,通讯的双方由IP地址和端口号标识.32位序号.32位确认序号.窗口大小稍后详细解释.4位首部长度和IP协议头类似,表示TCP协议头的长度,以4字节为单位,因此TCP协议头 ...

  4. CentOS 7 单用户模式+救援模式

    CentOS 7 单用户模式+救援模式 CentOS 7 单用户模式+救援模式.有时候大家可能会忘记自己的root密码,或者错误(命令输入错误,命令位置输入有误等)编辑了一个/etc目录下的核心文件导 ...

  5. Linux忘记root密码 单用户模式 及启动加密

    单用户模式: 在系统启动引导读秒时,按任意键进入系统选项 再按  e  键   选择第二项  按 e  进入编辑  输入  空格  1 然后回车  再按B  键 不需要密码即可进入系统 再passwd ...

  6. linux系统Centos环境下搭建SVN服务器及权限配置

    linux系统Centos环境下如何搭建SVN服务器以及svnserve.conf.authz.passwd配置文件详细介绍   至于svn的概念,这里就不做详细阐述了,可以自行百度.简单来讲就是一个 ...

  7. VMware 安装Linux系统 CentOS

    VMware 安装Linux系统 CentOS 1.  下载镜像系统 centos镜像下载地址:https://www.centos.org/download/ 选择DVD下载即可 linux各版本下 ...

  8. Linux系统如何禁止普通用户切换root?

    Linux系统如何禁止普通用户切换root? 在上正文之前,我们先将一些基础的Linux用户以及用户组的相关命令: 1.添加用户 useradd [-g group] [-d user_home_di ...

  9. Linux用户、用户组权限管理详解 --- 02

    2,用户.用户组管理操作详解: 2.1 adduser 添加用户: adduser [-u uid][-g group][-d home][-s shell] -u:直接给出userID        ...

随机推荐

  1. 爬虫学习(二)requests模块的使用

    一.requests的概述 requests模块是用于发送网络请求,返回响应数据.底层实现是urllib,而且简单易用,在python2.python3中通用,能够自动帮助我们解压(gzip压缩的等) ...

  2. JavaScript小记

    JavaScript小记 1. 简介 1. 语言描述 JavaScript 是一门跨平台.面向对象的弱类型动态脚本编程语言 JavaScript 是一门基于原型.函数先行的语言 JavaScript ...

  3. 导出带有图片的excel

    public static void main(String[] args) { try { FileOutputStream out = new FileOutputStream("d:\ ...

  4. XV6学习(1) Lab util

    正在学习MIT的6.S081,把做的实验写一写吧. 实验的代码放在了Github上. 第一个实验是Lab util,算是一个热身的实验,没有涉及到系统的底层,就是使用系统调用来完成几个用户模式的小程序 ...

  5. Vue中组件间通信的方式

    Vue中组件间通信的方式 Vue中组件间通信包括父子组件.兄弟组件.隔代组件之间通信. props $emit 这种组件通信的方式是我们运用的非常多的一种,props以单向数据流的形式可以很好的完成父 ...

  6. jQuery 留言表单验证

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. jdk安装简洁版

    一.jdk是what? jdk其实是个软件语言开发包,包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具. 没有JDK的话,无法编译Java程序(指java源码.java文件),如果想 ...

  8. VMware vSphere (EXSI) 安装使用

    VMware vSphere 镜像下载 VMware vSphere Hypervisor (ESXi) 6.7 https://my.vmware.com/cn/web/vmware/downloa ...

  9. Hugo 博客中文指南(基础教程)

    1. 安装 Hugo 从 Hugo 项目主页下载 Releases 文件,解压 hugo.exe 文件到 C:\Windows\System32 目录下. 2. 创建站点 hugo new site ...

  10. Web渗透-SQLmap

    Web渗透-SQLmap 一.sqlmap简介 1.1 sqlmap 参数解析 二.sqlmap自动化注入 2.4 提权操作 示例步骤: 1.获得当前数据库 2.获得数据库表 3.获得表的字段 4.获 ...