CentOS8救援模式(单用户模式)用法
起因是Influxdb保存数据过久导致句柄占用过多。遂调整了/etc/security/limits.conf下的句柄最大数量。
因配置ulimit openfiles参数过大导致ssh新会话建立不了(ssh登录不了)问题
【注意】
1、文件句柄数,ulimit -n参数不可以配置过大,否则,会导致新的ssh/sftp会话等建立不了,
类似,服务器端文件句柄数满了的效果;
2、ulimit -n 理论最大值为power(2,20)=1048576,建议配置成:1048575(少1个)
3、文件20-nproc.conf会控制limits.conf中设置的nproc大小,以目录limits.d下的配置为准;
4、如果因调整配置文件limits.conf,导致ulimit -n参数过大,引起服务器新会话不能建立,考虑以单用户方式直接访问服务器进行修改;
5、为避免ulimit -n配置过大,可通过ulimit -n验证配置参数是否可取;
6、另外,需要注意ulimit配置ok后,因selinux开启导致的ssh也访问不了的问题干扰;
7、通过mysql执行os命令,方法有:system <cmd>或者!\ <cmd>,但这种方式执行的os是当时通过mysql命令接入的os,客户端的或者mysql服务器端的,看当时接入时,从哪进入的。
结果重启后,centOS8黑屏,ssh远程失败,进不去了。(句柄参数过大)
只能进单用户模式去修改,步骤如下:
#单用户模式
在此模式下和正常启动的系统差别不大以root身份运行,拥有最高权限可以对所有文件读写,只是不需要输入root密码,所以就可以实现强制更改密码。主要用在配置错误导致系统启动不了,或者root命令忘记时。注意这个模式下是没有网络连接的。
更改启动项:
在系统启动之前的grub启动菜单里,按“e”键编辑第一个启动项。
编辑启动项进入单用户模式:
- 将ro改为rw
- 在这一行的最后面写入配置init=/bin/sh
ro改为rw表示启动单用户模式时,将根目录挂载为可读写,否则在进入单用户模式之后还需要运行命令mount -o remount,rw /
才能对系统里的文件更改。
启动单用户模式
编辑好启动项以后按Ctrl+x启动
输入id命令发现此时shell的权限为root权限:
然后就可以更改导致系统不能启动的错误配置,或者直接运行passwd命令来更改root账户的密码。
可以看到8192000已经超出最大参数(为啥没有参数校验,,,)
修改文件如果ctrl+c不能切换到命令模式的话可以使用ESC键。
重启到正常系统
【重要】当配置修改完成后,需要在根目录创建一个.autorelabel
文件,有这个文件重启时系统就会重新标记SELinux的文件系统。这样配置才能生效。【重要】
touch /.autorelabel
重启进入系统:
exec /sbin/init