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
>



Reply via email to