CentOS 7启动过程打开调试模式

本文介绍在OS启动过程中遇到系统卡住或MCE/CATRERR错误时,如何通过开启系统和systemd调试来定位问题。提供了在CentOS7中设置内核启动参数的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在OS启动过程中,有时会遇到系统卡住或机器报告MCE/CATRERR错误,导致系统无法正常启动,但又很难查看执行哪个操作时,系统卡住的?

这种情况下,我们可以打开系统调试systemd调试


以下是打开调试步骤:

在内核启动参数加上以下内容:

rd.debug rdudevdebug systemd.log_level=debug systemd.log_target=console console=ttyS1,115200n8

在CentOS 7中,我们可以将以下内容添加到/etc/default/grub文件中,然后执行grub2-mkconfig -o /boot/grub2/grub.cfg更新GRUB。

GRUB_CMDLINE_LINUX_DEFAULT=” rd.debug rdudevdebug systemd.log_level=debug systemd.log_target=console console=ttyS1,115200n8″
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND=”serial –speed=115200 –unit=0 –word=8 –parity=no –stop=1″

#cat /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=”$(sed ‘s, release .*$,,g’ /etc/system-release)”
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT=”console”
GRUB_CMDLINE_LINUX=”crashkernel=auto vconsole.font=latarcyrheb-sun16 vconsole.keymap=us biosdevname=0 ipv6.disable=1 console=tty0 console=ttyS1,115200 scsi_mod.scan=sync rd.driver.pre=ahci,mpt2sas,aacraid”
GRUB_DISABLE_RECOVERY=”true”
GRUB_CMDLINE_LINUX_DEFAULT=” rd.debug rdudevdebug systemd.log_level=debug systemd.log_target=console console=ttyS1,115200n8″
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND=”serial –speed=115200 –unit=0 –word=8 –parity=no –stop=1″

### 如何在 CentOS 7启动 SSHD 服务 在 CentOS 7 上,`sshd` 是通过 `systemd` 来管理的服务。如果发现 `sshd` 服务无法随系统启动而自动运行,则可能是由于配置文件设置不正确或其他原因引起的。 以下是关于如何确保 `sshd` 正常工作并实现开机自启的具体说明: #### 检查 `sshd` 的状态 可以通过以下命令来检查当前 `sshd` 服务的状态: ```bash sudo systemctl status sshd ``` 这一步可以帮助确认服务是否正在运行以及是否存在错误信息[^3]。 #### 启动 `sshd` 服务 如果服务未处于活动状态,可以使用以下命令手动启动它: ```bash sudo systemctl start sshd ``` #### 设置开机自启 为了使 `sshd` 能够随着系统的启动而自动运行,需要启用其开机自启功能: ```bash sudo systemctl enable sshd ``` 此命令会在 `/etc/systemd/system/multi-user.target.wants/` 下创建指向 `sshd.service` 文件的软链接,从而让 systemd 在每次引导时加载该服务[^1]。 #### 验证配置文件无误 有时即使执行了上述操作仍可能遇到问题,此时应验证 `/etc/ssh/sshd_config` 是否存在语法错误或者不当配置项。可利用内置工具测试配置的有效性: ```bash sudo sshd -t ``` 如果有任何警告或错误提示,请按照指示调整相应参数后再重新尝试启动服务[^4]。 #### 常见排查步骤 当常规手段未能解决问题时,还可以考虑以下几个方面进一步诊断: - **SELinux 影响**: 如果 SELinux 处于 enforcing 模式下可能会阻止某些网络相关进程正常运作;临时将其切换至 permissive 可帮助判断是否为此类因素所致。 ```bash setenforce 0 ``` - **防火墙规则冲突**: 确认是否有 iptables 或 firewalld 规则阻挡了端口访问权限。 ```bash sudo firewall-cmd --add-service=ssh --permanent && sudo firewall-cmd --reload ``` --- ### 提供一段示例代码用于调试环境变量缺失的情况 对于一些特殊场景比如 Docker 容器内部部署时缺少必要的初始化脚本情况下的处理方式如下所示: ```bash #!/bin/bash # 手动初始化sshd服务 /usr/bin/ssh-keygen -A exec /usr/sbin/sshd -D -e ``` 保存以上内容到名为 `start_ssh.sh` 的脚本当中赋予可执行权能之后即可作为入口指令调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值