使用grub的memmap的预留内存时系统死机问题的一个解决方案

今天在测试文件系统时,改了以下grub的启动参数,从memmap=2G$1G改为memmap=8G$1G,然后写文件的时候,写了几个文件,系统就不响应了。刚开始还以为是文件系统的问题,排除了死锁、内存越界等情况后,忽然注意到,文件系统挂载时,系统发出的一个warning。


然后我想着会不会跟这个有关呢。然后用dmesg看看相关信息。注意到在dmesg的开头有bios关于内存的信息


我预留的内存区域刚好跨过了两个区域

ACPI:[0x00000000dfff0000-0x00000000dfffffff]
reserved:[0x00000000e0000000-0x000000023fffffff]

于是写文件的时候,文件系统覆盖了这个区域上面的数据,就可能会死机了。于是我把grub参数改为memmap=6G$4G,正好对应于physical RAM map的最后一个usable区域,这样再运行文件系统,就没死机情况了。而这也解释了原来的参数memmap=2G$1G可以正常运行的原因:这个区域刚好落在第二个usable区域。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值