From: Andrey Borzenkov <arvidjaar@gmail.com>
To: grub-devel@gnu.org
Subject: [PATCH] add --boot-directory option to grub-mkstandalone
Date: Fri, 13 Dec 2013 19:40:54 +0400 [thread overview]
Message-ID: <1386949254-7733-1-git-send-email-arvidjaar@gmail.com> (raw)
In-Reply-To: <20131213131841.GW5883@riva.ucam.org>
> 2) make it possible for grub-mkstandalone to build images with the
> prefix set to something other than (memdisk)/boot/grub
Like below? I'm not keen on using --boot-directory; may be using full
--grub-directory (without implied ../grub) will actually be more logical.
---
This allows changing of hardcoded /boot/grub path on memory disk so it does
not conflict with on-disk /boot directories.
Suggested by Colin Watson
---
util/grub-mkstandalone.c | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/util/grub-mkstandalone.c b/util/grub-mkstandalone.c
index 6ee5e58..3cb5d7c 100644
--- a/util/grub-mkstandalone.c
+++ b/util/grub-mkstandalone.c
@@ -30,15 +30,20 @@ static char **files;
static int nfiles;
const struct grub_install_image_target_desc *format;
static FILE *memdisk;
+static char *bootdir;
enum
{
OPTION_OUTPUT = 'o',
- OPTION_FORMAT = 'O'
+ OPTION_FORMAT = 'O',
+ OPTION_BOOT_DIRECTORY = 0x301,
+
};
static struct argp_option options[] = {
GRUB_INSTALL_OPTIONS,
+ {"boot-directory", OPTION_BOOT_DIRECTORY, N_("DIR"),
+ 0, N_("install GRUB images under the directory DIR/grub instead of the /boot/grub directory"), 2},
{"output", 'o', N_("FILE"),
0, N_("save output in FILE [required]"), 2},
{"format", 'O', N_("FILE"), 0, 0, 2},
@@ -76,6 +81,11 @@ argp_parser (int key, char *arg, struct argp_state *state)
switch (key)
{
+ case OPTION_BOOT_DIRECTORY:
+ free (bootdir);
+ bootdir = xstrdup (arg);
+ return 0;
+
case 'o':
if (output_image)
free (output_image);
@@ -294,6 +304,9 @@ main (int argc, char *argv[])
argp_parse (&argp, argc, argv, 0, 0, 0);
+ if (!bootdir)
+ bootdir = xstrdup ("/boot");
+
pkglibdir = grub_util_get_pkglibdir ();
if (!output_image)
@@ -308,7 +321,7 @@ main (int argc, char *argv[])
enum grub_install_plat plat = grub_install_get_target (grub_install_source_directory);
char *memdisk_dir = grub_util_make_temporary_dir ();
- char *boot_grub = grub_util_path_concat (3, memdisk_dir, "boot", "grub");
+ char *boot_grub = grub_util_path_concat (3, memdisk_dir, bootdir, "grub");
grub_install_copy_files (grub_install_source_directory,
boot_grub, plat);
@@ -346,8 +359,8 @@ main (int argc, char *argv[])
grub_install_push_module ("tar");
grub_install_make_image_wrap (grub_install_source_directory,
- "(memdisk)/boot/grub", output_image,
- memdisk_img, NULL,
+ xasprintf ("(memdisk)%s/%s", bootdir, "grub"),
+ output_image, memdisk_img, NULL,
grub_util_get_target_name (format), 0);
grub_util_unlink (memdisk_img);
--
tg: (0df77d7..) u/grub-directory (depends on: master)
next prev parent reply other threads:[~2013-12-13 15:41 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-12 15:36 [PATCH 0/4] Turn-key PV-GRUB2 installation Colin Watson
2013-12-12 15:37 ` [PATCH 1/4] Add an option to exclude devices from search results Colin Watson
2013-12-13 12:27 ` [Xen-devel] " Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-13 13:18 ` Colin Watson
2013-12-13 15:40 ` Andrey Borzenkov [this message]
2013-12-20 12:16 ` [PATCH] add --boot-directory option to grub-mkstandalone Colin Watson
2013-12-21 10:29 ` Andrey Borzenkov
2013-12-21 10:37 ` Andrey Borzenkov
2013-12-22 17:20 ` [Xen-devel] [PATCH 1/4] Add an option to exclude devices from search results Jordan Uggla
2013-12-12 15:37 ` [PATCH 2/4] Accept environment variables on the command line for Xen Colin Watson
2013-12-12 15:37 ` Colin Watson
2013-12-12 15:48 ` Andrey Borzenkov
2013-12-12 16:11 ` Colin Watson
2013-12-12 16:15 ` Vladimir 'phcoder' Serbinenko
2013-12-12 16:13 ` Vladimir 'phcoder' Serbinenko
2013-12-12 17:12 ` Andrey Borzenkov
2013-12-12 17:58 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-12 19:12 ` Colin Watson
2013-12-12 19:50 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-12 16:13 ` Vladimir 'phcoder' Serbinenko
2013-12-12 15:37 ` [PATCH 3/4] Build grub.xen Colin Watson
2013-12-12 16:24 ` Vladimir 'phcoder' Serbinenko
2013-12-12 16:39 ` Colin Watson
2013-12-12 16:45 ` Vladimir 'phcoder' Serbinenko
2013-12-12 16:49 ` Fwd: " Vladimir 'phcoder' Serbinenko
2013-12-12 16:49 ` Vladimir 'phcoder' Serbinenko
2013-12-12 17:36 ` Colin Watson
2013-12-12 17:41 ` Andrey Borzenkov
2013-12-12 18:08 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-12 18:08 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-13 11:56 ` Colin Watson
2013-12-13 11:56 ` Colin Watson
2013-12-13 12:19 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-13 12:19 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-12 15:37 ` Colin Watson
2013-12-12 15:37 ` [PATCH 4/4] Improve installation on Xen Colin Watson
2013-12-12 16:23 ` Vladimir 'phcoder' Serbinenko
2013-12-12 16:23 ` [Xen-devel] " Vladimir 'phcoder' Serbinenko
2013-12-13 11:58 ` Colin Watson
2013-12-16 11:42 ` [Xen-devel] [PATCH 0/4] Turn-key PV-GRUB2 installation Ian Campbell
2013-12-16 12:05 ` Samuel Thibault
2013-12-16 12:05 ` [Xen-devel] " Samuel Thibault
2013-12-16 11:42 ` Ian Campbell
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=1386949254-7733-1-git-send-email-arvidjaar@gmail.com \
--to=arvidjaar@gmail.com \
--cc=grub-devel@gnu.org \
/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.