3
# Do install stuff for amd64, including making bootable CDs
4
# Works with debian-installer
7
# $2 is the temporary CD build dir
9
. $BASEDIR/tools/boot/$DI_CODENAME/common.sh
16
if [ ! "$DI_DIST" ]; then
17
export DI_DIST="$DI_CODENAME"
19
if [ -z "$DI_PATH" ]; then
20
DI_PATH="$($BASEDIR/tools/find-newest-installer)"
29
# This script is called with $1 (now $N) as the CD to
30
# make bootable. N may be in the form "n" or "n_NONUS"
31
# There may be more than 4 disks...support extras.
33
# Strip NONUS part of disk number
34
# NN will be 1...N so it can be used as an index
36
NN=`echo $N | sed -e 's/_NONUS//'`
38
if [ "$CDIMAGE_ADDON" ]; then
39
# second disk, at least in spirit
45
# List of boot image for each CD
46
KTYPE[1]="" #isolinux multiboot in fact
48
# XXX add net-image back when it's fixed
58
THISTYPE=${KTYPE[$NN]}
60
PREFIX_PRESEED="$(dirname "$DEFAULT_PRESEED")/"
63
KERNEL_PREFIXES="PREFIX_GA"
64
if [ "$BACKPORT_KERNEL" ]; then
66
if [ "$PROJECT" = ubuntu-server ]; then
67
KERNEL_PREFIXES="$KERNEL_PREFIXES PREFIX_HWE"
74
for kp in $KERNEL_PREFIXES; do
75
BOOT_IMAGES="$BOOT_IMAGES ${!kp}cdrom/vmlinuz ${!kp}cdrom/initrd.gz ${!kp}cdrom/debian-cd_info.tar.gz"
76
TAR_IMAGES="$TAR_IMAGES ${!kp}netboot/netboot.tar.gz"
81
# Download boot images
82
for image in MANIFEST.udebs $BOOT_IMAGES $DISK_IMAGES $TAR_IMAGES; do
83
if [ ! -e "$image" ]; then
86
if [ ! "$DI_WWW_HOME" ];then
87
cp "$DI_PATH/current/images/$image" "$image"
89
wget "$DI_WWW_HOME/$image" -O "$image"
94
if [ "$NN" = "1" ]; then
95
list_kernel_abis $BOOT_IMAGES | check_kernel_sync $FLAVOUR
97
if [ "$CDIMAGE_INSTALL_BASE" = 1 ]; then
98
for kp in $KERNEL_PREFIXES; do
99
cp -lf "${!kp}cdrom/vmlinuz" "$CDDIR/install/${!kp}vmlinuz"
100
cp -lf "${!kp}cdrom/initrd.gz" "$CDDIR/install/${!kp}initrd.gz"
103
if [ "$CDIMAGE_LIVE" = 1 ]; then
104
if [ -e "$CDDIR/casper/filesystem.kernel-$FLAVOUR.efi.signed" ]; then
105
mv $CDDIR/casper/filesystem.kernel-$FLAVOUR.efi.signed $CDDIR/casper/vmlinuz.efi
106
rm -f $CDDIR/casper/filesystem.kernel-$FLAVOUR
107
CASPER_KERNEL=/casper/vmlinuz.efi
109
mv $CDDIR/casper/filesystem.kernel-$FLAVOUR $CDDIR/casper/vmlinuz
110
CASPER_KERNEL=/casper/vmlinuz
112
CASPER_INITRD="/casper/initrd$(initrd_suffix "$CDDIR/casper/filesystem.initrd-$FLAVOUR")"
113
mv $CDDIR/casper/filesystem.initrd-$FLAVOUR "$CDDIR$CASPER_INITRD"
115
echo -n "-J -l -c boot/boot.cat -partition_offset 16 " >> $N.mkisofs_opts
116
# Once we move to xorriso >= 1.4.4, we should consider changing from
117
# "-e boot/grub/efi.img"
119
# "-e --interval:appended_partition_2:all::"
120
# This will point the el torito catalog to the appended partition instead
121
# of the in-ISO file, which will allow us to remove efi.img from the ISO
122
# filesystem and recover it's space.
123
echo -n "-append_partition 2 0xef $CDDIR/boot/grub/efi.img -e boot/grub/efi.img -no-emul-boot " >> $N.mkisofs_opts
126
#install_languages $CDDIR
128
# Only disk one gets the extra files installed
130
if [ "$NN" = "1" ]; then
133
# populate the install directory as well
134
for disk in $DISK_IMAGES; do
136
mkdir -p $CDDIR/install/$dir
137
cp -lf $disk $CDDIR/install/$dir
140
if [ "$CDIMAGE_INSTALL" = 1 ]; then
141
for tar in $TAR_IMAGES; do
143
mkdir -p $CDDIR/install/$dir
144
tar -C $CDDIR/install/$dir -xzpf $tar
149
cat cdrom/debian-cd_info.tar.gz | (cd $CDDIR/boot/; tar xz)
150
# If we want a copy of grub on the ISO as well, seems redundant:
151
#mkdir -p $CDDIR/EFI/BOOT
152
#mcopy -i $CDDIR/boot/grub/efi.img ::EFI/BOOT/bootaa64.efi $CDDIR/EFI/BOOT/bootaa64.efi
153
sed -i '/^menuentry/Q' $CDDIR/boot/grub/grub.cfg
155
# Set a timeout for grub.
156
cat >> $CDDIR/boot/grub/grub.cfg <<EOF
160
if [ "$BACKPORT_KERNEL" ]; then
161
cat > $CDDIR/boot/grub/hwe-grub.cfg <<EOF
162
submenu 'Boot and Install with the HWE kernel' {
166
LAYERFS_PATH_OPT=$(add_layerfs_path_opt)
168
if [ "$CDIMAGE_LIVE" = 1 ]; then
169
if [ "$PROJECT" = kubuntu ] || [ "$PROJECT" = kubuntu-plasma5 ]; then
170
livelabel="^Start $HUMANPROJECT"
171
liveparams=' maybe-ubiquity'
173
livelabel="^Try $HUMANPROJECT without installing"
176
cat >> $CDDIR/boot/grub/grub.cfg <<EOF
177
menuentry "${livelabel#^}" {
179
linux $CASPER_KERNEL $KERNEL_PARAMS $DEFAULT_PRESEED$liveparams$LAYERFS_PATH_OPT quiet splash ---
180
initrd $CASPER_INITRD
183
cat >> $CDDIR/boot/grub/loopback.cfg <<EOF
184
menuentry "${livelabel#^}" {
186
linux $CASPER_KERNEL $KERNEL_PARAMS $DEFAULT_PRESEED$liveparams$LAYERFS_PATH_OPT iso-scan/filename=\${iso_path} quiet splash ---
187
initrd $CASPER_INITRD
190
if [ "$PROJECT" != ubuntu-mid ] && [ "$PROJECT" != kubuntu ] && [ "$PROJECT" != kubuntu-plasma5 ]; then
191
cat >> $CDDIR/boot/grub/grub.cfg <<EOF
192
menuentry "Install $HUMANPROJECT" {
194
linux $CASPER_KERNEL $KERNEL_PARAMS $DEFAULT_PRESEED$LAYERFS_PATH_OPT only-ubiquity quiet splash ---
195
initrd $CASPER_INITRD
198
cat >> $CDDIR/boot/grub/loopback.cfg <<EOF
199
menuentry "Install $HUMANPROJECT" {
200
linux $CASPER_KERNEL $KERNEL_PARAMS $DEFAULT_PRESEED$LAYERFS_PATH_OPT only-ubiquity iso-scan/filename=\${iso_path} quiet splash ---
201
initrd $CASPER_INITRD
206
if [ "$CDIMAGE_INSTALL" = 1 ]; then
207
if [ "$CDIMAGE_LIVE" != 1 ]; then
208
for kp in $KERNEL_PREFIXES; do
209
cat >> $CDDIR/boot/grub/${!kp}grub.cfg <<EOF
210
menuentry "Install $HUMANPROJECT" {
212
linux /install/${!kp}vmlinuz $KERNEL_PARAMS ${DEFAULT_PRESEED/$PREFIX_PRESEED/$PREFIX_PRESEED${!kp}} quiet ---
213
initrd /install/${!kp}initrd.gz
218
cat >> $CDDIR/boot/grub/grub.cfg <<EOF
219
menuentry "Install $HUMANPROJECT in text mode" {
221
linux /install/vmlinuz $KERNEL_PARAMS $DEFAULT_PRESEED quiet ---
222
initrd /install/initrd.gz
227
# The GRUB versions of this only correspond to single isolinux labels,
228
# because we don't yet have the necessary technology in our GRUB menu stack
229
# to have a two-dimensional set of boot options, as is implemented for
230
# isolinux using the gfxboot "applies" keyword.
231
if [ "$CDIMAGE_LIVE" = 1 ]; then
232
cat >> $CDDIR/boot/grub/grub.cfg <<EOF
233
menuentry "OEM install (for manufacturers)" {
235
linux $CASPER_KERNEL $KERNEL_PARAMS $DEFAULT_PRESEED$LAYERFS_PATH_OPT only-ubiquity quiet splash oem-config/enable=true ---
236
initrd $CASPER_INITRD
240
for kp in $KERNEL_PREFIXES; do
241
cat >> $CDDIR/boot/grub/${!kp}grub.cfg <<EOF
242
menuentry "OEM install (for manufacturers)" {
244
linux /install/${!kp}vmlinuz $KERNEL_PARAMS ${DEFAULT_PRESEED/$PREFIX_PRESEED/$PREFIX_PRESEED${!kp}} quiet oem-config/enable=true ---
245
initrd /install/${!kp}initrd.gz
250
if [ "$CDIMAGE_INSTALL_BASE" = 1 ]; then
251
if [ "$PROJECT" = ubuntu-server ]; then
252
for kp in $KERNEL_PREFIXES; do
253
cat >> $CDDIR/boot/grub/${!kp}grub.cfg <<EOF
254
menuentry "Install MAAS Region Controller" {
256
linux /install/${!kp}vmlinuz $KERNEL_PARAMS modules=maas-region-udeb initrd=/install/${!kp}initrd.gz quiet ---
257
initrd /install/${!kp}initrd.gz
260
menuentry "Install MAAS Rack Controller" {
262
linux /install/${!kp}vmlinuz $KERNEL_PARAMS modules=maas-rack-udeb initrd=/install/${!kp}initrd.gz quiet ---
263
initrd /install/${!kp}initrd.gz
269
if [ "$CDIMAGE_LIVE" = 1 ]; then
270
cat >> $CDDIR/boot/grub/grub.cfg <<EOF
271
menuentry "Check disc for defects" {
273
linux $CASPER_KERNEL $KERNEL_PARAMS$LAYERFS_PATH_OPT integrity-check quiet splash ---
274
initrd $CASPER_INITRD
277
cat >> $CDDIR/boot/grub/loopback.cfg <<EOF
278
menuentry "Check disc for defects" {
279
linux $CASPER_KERNEL $KERNEL_PARAMS$LAYERFS_PATH_OPT integrity-check iso-scan/filename=\${iso_path} quiet splash ---
280
initrd $CASPER_INITRD
283
elif [ "$CDIMAGE_INSTALL_BASE" = 1 ]; then
284
for kp in $KERNEL_PREFIXES; do
285
cat >> $CDDIR/boot/grub/${!kp}grub.cfg <<EOF
286
menuentry "Check disc for defects" {
288
linux /install/${!kp}vmlinuz $KERNEL_PARAMS MENU=/bin/cdrom-checker-menu quiet ---
289
initrd /install/${!kp}initrd.gz
292
cat >> $CDDIR/boot/grub/${!kp}grub.cfg <<EOF
293
menuentry "Rescue a broken system" {
295
linux /install/${!kp}vmlinuz $KERNEL_PARAMS rescue/enable=true ---
296
initrd /install/${!kp}initrd.gz
301
if [ "$BACKPORT_KERNEL" ] && [ "$PROJECT" = ubuntu-server ]; then
302
cat >> $CDDIR/boot/grub/hwe-grub.cfg <<EOF
305
cat $CDDIR/boot/grub/hwe-grub.cfg >> $CDDIR/boot/grub/grub.cfg
307
rm -f $CDDIR/boot/grub/hwe-grub.cfg