On Fri, 2015-09-18 at 18:50 +0100, Ian Jackson wrote:
> debian-7.2.0-i386-CD-1.iso contains no grub, only isolinux.
> 
> If the specified EFI grub file does not exist, fall back to isolinux.
> This requires a -c option as well, according to
>   https://wiki.debian.org/DebianInstaller/Modify/CD
> 
> Only try to set up a grub config if we are booting grub.  (The i386
> image in question does not contain a [debian]/boot/grub directory.)
> 
> If boot/grub/efi.img _does_ exist (ie, for other existing tests), the
> only difference in behaviour is to reorder slightly the options to
> genisoimage: `-b boot/grub/efi.img' now occurs after `-no-emul-boot
> -r' rather than before.

I'm happy to determine experimentally (i.e. by pushing to pretest) if there
is any meaning to the order of these (the wiki has them the new way around,
so I presume not).

> Signed-off-by: Ian Jackson <ian.jack...@eu.citrix.com>
> ---
>  ts-debian-hvm-install |   13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/ts-debian-hvm-install b/ts-debian-hvm-install
> index 3b93ebd..71ab1a5 100755
> --- a/ts-debian-hvm-install
> +++ b/ts-debian-hvm-install
> @@ -197,9 +197,16 @@ sub prep () {
>      my $preseed_file_path = $base . "preseed";
>  
>      my @isogen_extra = qw(-eltorito-alt-boot
> -                          -b boot/grub/efi.img
>                            -no-emul-boot
>                            -r);
> +
> +    my $bootfile = 'boot/grub/efi.img';
> +    if (!target_file_exists($ho, "$newiso/$bootfile")) {
> +     $bootfile = "isolinux/isolinux.bin";
> +     push @isogen_extra, qw(-c isolinux/boot.cat);
> +    }

My preference would have been to produce an iso which was bootable either
via EFI (grub) or legacy (isolinux), but that would require more complex
command lines and I'm sure neither of us wants to figure out what those
are. So:

Acked-by: Ian Campbell <ian.campb...@citrix.com>


> +    push @isogen_extra, '-b', $bootfile;
> +
>      my @isogen_opts = (iso_gen_flags_basic(), @isogen_extra);
>  
>      iso_create_empty($ho, $emptyiso, $emptydir);
> @@ -226,8 +233,10 @@ sub prep () {
>          my $cmds = iso_copy_content_from_image($gho, $newiso);
>          $cmds .= prepare_initrd($initrddir,$newiso,$preseed_file_path);
>          target_cmd_root($ho, $cmds, $isotimeout);
> +
>          target_putfilecontents_root_stash($ho, 10, grub_cfg(),
> -                                         
>  "$newiso/debian/boot/grub/grub.cfg");
> +                                         
>  "$newiso/debian/boot/grub/grub.cfg")
> +         if $bootfile =~ m/grub/;
>  
>          target_putfilecontents_root_stash($ho, 10, isolinux_cfg(),
>                                           
>  "$newiso/isolinux/isolinux.cfg");

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to