Hi Andrei, > How are you expecting kernel to access its root filesystem if this root > filesystem is not loaded in memory?
The kernel has a minmal initrd whose only task it is to mount the squashfs- container (could be a separate file somewhere on the hard drive) and does a `switch_root` into it. Best, Holger ________________________________________ Von: Help-grub <[email protected]> im Auftrag von Andrei Borzenkov <[email protected]> Gesendet: Freitag, 5. März 2021 19:16:46 An: [email protected] Betreff: [Ext] Re: Booting a kernel inside a large file, out of memory? On 04.03.2021 17:51, Sebert, Holger.ext wrote: > Hi! > > When booting a bzImage which is contained in a bigger file, does Grub > load the whole file into memory or does it only load the bzImage from > the file containing it? > It loads the whole file. Also it needs uncompressed size (and may additionally need compressed size e.g. on secure boot system, where file is loaded and verified before being used). > Here is some background: > > I have a file, say "myimage", which contains both a kernel (bzImage) > and a root filesystem (squashfs). The kernel is configured in a way to > automatically boot into that filesystem. > How are you expecting kernel to access its root filesystem if this root filesystem is not loaded in memory? > I am booting the kernel inside "myimage" successfully using the > following command: > > linux ($root)/myimage > boot > > The root filesystem being contained in "myimage" is currently not huge, > so it should fit into memory, but I am worried that this might change > in the future and I can get an out-of-memory-condition. Therefore my > question at the beginning of this mail. > > Thanks! > > Best, > Holger >
