The new RAM turned out to be faulty at a particular address, so in order to keep running with a stable system, I tried adding an option 'memmap=1m$12621m' by editing the command-line in grub2 during boot. This was meant to exclude 1MB surrounding the faulty address.
The kernel got stuck very early. It turned out that I was using grub2 wrongly.
grub2 has special escaping requirements, and '$' means something special to it. In order to end up with a literal '$', it needs to be escaped with '\', so if editing the command in grub2 during boot, the option needs to be 'memmap=1m\$12621m'. However, in /etc/default/grub, which is used to generate the grub config file used during boot, an additional layer of escaping is needed, so there's a line in /etc/default/grub that looks like this:
GRUB_CMDLINE_LINUX=" ... memmap=1m\\\$12621m ..."
So, '\' and '$' each needs its own escaping with a '\'.
No comments:
Post a Comment