|
From: | Arbiel (gmx) |
Subject: | Re: Embedding a file into core.img |
Date: | Wed, 20 Mar 2013 20:36:36 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130221 Thunderbird/17.0.3 |
Regarding the list of modules to include, I relied on the Grub Manual which reads, in point 5.4
After the embedded configuration file (if any) is executed, GRUB will load the ‘normal’ module (see normal), which will then read the real configuration file from $prefix/grub.cfg. By this point, the root variable will also have been set to the root device name. For example, prefix might be set to ‘(hd0,1)/boot/grub’, and root might be set to ‘hd0,1’. Thus, in most cases, the embedded configuration file only needs to set the prefix and root variables, and then drop through to GRUB's normal processing. A typical example of this might look like this:
search.fs_uuid 01234567-89ab-cdef-0123-456789abcdef root set prefix=($root)/boot/grub(The ‘search_fs_uuid’ module must be included in the core image for this example to work.)
And this was confirmed by the file /boot/grub/moddep.lst and more precisely on the result of the command
cat /boot/grup/moddep.lst | grep search which reads search_fs_uuid: search_fs_file: search: search_fs_uuid extcmd search_fs_file search_label search_label:which makes me understand I only need the search_fs_uuid module (or the search_label module to look for a partition by its name).
Where can I find reliable information ? Le 20/03/2013 18:40, Andrey Borzenkov a écrit :
В Wed, 20 Mar 2013 10:34:46 +0100 "Arbiel (gmx)" <address@hidden> пишет:Hi I try to record in the MBR of USB keys an autonomous MBR (no support of any other directory or file) to boot a PC with the system located on a partition whose name is predefined "cielos", and in case this fails, to chainload to the hd0's MBR. I've understood from Grub's Manual that to achieve such a goal, I have to embed the file using option -c of grub-mkimage. I have now modified the --grub-mkimage option to point to the shell script which creates /media/maisonnette/grub/core.img and from there I have been able to imbed the file and launch a boot process. However, this process failed, with a "no such device : the uuid I used in my search.fs_uuid command" whereas such a device exists on my external deviceYou need to include much more of grub modules than you did. At least you need disk driver and filesystem driver to read UUID. grub-install creates exactly the same embedded config. Why do not you simply use it?The imbedded file reads search.fs_uuid 0aceef09-a694-4105-bade-2dca95a09a08 root set prefix=(root)/boot/grub and a sudo blkid | grep 0aceef09-a694-4105-bade-2dca95a09a08 responds /dev/sdb5: LABEL="cielos" UUID="0aceef09-a694-4105-bade-2dca95a09a08" TYPE="ext4" I try to understand why the search fails. Le 20/03/2013 04:18, Andrey Borzenkov a écrit :В Wed, 20 Mar 2013 00:15:07 +0100 "Arbiel (gmx)" <address@hidden> пишет:Hi I'm trying to embed a file into core.img. I followed instructions from GNU Grub Manual's 5.4 Embedding a configuration file into Grub and tried to replicate the example given there with a config file figuring two lines search.fs_uuid the_uuid_of_my_partition root set prefix=($root)/boot/grub I used the following commands #! /bin/bash cd "${1}" cat 1> grub/embed.cfg <<EOF search.fs_uuid 0aceef09-a694-4105-bade-2dca95a09a08 root set prefix=($root)/boot/grub EOF sudo grub-mkimage -c 'grub/embed.cfg' -o 'grub/grub-image' -O i386-pc -d '/usr/lib/grub/i386-pc' -C none search_fs_uuid-O and -d together are redundant.sudo chmod +x 'grub/grub-image' sudo grub-install --boot-directory=/media/maisonnette --grub-mkimage=grub/grub-image /dev/sdb 2>grub/msg.log--grub-mkimage points to program to create image, not to image itself. You do not explain what you attempt to achieve. May be using grub-rescue to build ISO image that includes full grub and can optionally include arbitrary files would be easier?I get the following error message grub/grub-image: 1: grub/grub-image: Syntax error: word unexpected (expecting ")") Can anybody tell me what's wrong, knowing that my partition /media/maisonnette has nothing to do with the 0aceef09-a694-4105-bade-2dca95a09a08 partition. Thank you I used the following command _______________________________________________ Help-grub mailing list address@hidden https://lists.gnu.org/mailman/listinfo/help-grub
[Prev in Thread] | Current Thread | [Next in Thread] |