[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Trying to build Rescue image for three different target and platform
From: |
Andrey Borzenkov |
Subject: |
Re: Trying to build Rescue image for three different target and platform |
Date: |
Thu, 13 Mar 2014 09:51:28 +0400 |
В Sun, 09 Mar 2014 17:14:04 +0100
adrian15 <address@hidden> пишет:
> Basically what I want to do is to use grub-mkrescue to generate a grub2
> rescue disk with some custom files (The Super Grub2 Disk stuff).
>
> However I want to build different files depending on target+platform
> combination.
>
> My four combinations are:
>
> * (Hybrid) x86_64+efi and i386+pc
> * i386 - pc
> * x86_64 - efi
> * i386 - efi
>
> More about this setup.
>
> 1) As an initial setup I work with a Debian Unstable Sid Chroot amd64 as
> described in:
> http://www.supergrubdisk.org/wiki/Super_Grub2_Disk_Sid_Chroot#Introduction
> 2) I use Debian's Grub2 source code so that I do not have to deal
> manually with dependencies. That's explained here:
> http://www.supergrubdisk.org/wiki/Super_Grub2_Disk_Sid_Chroot_Grub2_Build_And_Installation
>
> (just before Hybrid build section).
>
> 3) x86_64_efi build is working. Basically what I run in the src dir is:
>
> sudo rm -rf /usr/local/share/grub
> sudo rm -rf /usr/local/lib/grub
> make clean
> make distclean
> bash linguas.sh
> bash autogen.sh
> ./configure --target=i386 --with-platform=efi && make && sudo make
> uninstall
> make clean
> make distclean
> ./configure --target=i386 --with-platform=pc && make && sudo make
> uninstall
> make clean
> make distclean
> ./configure --target=x86_64 --with-platform=efi && make && sudo make
> uninstall
> make clean
> make distclean
> make clean
> make distclean
> bash linguas.sh
> bash autogen.sh
> ./configure --target=x86_64 --with-platform=efi && make && sudo make
> install
>
To be honest, I do not understand what you are trying to do here.
> 6) When I build i386 - pc I get this error:
>
> xorriso : FAILURE : Given path does not exist on disk: -boot_image
> system_area='/usr/local/lib/grub/i386-pc/boot_hybrid.img'
>
> Why is it failing to create /usr/local/lib/grub/i386-pc/boot_hybrid.img
> file?
>
This file should be built and installed on 386-pc platform. If not
either there is a bug, or you are doing something wrong. It is hard to
tell, you are doing so many steps ...
> 7) Is it useful that I insist on building an i386+efi release? Any
> machine system that uses it? Some old Mac-something hardware perhaps?
>
> 8) What's the best way to build and install an hybrid system that
> includes both: x86_64_efi and i386 - pc stuff?
>
Just built and install grub for each platform you want to use;
grub-mkrescue will automatically include every platform it finds.
> Current code is:
>
> ./configure --target=i386 --with-platform=pc && make && sudo make install
> make clean
> make distclean
> ./configure --target=x86_64 --with-platform=efi && make && sudo make
> install
>
It is better to explicitly force host platform with --host=.... to make
sure user space is always the same. Otherwise it should be fine.
I prefer to build every platform in separate directory, there were
issues with incomplete cleanup. If you hit one, please report.
> 9) A) What's the best way to remove grub configuration files installed
> on the system so that I can start from scratch so that already built
> target+platform grub binaries or configurations are ignored?
>
There are no configuration files after "make install" (if we do not
count /etc/grub.d as configuration).
> B) That's what I try to do in clean_every_build function in
> supergrub-meta-mkrescue script but I do not think its an efficient way
> of doing it.
>
> C) You know I would like to remove the rm -rf /usr/local/share/grub and
> rm -rf /usr/local/lib/grub lines (too weird) and just use the:
>
> ./configure ; make ; make uninstall part.
>
> D) Which I do not know if could be re-written as:
>
> ./configure ; make uninstall
>
> (Notice that there is not a make step).
>
> Does removing the make default target call (make) breaks "make
> uninstall" functionality?
>
> 10) As a summary I basically want to build and install from upstream
> source code and then make one rescue disk for each one of these four
> combinations. (And make theses rescue diks in a row)
>
> * (Hybrid) x86_64+efi and i386+pc
> * i386 - pc
> * x86_64 - efi
> * i386 - efi
>
> So... any help on this build automation process?
>
> Thank you very much!
>
>
> adrian15