Now I need to take a loan in order to afford 32gb for replacement thanks to the ai bros hoarding all the chips…
Tried on three different PCs, both Intel and AMD, both sticks are damaged, somehow
Now I need to take a loan in order to afford 32gb for replacement thanks to the ai bros hoarding all the chips…
Tried on three different PCs, both Intel and AMD, both sticks are damaged, somehow
No, even tried to run them at 1866…
Ah, fair enough. Long shot, but thought I’d at least mention it on the off chance that maybe it would work and maybe you hadn’t yet tried it. Sorry.
tries to think of anything else that could be done
Are you using Linux? Linux has a patch that was added many years back with the ability to map around damaged regions in memory. I mean, if your memory is completely hosed and you can’t even boot the kernel, then that won’t work, but if you can identify specific areas that fail, you can hand that off to the kernel and it can just avoid them. Obviously decreases usable memory by a certain amount, but…shrugs
I’ve never needed to do it myself, but let me go see if I can find some information. Think it was the “badram” feature.
searches
Okay. You’re running memtest86. It looks like that has the ability to generate the string you need, and you hand that off to GRUB, which hands it off to the kernel.
https://www.memtest86.com/blacklist-ram-badram-badmemorylist.html
If you can’t even boot the system sufficiently to get
update-grubto run, then you might need to do a fancier dance (swap drive to another machine or something), but that’s probably a good first thing to try. I’d try booting to “rescue mode” or whatever if your distro has an option like that in GRUB, something that doesn’t start the graphical environment, as it’ll touch less memory.EDIT: If your distro doesn’t have something like that “rescue mode” set up — all the distros I’ve used do, but that doesn’t mean that all of them do — or it it can’t even bring “rescue mode” up, because your memory is too hosed for that — then you probably want to do something like hit “edit kernel parameters” in GRUB and boot while adding “init=/bin/bash” to the end of the kernel command line. That’ll start your system up in a mode where virtually nothing is running — no systemd or other init system, no graphics, no virtual consoles, no anything. Bash running on bare metal Linux kernel. Control-C won’t work because your terminal won’t be in cooked mode, everything will be very super-duper minimal…but you should be able to bring up bash. From there, you’ll want to manually bring your root filesystem, which the kernel will have mounted read-only, as it does during boot, up to read-write, with:
Once that’s done, do your editing of the grub config file in vi or whatever, run the update-grub command.
Then run:
Because you don’t have an init system running and it’s not gonna flush the disk on shutdown and your normal power-down commands aren’t gonna work because you have no init system to talk to.
Go ahead and manually reboot the system by killing its power, and hopefully that’ll let it boot up with badram mapping around your damaged region of memory.
EDIT2: It occurs to me that someone could make a utility that can run entirely in Linux to do memory testing to the extent possible inside Linux using something like
memtesterinstead of memtest86, generate the badram string and then write it out for GRUB. That’s less bulletproof than memtest86 becausememtestercan’t touch every bit of memory, but it’s also easier for a user to do than the above stuff, and if you additionally added it to the install media for a distro, it’d make it easier to run Linux on broken hardware without a whole lot of technical knowledge. I guess it’d be pretty niche, though — doubt that there are a lot of systems with damaged memory floating around.EDIT3: Oh, that’s only the commercial version of memtest86 that will auto-generate the string. Well, if you know how to do a bitmask and you can get a list of affected addresses from memtest86, then you can probably just do it manually. If not, post the list of addresses here and someone can probably do a base address and bitmask that covers the addresses in question for you. Stick the memory back into your computer first, though, since the order of the DIMMs is gonna affect the addresses.
wow i’m running linux, so it might be perfect
though i’m a bit scared that it will get worse over time. Today i got a freeze that forced me to test the ram with memtest86, but since september i got some random corruption in the btrfs filesystem (luckily always “useless” files like flatpak or docker stuff that i could delete and download again in seconds) and i assumed it was a btrfs bug, not hardware problem
I had to do this on my busted ddr4 2 weeks ago. Badram didn’t work, but memmap did. I had to do bit flipping to get the translation from BADRAM as explained here.
I think the latest memtest86+ has the option to report in memmap format. But you will need to take a photo of the screen, coz it’s Foss and not as fancy as Passmarks memtest.
Edit: Adding badram to grub broke grub for me, I have to undo the grub config using a live boot rescue thingamajig. Then I went hunting why.
You can even make linux run an automatic memtest on boot and reserve the bad areas it finds. This is with the memtest=N kernel parameter, where N is the number of passes. memtest=17 tests all patterns. With this, the kernel will run an automatic test on every boot.
If I were in this position I’d strongly consider using 16GB for the next year or two. Especially with an NVME SSD, good swap performance makes the impact of running out of memory much smaller than it used to be.
It’s very strange both sticks failed at the same time, have you tried them in another motherboard?
To add to what the above commenter said: afaik Grub allows specifying kernel parameters at boot by pressing some hotkey. You could type in the string from memtest86 if you find what the parameter should be called (or add the
memtestparameter instead).Let’s say that you would be surprised if we actually started checking this. I will not disclose my occupation but there are thousands of critical telco infrastructure pieces of equipment that run not only a non-ECC ram because of cost cutting, but with actually broken DRAM modules, regularly rebooting at least a few times a day and causing local outages…
Back to the topic at hand - doesn’t it seem strange that only CPU4 finds issues in memtest86? It could be a CPU or even motherboard that got damaged and not the DRAM itself, no?
I noticed that, but OP said that he ran the thing in three different systems, so I’m assuming that he’s seen the same problems with multiple CPUs. It may be — I don’t know — that memtest86 doesn’t, at least as he’s running it, necessarily try to hit each byte of memory with each CPU, or at least that the order it does so doesn’t have errors from other CPUs visible.
I also wondered if it might be a 13th or 14th gen Intel CPU, the ones that destroyed themselves over time. But (a) it’s a mobile CPU, and only the desktop CPUs had the problem there, and (b) it’s 11th gen.