Linux系统CentOS进入单用户模式和救援模式详解
<p><span style="font-size: 16px"><strong><span style="color: rgba(0, 0, 255, 1)">一、概述</span></strong></span></p><p> 目前在运维日常工作中,经常会遇到服务器异常断电、忘记root密码、系统引导文件损坏无法进入系统等等操作系统层面的问题,给运维带来诸多不便,现将上述现象的解决方法和大家分享一下,本次主要以CentOS为例;</p>
<p><span style="font-size: 16px"><strong><span style="color: rgba(0, 0, 255, 1)">二、CentOS 6 进入单用户模式</span></strong></span><br>1、重启服务器,系统加载至如图界面时,按“E”键,进入grub引导菜单的内核界面</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200415092045186-1540027471.png"></p>
<p>2、在内核界面选择使用上下箭头移动并选择内核;</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200415084928041-547607058.png"></p>
<p>3、内核选定之后再次按下“E”键进行编辑; </p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200415085001456-71459052.png"></p>
<p>4、在最后一行后面加上数字1(是单用户模式的运行级别)或者single然后回车(补充:好像加数字1比较有效);</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200415085359150-1066367322.png"> </p>
<p>内核启动时的选</p>
<table border="0">
<tbody>
<tr>
<td>选项</td>
<td>含义</td>
</tr>
<tr>
<td>init=/sbin/init</td>
<td>告诉内核用/sbin/init作为它的init程序</td>
</tr>
<tr>
<td>init=/bin/bash</td>
<td>只启动bash,在紧急恢复时有用</td>
</tr>
<tr>
<td>root=/dev/foo</td>
<td>告诉内核用/dev/foo作为根设备</td>
</tr>
<tr>
<td>single</td>
<td>引导进入单用户模式<br><br></td>
</tr>
</tbody>
</table>
<p>5、然后根据提示按下b键(boot)进行重新引导;</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200415085517933-1748876483.png"> </p>
<p> 6、重启后,可以进入系统,现在就是单用户模式。我们查看一下系统刚刚是从哪个运行级别进来的;</p>
<p> <img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200415085724815-330645176.png"></p>
<p> <img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200415085753859-52130329.png"></p>
<p>7、现在我们可以进行相关操作,如:修改 root以及其他账户密码;使用fsck进行系统修复、配置IP地址后,可以备份数据等等 </p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200415090511955-641642701.png"></p>
<p><span style="font-size: 16px"><strong><span style="color: rgba(0, 0, 255, 1)">三、CentOS 6 进入救援模式</span></strong></span></p>
<p> 1、首先开机后,选择进入快速引导模式下,一般服务器都会选择F12,选择CD-ROM为第一引导分区。</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416081924513-621456485.png"></p>
<p> </p>
<p>2、重启后进入安装菜单,选中Rescue install system(救援模式) 后回车;</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416082022001-554366794.png"></p>
<p> </p>
<p>3、选择语言,保持默认<strong>English</strong> </p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416082041834-666172104.png"></p>
<p> </p>
<p> 4、选择键盘类型,保持默认<strong>us</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416082100936-1724617484.png"></p>
<p> </p>
<p>5、是否启动网络,需要根据你实际情况进行选择,<strong><span style="color: rgba(255, 102, 0, 1)">如果需要通过联网拷贝数据,选择YES</span></strong>,在这里我们选择NO; </p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416082137140-1784341680.png"></p>
<p> </p>
<p> 6、进入到Rescue界面,选择<strong>Continue</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416082150211-801205823.png"></p>
<p> </p>
<p>7、系统挂载在/mnt/sysimage下 如果要到root环境下,运行 chroot /mnt/sysimage 命令 </p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416082231962-1930919208.png"></p>
<p>8、三种选项:shell 进入命令行模式;fakd是诊断模式;reboot重启电脑;我们这里选择<strong>shell</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416082241586-1257946003.png"> </p>
<p>9、进入shell命令行,提示符为bash-4.1#</p>
<p>ls /mnt/sysimage/ 显示挂载的目录为根目录的文件</p>
<p>执行<strong>chroot /mnt/sysimage/</strong> 将/mnt/sysimage/目录下的文件移动到根目录;</p>
<p>命令后提示符为sh-4.1#</p>
<p>ls 显示为根目录的文件;</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416082329761-1812376302.png"></p>
<p>进入该模式下,可以选择进行相关操作,如修改root密码,使用fsck命令进行修复磁盘和文件等。</p>
<p>10、在sh-4.1#模式下需要先<strong>exit</strong>退出,回到bash-4.1#才可以<strong>reboot</strong>重启系统;</p>
<p> <img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416082434321-1188105906.png"></p>
<p>----------------------------------------------------------------------------------------------</p>
<p><span style="font-size: 16px"><strong><span style="color: rgba(0, 0, 255, 1)">特别介绍:</span></strong></span></p>
<p><span style="font-size: 15px"><strong><span style="color: rgba(255, 102, 0, 1)">fsck</span> </strong></span>命令用于检查文件系统并尝试修复出现的错误。 </p>
<p>命令的基本格式如下:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;"># fsck [选项] 分区设备文件</pre>
</div>
<table><caption>表 1 fsck命令常用选项及其功能</caption>
<tbody>
<tr><th>选项</th><th>功能</th></tr>
<tr>
<td>-a</td>
<td>自动修复文件系统,没有任何提示信息。</td>
</tr>
<tr>
<td>-r</td>
<td>采取互动的修复模式,在修改文件前会进行询问,让用户得以确认并决定处理方式。</td>
</tr>
<tr>
<td>-A(大写)</td>
<td>按照 /etc/fstab 配置文件的内容,检查文件内罗列的全部文件系统。</td>
</tr>
<tr>
<td>-t 文件系统类型</td>
<td>指定要检查的文件系统类型。</td>
</tr>
<tr>
<td>-C(大写)</td>
<td>显示检查分区的进度条。</td>
</tr>
<tr>
<td>-f</td>
<td>强制检测,一般 fsck 命令如果没有发现分区有问题,则是不会检测的。如果强制检测,那么不管是否发现问题,都会检测。</td>
</tr>
<tr>
<td>-y</td>
<td>自动修复,和 -a 作用一致,不过有些文件系统只支持 -y。</td>
</tr>
</tbody>
</table>
<p>此命令通常只有身为 root 用户且文件系统出现问题时才会使用,否则,在正常状况下使用 fsck 命令,很可能损坏系统。另外,如果你怀疑已经格式化成功的硬盘有问题,也可以使用此命令来进行检查。 </p>
<p>使用 fsck 检查并修复文件系统是存在风险的,特别是当硬盘错误非常严重的时候,因此,当一个受损文件系统中包含了非常有价值的数据时,务必首先进行备份!<br><strong><span style="color: rgba(153, 51, 102, 1)">需要注意:</span></strong>在使用 fsck 命令修改某文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是非常不安全的,数据可能会遭到破坏,也有可能会损坏磁盘。<br><strong><span style="color: rgba(153, 51, 102, 1)">举例说明:</span></strong>如果想要修复某个分区,则只需执行如下命令:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;"># df -hP //查看一下硬盘分区情况,我的目前没有损坏,只是举例说明
文件系统 容量已用可用 已用% 挂载点
devtmpfs 3.9G 03.9G 0% /dev
tmpfs 3.9G 03.9G 0% /dev/shm
tmpfs 3.9G281M3.6G 8% /run
tmpfs 3.9G 03.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 20G2.9G 18G 15% /
/dev/mapper/centos-data 78G 33M 78G 1% /data
/dev/xvda1 197M166M 32M 85% /boot
tmpfs 782M 0782M 0% /run/user/0
overlay 20G2.9G 18G 15% /var/lib/docker/overlay2/e147ff81360b119d6f724e68fb781e6c2aa93c983f3e264b94ba84e71528e37d/merged
# 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
</pre>
</div>
<p>fsck 命令在执行时,如果发现存在没有文件系统依赖的文件或目录,就会提示用户是否把它们找回来,因为这些没有文件系统依赖的文件或目录对用户来说是看不到的,换句话说,用户根本无法使用,这通常是由文件系统内部结构损坏导致的。如果用户同意找回(输入 y),fsck 命令就会把这些孤立的文件或目录放到 lost+found 目录中,并用这些文件自己对应的 inode 号来命名,以便用户查找自己丢失的文件。</p>
<p>因此,当用户在利用 fsck 命令修复磁盘分区以后,如果发现分区中有文件丢失,就可以到对应的 lost+found 目录中去查找,但由于无法通过文件名称分辨各个文件,这里可以利用 file 命令查看文件系统类型,进而判断出哪个是我们需要的文件。</p>
<p>Linux开关机&重启命令:</p>
<p>重启:reboot、init6 、shutdown -r now </p>
<p>关机:PowerOff、init0 、halt </p>
<p>Linux运行级别:</p>
<p>0 --- 关机;</p>
<p>1 --- 单用户模式</p>
<p>2 --- 命令行多用户模式,不带nfs网络</p>
<p>3 --- 命令行多用户模式</p>
<p>4 --- 保留</p>
<p>5 --- 图形界面</p>
<p>6 --- 重启</p>
<p>--------------------------------------------------------------------------------------------</p>
<p><span style="font-size: 16px"><strong><span style="color: rgba(0, 0, 255, 1)">四、CentOS 7 进入单用户模式</span></strong></span></p>
<p>1、服务器按开机按钮,在进入条出现选择内核系统时,按“e”键,之后使用上下按键进行选择,在按“e”键进入编辑模式</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416083826102-2025313667.png"></p>
<p>2、进入编辑界面后,快速定位到ro 处(ro=readonly),把ro修改成“rw init=/sysroot/bin/sh”,完成后按 Ctrl+X 启动运行。 </p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416084121642-262148603.png"></p>
<p>3、进入到单用户模式下 ,输入 chroot /sysroot/ 改变根分区,使用passwd root修改root密码;</p>
<p> 注:可使用 touch /.autorelabel (为了使selinux生效) </p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416084347846-263241539.png"></p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416084411909-1927467778.png"></p>
<p><span style="font-size: 16px"><strong><span style="color: rgba(0, 0, 255, 1)">五、CentOS 7进入到救援模式,进入救援模式需要系统安装光盘(注:U盘不可以)</span></strong></span></p>
<p>1、服务器开机启动,进行BIOS界面后,选择快度铠甲启动项,一般机器均为F12;选择CD-ROM为第一引导分区。 </p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416084800852-462742446.png"></p>
<p>2、进入光盘安装界面,选择第三项, 选择“Troubleshooting”回车 ,选择“Rescue a CentOS Linux system”回车。</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416084728363-43575361.png"></p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416084840236-2126470473.png"></p>
<p>3、进入救援模式下,选择“continue”:输入1 回车; </p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416084950688-1879016235.png"></p>
<p>4、回车得到一个shell命令行,显示提示符后,根据提示输入chroot /mnt/sysimage 切换到原来的系统。</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416085104244-1706519392.png"></p>
<p>5、进入到单用户模式下,进行相关操作即可,与CentOS6类同。如修改root密码:</p>
<p><img src="https://img2020.cnblogs.com/blog/1334057/202004/1334057-20200416085208587-1245336058.png"></p>
<p> </p>
<p><span style="color: rgba(153, 51, 102, 1)"> <strong>-----------------------------------------------------------书山有路勤为径,学海无涯苦作舟-------------------------------------------------------------</strong></span></p><br><br>
来源:https://www.cnblogs.com/easonscx/p/12703078.html
頁:
[1]