一、问题现象
黑群晖重启时卡在“系统正在准备,请稍后”界面无法进入系统,但关机断电后重新开机可正常进入;核心原因:Redis 服务所需的内存超配参数未配置,导致重启时 Redis 初始化失败,卡住系统启动流程。
二、前期准备
1. 开启 SSH 服务:登录 DSM → 控制面板 → 终端机和 SNMP → 勾选“启用 SSH 服务” → 保存;
2. 连接 SSH:使用 SSH 工具(Putty、Xshell、电脑终端)连接黑群晖,登录用户为 root(密码与 DSM 管理员密码一致)。
三、步骤1:查询日志,确认问题根源
在 SSH 终端执行以下命令,定位错误原因:
# 查找重启相关错误日志,重点关注 Redis 内存警告
grep -i reboot /var/log/messages关键判断: 若日志中出现 WARNING Memory overcommit must be enabled! 提示,即可确认是 Redis 内存超配参数问题,直接进入下一步解决。
四、步骤2:配置内存超配参数(核心操作)
1. 编辑系统配置文件
# 用 vi 编辑器打开配置文件
vi /etc/sysctl.conf2. 添加核心配置参数
① 按 i 键进入编辑模式(左下角显示 -- INSERT --);
② 用方向键 ↓ 移动光标到文件最后一行,按 Enter 换行后,输入以下内容(格式务必准确):
vm.overcommit_memory = 1③ 按 Esc 键退出编辑模式,输入 :wq 后按 Enter,保存并退出编辑器。
3. 重载配置,立即生效
# 强制重载配置文件,使参数立即生效
sysctl -p /etc/sysctl.conf执行后若输出 vm.overcommit_memory = 1,说明参数已临时生效。
4. 验证参数是否生效
# 查询参数值,返回 1 即生效
sysctl vm.overcommit_memory五、步骤3:重启验证,确认问题解决
1. 重启黑群晖
# 执行重启命令
reboot2. 验证配置永久生效
① 黑群晖重启完成后,重新连接 SSH;
② 再次执行验证命令:
sysctl vm.overcommit_memory最终判断标准: - 若输出 vm.overcommit_memory = 1,说明配置已永久生效(无需额外设置开机脚本); - 若重启后未卡在“系统正在准备”界面,能正常进入 DSM,说明问题已彻底解决。
六、核心知识点说明
1. vm.overcommit_memory = 1 作用:开启 Linux 系统“内存超配”机制,允许 Redis 重启时正常申请内存(Redis 启动时仅“占坑”不立即用满内存),避免服务初始化失败;
2. 安全性:家用黑群晖场景下无风险,这是 Redis 官方推荐的标准配置,不会导致内存溢出。
七、总结
1. 问题根源:Redis 内存超配参数缺失,导致重启时服务启动失败,卡住系统;
2. 核心操作:修改 /etc/sysctl.conf 添加 vm.overcommit_memory = 1,重载配置即可;
3. 验证关键:重启后执行 sysctl vm.overcommit_memory 返回 1,且 NAS 能正常重启进入系统,即彻底解决。