Split the code up and use BOOT_EFI and BOOT_BIOS to control which
goes where. We now support:
* BOOT_BIOS=1 BOOT_EFI=0 for BIOS boot only via an ElTorito boot
record (like debian-cd used to be before EFI support was added)
* BOOT_BIOS=1 BOOT_EFI=2 for standard BIOS boot as
primary ElTorito boot record and EFI as an alternate ElTorito boot
record (common case, just like we've been doing for amd64 in
debian-cd for a while)
* BOOT_BIOS=0 and BOOT_EFI=1 for *only* EFI boot as the primary
ElTorito boot record (new case, might be useful for some
Macs *maybe*)
Set BOOT_METHODS in the debian-cd environment to determine which of
these cases is desired in a given build.
Also removed the support for the "old" syslinux packaging layout, it's
not been around for a while now.
Remove un-needed boot$N in the xorriso command line, we don't have
crappy BIOS lomitations.
Remove support for older xorriso versions.
Use new -efi-boot-part --efi-boot-image options to make an
isohybrid-style images with an explicit EFI partition. Will hopefully
make d-i happier with our images from USB.
d-i has removed these files now, so don't look for them for kernel
params. Closes: #767223, #766411. Thanks to Prema and Vagrant for
(identical!) patches. :-)
tasksel now allows selecting the desktop, and d-i has dropped the boot
menu desktop selection, so we no longer need to have desktop boot
menus on CDs.
CD images for specific desktops (xfce/kde/mate/etc) should still
override the default tasksel desktop.
The code was assuming that the first line of output was something like
this (and this is the case of the cd builder machine that uses a custom
built xorriso):
> GNU xorriso 1.2.6 : RockRidge filesystem manipulator, libburnia project.
But the output of the version packaged in Debian does not have the GNU
string:
> xorriso 1.3.2 : RockRidge filesystem manipulator, libburnia project.
We fix this issue by extracting the version from the line starting with
"xorriso version" which does not have this discrepancy.
debian-installer now has extra steps to create a grub_embed file which
can be passed to xorriso's --embedded-boot option. Add corresponding
code in debian-cd to use it to make images USB bootable.
Patch from Samuel Thibault.
When making a custom server netinstall ISO, it may be desired to not
have MS Windows files. Unfortunately there's currently no check for
loadlin.exe, so install.bat gets created regardless. Fix this.
debian-cd currently expects there to always be isolinux/desktop/*
files and a dtmenu.cfg file, failing if they are missing. Make it so
debian-cd can cope whether those files are present or not.
better safety when extracting boot loader files.
* Update all the relevant boot-* scripts to do the right thing when
extracting packages and sources, depending on
$ARCHIVE_EXTRACTED_SOURCES as above
Steve pointed out that this lookup is only here so that helper scripts
can grab those sources and make them available in a public location
such as http://cdimage.debian.org/cdimage/cd-sources/. The sources are
not embedded in the generated ISO and are thus not strictly needed
for building the ISO image.
This should happen even when we're not building source ISOs but it's
not needed if we don't have any similar policy in place. Thus CONF.sh
is now leaving $ARCHIVE_EXTRACTED_SOURCES unset by default and the
source will only be looked up if that value is set.
had a limited set of hard-coded menu entries - this was buggy and
didn't take into account all the possible boot variations. Now parse
the isolinux menus already provided in the d-i build and generate
equivalent grub menus, complete with themes for a reasonable layout
with graphics and titles.
+ Pull in grub-efi for amd64 and i386
+ Lots of extra code in boot-x86:
- pull grub EFI pieces out of the latest debian-cd_info.tar.gz
blobs in d-i, if they're there. If so, use them to make x86 images
bootable via EFI (both via CD and USB)
- generate boot entries for grub on the fly; temporary code for now,
will switch to parsing the isolinux entries shortly instead.
- depending more and more on xorriso rather than genisoimage...
+ removed architectures: alpha arm hppa
+ removed releases: etch lenny
+ removed unversioned data/sparc and data/yaboot, versioned
equivalents are in place already.
+ Switch to “3.0 (native)” source format to get rid of .svn
directories in the source package (when built from the svn checkout
directly)
+ Support build-arch/build-indep targets in debian/rules.
+ Drop executable rights from tools/boot/wheezy/boot-hurd
(and fix debian/rules to not re-add it).
+ Bump Standards-Version to 3.9.2 (no change required).
+ Makefile: Add support for overriding the MKISOFS and MKISOFS_OPTS
variables on a per-arch basis
+ CONF.sh: add working examples for this
+ tools/boot/squeeze/boot-x86: if configured to use xorriso, add the
extra command line options to add the isohybrid MBR. Also work
around a difference in ISO directory naming between genisoimage and
xorriso.
Detect duplicates in the extra images used for installation
Several files included under install.{386,amd} are actually identical to
others. Rather than duplicating them attempt to detect this and hardlink
them.
Since images can be downloaded from the web at build time it is not
always possible to detect identical files by looking for the symlinks
created by the debian-installer build. Instead we pass a list of
potential "doppelgangers" to extra_image each of which is checked for
similarity to the new image.
I added gtk/vmlinuz (which is always the same as plain vmlinuz) which
although not necessary makes it more explicit which kernel goes with the
initrd at very little cost.
Hardlinks are used in preference to symlinks since these are expected to
work better with isolinux and the Xen tools.
The old setup worked fine with an ext2 initrd but fails with an initramfs,
either because autodetection is different for initramfs or because of kernel
changes (I suspect the first).
This means that booting s390 from CD has not worked since sometime during the
Etch release cycle, even though support for booting from CD was only added
early in that cycle - ouch.
For booting with an initramfs initrd we apparently need to specify its
offset and size at specific memory locations.
Change is based on SuSE's CD boot. Many thanks to Adam Thornton, Mark Post
(of Novell) and Bastian Blank for providing the pointers to the missing bits.
This fixes booting from CD using the d390.ins file; tested in Hercules for
both Lenny (31-bit kernel) and Squeeze (64-bit kernel).
Booting from CD using the d390.tdf file may still be broken (if possible at
all) as I have no idea how to test that.
didn't gave any result. This is useful when using partial mirrors built by
simple-cdd while trying to build a Debian CD using a newer d-i (in my case
etch CD with lenny d-i).
* Use dpkg --fsys-tarfile instead of ar for extracting files from deb
packages. The previous invocation could have failed for packages using
something other than gzip compression.
Patch from Ian Campbell.
i386 Xen guests require a PAE (686-bigmem) kernel in order to
run. Therefore this variant includes the relevant installer kernel and
ramdisk in install.386/xen as well as suitable kernel udebs and proper
debs for the installed system.
amd64 Xen has no similar requirement but we include the kernels under
install.amd/xen in order to have a consistent path under both
architectures.
This patch from Ian Cambell adds the generic support code:
* CONF.sh: Add $(VARIANTS) configuration variable.
* eash-build.sh: Add command line parameter to enable variants.
* Makefile: Define VARIANT_xxx when preprocessing package list.
* boot/?/common.sh: Add a function for checking if a variant is enabled.
* generate_di_list: Allow variant overrides in udeb exclusion list.
Variant support is documented in docs/README.variants
The intention is to use this support to add support for installing a
Xen guest from an ISO image.
The approach to use varriants was originally suggested by Frans Pop.
Only do boot disk stuff for x86 and alpha if the image is supposed to be
bootable. For i386 and amd64 this avoids downloading D-I images for all
30+ CDs in a full set.
Adjust x86 boot scripts for new version (2.0) of framework in D-I for
creation of syslinux configuration files. Essentially the new version
is a backport of what was already implemented in debian-cd before the
release of Lenny and allows a significant simplification.
There are no significant changes in generated CD/DVD images.
This environment variable was used by simple-cdd to force the default
installation option to the graphical installer. Now that we have the
syslinux VESA menu, the option has become rather pointless.
See #512303 for discussion.