From: Glenn Washburn <development@efficientek.com>
To: grub-devel@gnu.org, Daniel Kiper <dkiper@net-space.pl>
Cc: Oskari Pirhonen <xxc3ncoredxx@gmail.com>,
Paul Menzel <pmenzel@molgen.mpg.de>,
Glenn Washburn <development@efficientek.com>
Subject: [PATCH v3] docs: Improve initrd documentation
Date: Tue, 1 Aug 2023 19:58:51 -0500 [thread overview]
Message-ID: <20230802005851.2256674-1-development@efficientek.com> (raw)
A list of improvements:
* Remove reference to "initial ramdisk" and replace with "initrd". This
then covers the case of ramdisk and ramfs, which is the usual method
with kernels 2.6 and newer.
* Add sentence with URL to initrd documentation Linux kernel.
* Add a section documenting how to have the initrd command generate a
new-style initrd via a specially crafted argument and include an example.
* Update initrd16 to refer to the initrd section and make note that
initrd16 is only on the pc platform.
Signed-off-by: Glenn Washburn <development@efficientek.com>
Reviewed-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
---
Range-diff against v2:
1: 28cda0c394d6 ! 1: d6ca60159b40 docs: Improve initrd documentation
@@ Metadata
## Commit message ##
docs: Improve initrd documentation
- Remove reference to "initial ramdisk" and replace with "initrd". This then
- covers the case of ramdisk and ramfs, which is the usual method with kernels
- 2.6 and greater. Add sentence with URL to initrd documentation Linux kernel.
- Also, add a section documenting how to have the initrd command generate a
- new-style initrd via a specially crafted argument and include an example.
+ A list of improvements:
+ * Remove reference to "initial ramdisk" and replace with "initrd". This
+ then covers the case of ramdisk and ramfs, which is the usual method
+ with kernels 2.6 and newer.
+ * Add sentence with URL to initrd documentation Linux kernel.
+ * Add a section documenting how to have the initrd command generate a
+ new-style initrd via a specially crafted argument and include an example.
+ * Update initrd16 to refer to the initrd section and make note that
+ initrd16 is only on the pc platform.
- Update initrd16 to refer to the initrd section and make note that initrd16
- is only on the pc platform.
+ Signed-off-by: Glenn Washburn <development@efficientek.com>
+ Reviewed-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
+ Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
## docs/grub.texi ##
@@ docs/grub.texi: load a defective boot loader, such as SCO UnixWare 7.1.
@@ docs/grub.texi: load a defective boot loader, such as SCO UnixWare 7.1.
+See @ref{GNU/Linux} for more info on booting GNU/Linux. For more
+information on initrds see the GNU/Linux kernel
+@uref{https://docs.kernel.org/filesystems/ramfs-rootfs-initramfs.html,
-+documentation} on them.
++documentation}.
+
+A new-style initrd (for kernels newer than 2.6) containing one file
+with leading path components can also be generated at run time. This
@@ docs/grub.texi: load a defective boot loader, such as SCO UnixWare 7.1.
+in the path @samp{/init} and appended to the previous concatenation. Finally,
+the result will be sent to the kernel when booted.
+
-+Keep in mind that paths that comes later will take precendence. So in the
++Keep in mind that paths that come later will take precedence. So in the
+example above, the generated path @samp{/init} will overwrite any @samp{/init}
+in @samp{/boot/initrd.gz}. This can be useful when changing the main initrd
+is undesirable or difficult.
docs/grub.texi | 48 +++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 41 insertions(+), 7 deletions(-)
diff --git a/docs/grub.texi b/docs/grub.texi
index 730e8c8d75a4..1d2f0a3d04fe 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -4076,10 +4076,43 @@ load a defective boot loader, such as SCO UnixWare 7.1.
@subsection initrd
@deffn Command initrd file [file @dots{}]
-Load, in order, all initial ramdisks for a Linux kernel image, and set
-the appropriate parameters in the Linux setup area in memory. This may only
-be used after the @command{linux} command (@pxref{linux}) has been run. See
-also @ref{GNU/Linux}.
+Load, in order, all initrds for a Linux kernel image, and set the
+appropriate parameters in the Linux setup area in memory. This may only
+be used after the @command{linux} command (@pxref{linux}) has been run.
+See @ref{GNU/Linux} for more info on booting GNU/Linux. For more
+information on initrds see the GNU/Linux kernel
+@uref{https://docs.kernel.org/filesystems/ramfs-rootfs-initramfs.html,
+documentation}.
+
+A new-style initrd (for kernels newer than 2.6) containing one file
+with leading path components can also be generated at run time. This
+can be done by prefixing an argument with @code{newc:} followed by the
+path of the file in the new initrd, a @code{:}, and then the GRUB file
+path to the file data to be be included.
+
+For example:
+@example
+initrd newc:/etc/ssh/config:(hd0,2)/home/user/.ssh/config \
+ newc:/etc/ssh/ssh_host_rsa_key:/etc/ssh/ssh_host_rsa_key \
+ /boot/initrd.gz \
+ newc:/init:/home/user/init.fixed
+@end example
+
+This command will generate two new-style initrds on the fly. The first
+contains the path @samp{/etc/ssh/config} with the contents of
+@samp{(hd0,2)/home/user/.ssh/config} and the path
+@samp{/etc/ssh/ssh_host_rsa_key} with the contents of
+@samp{/etc/ssh/ssh_host_rsa_key} on the @var{root} device. Parent directory
+paths will automatically be generated as needed. This first generated initrd
+will then have @samp{/boot/initrd.gz} concatenated after it. Next, another
+new-style archive will be generated with the contents of @samp{/home/user/init.fixed}
+in the path @samp{/init} and appended to the previous concatenation. Finally,
+the result will be sent to the kernel when booted.
+
+Keep in mind that paths that come later will take precedence. So in the
+example above, the generated path @samp{/init} will overwrite any @samp{/init}
+in @samp{/boot/initrd.gz}. This can be useful when changing the main initrd
+is undesirable or difficult.
@end deffn
@@ -4087,12 +4120,13 @@ also @ref{GNU/Linux}.
@subsection initrd16
@deffn Command initrd16 file [file @dots{}]
-Load, in order, all initial ramdisks for a Linux kernel image to be booted in
+Load, in order, all initrds for a Linux kernel image to be booted in
16-bit mode, and set the appropriate parameters in the Linux setup area in
memory. This may only be used after the @command{linux16} command
-(@pxref{linux16}) has been run. See also @ref{GNU/Linux}.
+(@pxref{linux16}) has been run. See also @ref{GNU/Linux} and the @command{initrd}
+command (@pxref{initrd}) for more details on arguments.
-This command is only available on x86 systems.
+This command is only available on the pc platform for x86 systems.
@end deffn
--
2.34.1
next reply other threads:[~2023-08-02 0:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-02 0:58 Glenn Washburn [this message]
2023-08-02 4:23 ` [PATCH v3] docs: Improve initrd documentation Oskari Pirhonen
2023-08-11 15:43 ` Daniel Kiper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230802005851.2256674-1-development@efficientek.com \
--to=development@efficientek.com \
--cc=dkiper@net-space.pl \
--cc=grub-devel@gnu.org \
--cc=pmenzel@molgen.mpg.de \
--cc=xxc3ncoredxx@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.