From: "Vladimir 'φ-coder/phcoder' Serbinenko" <phcoder@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: [RFC] grub-install C rewrite
Date: Thu, 26 Sep 2013 20:49:52 +0200 [thread overview]
Message-ID: <524481D0.80206@gmail.com> (raw)
In-Reply-To: <20130926144400.GR13097@csclub.uwaterloo.ca>
[-- Attachment #1: Type: text/plain, Size: 2580 bytes --]
On 26.09.2013 16:44, Lennart Sorensen wrote:
>> windows is low priority and more of a bonus. The problems of handling
>> anything that looks like a list (e.g. list of devices where / resides on
>> in case of btrfs) and code becoming hairy to handle those cases is
>> bigger reason.
>
> Sure lists can be a hassle.
>
> I didn't check lately, but does grub-install understand a list of devices
> to install to yet?
>
> ie: grub-install /dev/sda /dev/sdb
>
> After all if I have software raid, both those devices contain /boot and
> are valid to boot from. And since on things like IBM powerpc,
> grub-install likes to update the firmware with the list of boot devices,
> they do all have to be specified at once or you end up with the wrong
> list (which so far I have worked around by manually fixing the firmware
> settings after updating grub, which doesn't happen very often lately).
>
> So calling grub-install for each device in turn (as I believe Debian
> does on x86 if you tell it multiple boot devices), does not actually
> give the correct result.
>
This is interesting testcase which wasn't brought before. This would
potentially involve creating several core.img or forcing UUID when using
multiple devices. Again, pretty easy in C and hairy in bash due to list
handling.
> So really my main objection is that it is much harder to debug and fix
> C code than it is to fix a script calling a bunch of external commands.
>
> At the very least a C version of grub-install must have an option to
> list every command it is attempting to execute externally. Certainly
> adding 'set -x' to grub-install has often been helpful.
It's surely sth we can do. grub-install does only following that is
affecting system:
1) mkdir -p
2) copy files. We can write exact copy commands
3) grub-mkimage. We can do the same.
4) grub-setup. Ditto
5) Create load.cfg. Ditto.
6) calling external commands.
We can have 4 levels of verbosity:
0) quiet,
1) write to stderr the commands
2) like 1 but show grub_util_info
3) additionally show grub_dprintf
It's also possible to have options --dry-run (doesn't really do the
changes, except, perhaps, "mkdir -p") and --gen-script which would
generate a list of commands which when executed would do exactly as if
grub-install was run. So you can do
grub-install --dry-run --gen-script=/tmp/myinstall ...
<change /tmp/myinstall to will>
/tmp/myinstall
This has additional advantage of see which commands are really executed
without having to understand the whole command flow.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 291 bytes --]
next prev parent reply other threads:[~2013-09-26 18:50 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-26 13:08 [RFC] grub-install C rewrite Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-26 13:35 ` Lennart Sorensen
2013-09-26 13:59 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-26 14:44 ` Lennart Sorensen
2013-09-26 18:49 ` Vladimir 'φ-coder/phcoder' Serbinenko [this message]
2013-09-26 20:22 ` Lennart Sorensen
2013-09-26 20:29 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-26 20:51 ` Chris Murphy
2013-09-26 22:15 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-27 3:10 ` Andrey Borzenkov
2013-09-26 17:10 ` Seth Goldberg
2013-09-26 18:51 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-26 18:56 ` Darren J Moffat
2013-09-26 18:57 ` Seth Goldberg
2013-09-26 14:49 ` Andrey Borzenkov
2013-09-26 15:01 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-06 14:54 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-06 15:56 ` Andrey Borzenkov
2013-10-06 18:05 ` Vladimir 'φ-coder/phcoder' Serbinenko
-- strict thread matches above, loose matches on Subject: below --
2013-09-26 17:52 Kalamatee
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=524481D0.80206@gmail.com \
--to=phcoder@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.