On 11/03/2022 16:44, John Hanks wrote:
I am using imgextract to download several images, like so

imgextract --name one http://master/one.img <http://master/one.img>
imgextract --name two http://master/two.img <http://master/two.img>
imgextract --name three http://master/three.img <http://master/three.img>
boot kernel initrd=initrd.magic initrd=one initrd=two initrd=three blah blah blah

So far so good, except that I wanted to try adding a lot of these but am restricted by the maximum kernel command line length. I naively tried

imgextract --name mysystem http://master/one.img <http://master/one.img>
imgextract --name mysystem http://master/two.img <http://master/two.img>
imgextract --name mysystem http://master/three.img <http://master/three.img>
boot kernel initrd=initrd.magic initrd=mysystem blah blah blah

and it worked!!! But, that seems way too easy, like I'm cheating. Is this expected to work this way or am I exploiting a bug that might get fixed later? I don't want to depend on this unless it's working this way on purpose.

You are triggering slightly undefined behaviour by using both "initrd=initrd.magic" and an explicit "initrd=<name>" argument.

The "initrd=initrd.magic" will cause the kernel to already see an initrd that comprises the concatenation of all of the images as seen by "imgstat". (The magic initrd will also include constructed CPIO headers for any images that have a non-empty argument list, but that's irrelevant for your use case.)

So, assuming that your images are all compressed CPIO initrd images that are amenable to concatenation, then you should be able to get the behaviour you want by simplifying your script to something like:

  imgextract http://master/one.img
  imgextract http://master/two.img
  imgextract http://master/three.img
  boot kernel initrd=initrd.magic

i.e. remove the (redundant) --name options, and tell the kernel to load only initrd.magic.

Hope that helps,

Michael
_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo/ipxe-devel

Reply via email to