海光平台debian11的系统,打开pstore功能和验证功能

在海光3490平台(x86_64架构)的Debian 11系统上启用pstore,核心是配置 `ramoops` 模块。它会在内存中预留一块"自留地",用来在系统崩溃时保存"临终遗言"。

下面是具体的操作步骤:

📝 第一步:检查内核支持

在开始前,先确认当前内核已经编译了必要的pstore模块。

```bash

检查关键的内核配置选项

cat /boot/config-$(uname -r) | grep -E "CONFIG_PSTORE|CONFIG_RAMOOPS"

```

正常情况下,你应该看到以下输出,这表明基础支持已经就绪:

```

CONFIG_PSTORE=y

CONFIG_PSTORE_CONSOLE=y

CONFIG_PSTORE_RAM=y

CONFIG_RAMOOPS=y

```

**如果这些选项是 `=m`**,说明是作为模块编译的,你需要用 `modprobe pstore ramoops` 命令来加载它们。

Debian 11的官方内核通常已包含这些选项,如果你的输出缺少某些项,则可能需要重新编译内核。

⚙️ 第二步:配置 `ramoops` 内存区域

这是最关键的一步,需要告诉内核预留哪块内存给pstore使用。有两种方法:

**方法一:通过内核启动参数配置 (推荐)**

这种方式最灵活,无需重启进入BIOS。你需要编辑GRUB配置文件,在`GRUB_CMDLINE_LINUX`中添加参数。

  1. **编辑GRUB配置**:

```bash

sudo vi /etc/default/grub

```

找到 `GRUB_CMDLINE_LINUX` 这一行,在引号内添加如下参数:

```

ramoops.mem_address=0x30000000 ramoops.mem_size=0x200000

```

* `ramoops.mem_address=0x30000000`:指定预留内存的**起始物理地址**(例如从 `0x30000000` 开始)。你需要根据海光平台的实际内存映射来选择一个空闲地址。

* `ramoops.mem_size=0x200000`:指定预留内存的**大小**(此处为十六进制,`0x200000` = 2MB)。2MB是一个不错的起始值,你可以根据需求调整。

  1. **更新GRUB配置**:

```bash

sudo update-grub

```

**方法二:通过BIOS设置**

如果你的海光平台服务器BIOS提供了相关选项,也可以在那里进行配置。这通常需要在开机时进入BIOS设置界面,找到类似"Memory Reservation"或"RAMOOPS"的选项,然后设置起始地址和大小。这个方法因不同服务器厂商的BIOS而异。

💾 第三步:挂载 pstore 文件系统

pstore文件系统通常挂载在 `/sys/fs/pstore`,系统通常会自动挂载。你可以用以下命令检查:

```bash

mount | grep pstore

```

如果没有输出,说明未挂载,需要手动挂载:

```bash

sudo mount -t pstore pstore /sys/fs/pstore

```

为了方便,可以将挂载命令添加到 `/etc/fstab` 以实现开机自动挂载:

```

pstore /sys/fs/pstore pstore defaults 0 0

```

🚀 第四步:加载模块 (如果内核选项为 `=m`)

如果你之前检查时发现 `CONFIG_PSTORE_RAM=y` 或 `CONFIG_RAMOOPS=y` 是 `=m`,则需要手动加载模块:

```bash

sudo modprobe pstore

sudo modprobe ramoops

```

✅ 第五步:验证和测试

完成以上配置后,**重启系统**让配置生效。

  1. **检查目录**:重启后,查看 `/sys/fs/pstore/` 目录。

```bash

ls -l /sys/fs/pstore/

```

正常情况下,应该看到 `console-ramoops` 或 `dmesg-ramoops-0` 等文件。

  1. **模拟崩溃测试 (可选)**:

**请务必在测试或非生产环境下进行!**

你可以通过触发一个内核恐慌来测试pstore是否工作:

```bash

sudo echo c > /proc/sysrq-trigger

```

系统会立即崩溃重启。重启后,再次检查 `/sys/fs/pstore/` 目录,应该会有新的日志文件生成。

📖 第六步:读取和分析日志

当系统发生异常重启后,你可以通过以下命令来查看保存的日志:

```bash

查看控制台日志

cat /sys/fs/pstore/console-ramoops

查看内核日志

cat /sys/fs/pstore/dmesg-ramoops-0

```

⚠️ 注意事项

* **内存地址**:`ramoops.mem_address` 必须是一个有效的、未被系统使用的物理内存地址。如果设置不当,可能导致系统无法启动。你可以通过 `dmesg | grep "e820"` 查看内核发现的内存映射来选择一个合适的地址。

* **内存大小**:`ramoops.mem_size` 不宜过大,通常几MB就足够,以免浪费宝贵的内存资源。

* **断电丢失**:`ramoops` 基于RAM,系统**完全断电**后日志会丢失。它主要应对的是系统崩溃后**立即重启**(如看门狗复位)的场景。

* **权限问题**:查看日志可能需要 `root` 权限。

相关推荐
重生之我是小技9 小时前
独享代理IP与共享代理IP的核心区别
网络
涉密IT资质笔记10 小时前
涉密人员脱密期管理规范:期限分级模型、就业限制边界与违规认定标准
java·服务器·前端·网络·数据库
honsor10 小时前
PoE温湿度传感器:一根网线供电+通信,即插即用,机房/配电室/仓库温湿度监测首选
运维·服务器·网络·数据库·人工智能·安全
Ivanqhz10 小时前
干涉图着色
java·服务器·网络·数据库·人工智能·深度学习
xiaoye-duck11 小时前
《Linux 网络编程》深入理解 IO 多路复用:select服务器完善、poll 接口详解与服务端改造实战
linux·网络
数字供应链安全产品选型11 小时前
智能体安全选型建议:抛开功能清单,用运行时硬指标甄别真实防护能力
网络·安全
AI备忘录11 小时前
(二十三)华为华三锐捷迈普思科 MLAG 跨设备配置命令(双活网关五厂商对照)
服务器·网络·华为
傲世仙尊11 小时前
HTTP起步-URL域名解析与协议的本质
网络·网络协议·http
智能化咨询11 小时前
(110页PPT)酒店智能化设计方案(附下载方式)
网络
重生之高冷汉堡包12 小时前
IPv4 与 IPv6:主要区别及选择哪个
网络·智能路由器