mkinitrd(8): determine the initrd size from the contents size
authorAaron LI <aly@aaronly.me>
Fri, 30 Mar 2018 06:32:59 +0000 (14:32 +0800)
committerAaron LI <aly@aaronly.me>
Fri, 30 Mar 2018 07:37:16 +0000 (15:37 +0800)
commiteeb035f875d0cb79c54938cc9ae8858344059cd1
tree19f4ae4d25b83bfce3768e6da5007dff9b27501c
parentd9bd48f4035df4f9d50fff13fa647c6f54360cde
mkinitrd(8): determine the initrd size from the contents size

* Calculate the contents size to determine the required initrd size.

  The used initrd size is determined from the total contents size, rounded up
  to align with 1 MiB, added additional 1 MiB.

  The calculated initrd size is 12 MiB at the moment, so we have 3 MiB
  more usable memory now (compared to the fixed 15 MiB before).

* Add options "-s" to specify the required initrd size as before.  But a check
  against the above determined required initrd size is performance to avoid the
  out-of-space error, resulting in a broken initrd image.

* Add option "-S" to constrain the allowed maximum initrd size, because a too
  big initrd image will also lead to boot failure, due to the boot loader
  limitation.

* Some minor cleanups and improvements, better error handle and messages.

* Update the mkinitrd.conf and man page accordingly.

Reviewed-by: zrj
etc/defaults/mkinitrd.conf
sbin/mkinitrd/mkinitrd.8
sbin/mkinitrd/mkinitrd.sh