[RESOLVED] Out of memory error on anything above 5.19.0.11.1
Hello
I know almost nothing about Linux kernels, so excuse my ignorance. I use Liquorix to host CS:GO servers, which has been working fine for a few years. Now I get "Loading initial ramdisk... error: Out of memory" and no option to continue as soon as the machine boots into 5.19.0.12, 13 and 14. I'm "stuck" on 5.19.0.11.1 because any attempt to upgrade results in that error on boot. It installs alright, no errors or anything. I tried removing the "broken" version and reinstalling it, and I also just waited a bit as I was hoping it would be fixed in a later version, but there have been a couple of releases since and I see no mention of this error on this forum either. Edit: If I let it sit for a bit, it continues and gives me this stack trace: :: Code ::
... Call Trace: <TASK> dump_stack_lvl+0x45/0x5e panic+0x10c/0x283 mount_block_root+0x154/0x1fd prepare_namespace+0x136/0x165 ? reset_init+0xd0/0xd0 kernel_init+0x16/0x130 ret_from_fork+0x1f/0x30 </TASK> Kernel Offset: disabled ---[ end Kernel panic - not syncing:... inxi output: :: Code ::
System: Host: nicolai-desktop Kernel: 5.19.0-11.1-liquorix-amd64 arch: x86_64 bits: 64 compiler: gcc v: 9.4.0 Desktop: GNOME v: 3.36.9 tk: GTK v: 3.24.20 wm: gnome-shell dm: GDM3 Distro: Ubuntu 20.04.5 LTS (Focal Fossa) Machine: Type: Desktop System: Gigabyte product: Z390 M GAMING v: N/A serial: N/A Mobo: Gigabyte model: Z390 M GAMING-CF v: x.x serial: N/A UEFI: American Megatrends v: F9l date: 09/16/2020 Battery: Device-1: hid-F0T815300ESJ1YMAK-battery model: Apple Inc. Magic Keyboard serial: N/A charge: N/A status: discharging CPU: Info: 6-core Intel Core i5-9600K [MCP] arch: Coffee Lake speed (MHz): avg: 4599 Graphics: Device-1: NVIDIA TU106 [GeForce RTX 2070] vendor: Micro-Star MSI driver: nvidia v: 510.85.02 arch: Turing pcie: speed: 2.5 GT/s lanes: 16 bus-ID: 01:00.0 chip-ID: 10de:1f02 Display: server: X.Org v: 1.20.13 with: Xwayland compositor: gnome-shell driver: X: loaded: nvidia unloaded: fbdev,modesetting,nouveau,vesa gpu: nvidia resolution: 2560x1440~144Hz OpenGL: renderer: NVIDIA GeForce RTX 2070/PCIe/SSE2 v: 4.6.0 NVIDIA 510.85.02 direct render: Yes Network: Device-1: Intel Ethernet I219-V vendor: Gigabyte driver: e1000e v: kernel port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15bc Drives: Local Storage: total: 11.82 TiB used: 356.89 GiB (2.9%) Info: Processes: 332 Uptime: 9m Memory: 15.57 GiB used: 3.03 GiB (19.5%) Init: systemd v: 245 target: graphical (5) default: graphical Compilers: gcc: 9.4.0 alt: 8/9 Packages: 2186 pm: dpkg pkgs: 2168 pm: snap pkgs: 18 Shell: Bash v: 5.0.17 running-in: gnome-terminal inxi: 3.3.22 Back to top |
|||||
Your output is missing memory output, which this is about.
Can you include the output of inxi -mj on a running system? Back to top |
|||||
Ok, googling the error you're getting, you may have a misconfigured initramfs:
unix.stackexchange.com/questions/698890/out-of-memory-on-loading-initial-ramdisk-after-kernel-upgrade-4-15-to-4-19-o unix.stackexchange.com/questions/270390/how-to-reduce-the-size-of-the-initrd-when-compiling-your-kernel The issue is that Liquorix now contains debug symbols in the modules and kernel image. If initramfs is not configured to compress or whatever the default was, it'll result in a needlessly large ramdisk. There's also a chance the ramdisk is larger than your actual memory and you can't load it for other reasons. EDIT: In /etc/initramfs-tools/initramfs.conf, you should at least have compression on with modules set to most, like so: :: Code :: #
# MODULES: [ most | netboot | dep | list ] # # most - Add most filesystem and all harddrive drivers. # # dep - Try and guess which modules to load. # # netboot - Add the base modules, network modules, but skip block devices. # # list - Only include modules from the 'additional modules' list # MODULES=most ... # # COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ] # COMPRESS=gzip You can get much better compression by changing COMPRESS=gzip to COMPRESS=xz, or as a nice compromise, change it to zstd. Back to top |
|||||
I pushed out a change late yesterday that compresses modules with ZSTD. This will also help in-case your initramfs is not configured to compress properly. This configuration is standard with Arch Linux.
Back to top |
|||||
Hello
5.19.0-14.3 worked. No problems. I looked at my /etc/initramfs-tools/initramfs.conf before updating, and it had (and still has): :: Code ::
MODULES=most BUSYBOX=auto COMPCACHE_SIZE="" COMPRESS=lz4 DEVICE= NFSROOT=auto RUNSIZE=10% I made no changes to this file. Memory is 16GB. Do you still want the inxi with -mj? Back to top |
|||||
I think you provided enough information. Part of the issue I think is this:
COMPRESS=lz4 LZ4 has poor compression efficiency as a trade off for high performance. By compressing modules with ZSTD, that overrode LZ4's compression for higher efficiency, allowing for your ramdisk to mount properly. That's my theory at least. I'll mark this as resolved. Back to top |
|||||
Alright. Thanks.
Is there somewhere I can define/increase the size of this ramdisk? I mean, with 16GB of RAM I would assume there's plenty of headroom to just increase its size, should this problem occur in the future. Back to top |
|||||
I'm not sure, this appears to be some limit with the implementation for Debian. You have enough ram but whatever was provisioned and configured by Debian is not enough in some cases.
Either way, another update was pushed out to further reduce the size of the modules by using XZ instead of ZSTD. Debian Bullseye doesn't support ZSTD so I fell back to XZ, so the size of the package you get will be smaller still. I don't anticipate this issue coming up again. Back to top |
|||||
Out of curiosity what's the maximum size an initrd can be to boot successfully?
Back to top |
|||||
All times are GMT - 8 Hours
|