~xnox/debian-cd/update-boot-scripts

« back to all changes in this revision

Viewing changes to tools/boot/focal/boot-arm64

  • Committer: Adam Conrad
  • Date: 2019-10-18 23:26:51 UTC
  • Revision ID: adconrad@0c3.net-20191018232651-dbisbyytbl741sh5
Copy eoan -> focal, and add focal to CONF.sh

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/bash
 
2
#
 
3
# Do install stuff for amd64, including making bootable CDs
 
4
# Works with debian-installer
 
5
#
 
6
# $1 is the CD number
 
7
# $2 is the temporary CD build dir
 
8
 
 
9
. $BASEDIR/tools/boot/$DI_CODENAME/common.sh
 
10
 
 
11
set -e
 
12
 
 
13
N=$1
 
14
CDDIR=$2
 
15
BOOTDIR=
 
16
if [ ! "$DI_DIST" ]; then
 
17
   export DI_DIST="$DI_CODENAME"
 
18
fi
 
19
if [ -z "$DI_PATH" ]; then
 
20
   DI_PATH="$($BASEDIR/tools/find-newest-installer)"
 
21
fi
 
22
 
 
23
default_preseed
 
24
default_language
 
25
 
 
26
cd $CDDIR/..
 
27
 
 
28
#
 
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.
 
32
 
 
33
# Strip NONUS part of disk number
 
34
# NN will be 1...N so it can be used as an index
 
35
#
 
36
NN=`echo $N | sed -e 's/_NONUS//'`
 
37
 
 
38
if [ "$CDIMAGE_ADDON" ]; then
 
39
    # second disk, at least in spirit
 
40
    NN=2
 
41
fi
 
42
 
 
43
> $N.mkisofs_opts
 
44
 
 
45
# List of boot image for each CD
 
46
KTYPE[1]="" #isolinux multiboot in fact
 
47
KTYPE[2]=""
 
48
# XXX add net-image back when it's fixed
 
49
KTYPE[3]=""
 
50
KTYPE[4]=""
 
51
KTYPE[5]=""
 
52
KTYPE[6]=""
 
53
KTYPE[7]=""
 
54
KTYPE[8]=""
 
55
KTYPE[9]=""
 
56
KTYPE[10]=""
 
57
 
 
58
THISTYPE=${KTYPE[$NN]}
 
59
 
 
60
PREFIX_PRESEED="$(dirname "$DEFAULT_PRESEED")/"
 
61
PREFIX_GA=""
 
62
PREFIX_HWE=""
 
63
KERNEL_PREFIXES="PREFIX_GA"
 
64
if [ "$BACKPORT_KERNEL" ]; then
 
65
    PREFIX_HWE="hwe-"
 
66
    if [ "$PROJECT" = ubuntu-server ]; then
 
67
        KERNEL_PREFIXES="$KERNEL_PREFIXES PREFIX_HWE"
 
68
    fi
 
69
fi
 
70
 
 
71
BOOT_IMAGES=""
 
72
TAR_IMAGES=""
 
73
DISK_IMAGES=""
 
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"
 
77
done
 
78
 
 
79
FLAVOUR=generic
 
80
 
 
81
# Download boot images
 
82
for image in MANIFEST.udebs $BOOT_IMAGES $DISK_IMAGES $TAR_IMAGES; do
 
83
    if [ ! -e "$image" ]; then
 
84
        dir=$(dirname $image)
 
85
        mkdir -p $dir
 
86
        if [ ! "$DI_WWW_HOME" ];then
 
87
                cp "$DI_PATH/current/images/$image" "$image"
 
88
        else
 
89
                wget "$DI_WWW_HOME/$image" -O "$image"
 
90
        fi
 
91
    fi
 
92
done
 
93
 
 
94
if [ "$NN" = "1" ]; then
 
95
    list_kernel_abis $BOOT_IMAGES | check_kernel_sync $FLAVOUR
 
96
 
 
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"
 
101
    done
 
102
    fi
 
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
 
108
        else
 
109
            mv $CDDIR/casper/filesystem.kernel-$FLAVOUR $CDDIR/casper/vmlinuz
 
110
            CASPER_KERNEL=/casper/vmlinuz
 
111
        fi
 
112
        CASPER_INITRD="/casper/initrd$(initrd_suffix "$CDDIR/casper/filesystem.initrd-$FLAVOUR")"
 
113
        mv $CDDIR/casper/filesystem.initrd-$FLAVOUR "$CDDIR$CASPER_INITRD"
 
114
    fi
 
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"
 
118
    #    to
 
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
 
124
fi
 
125
 
 
126
#install_languages $CDDIR
 
127
 
 
128
# Only disk one gets the extra files installed
 
129
#
 
130
if [ "$NN" = "1" ]; then
 
131
 
 
132
 
 
133
# populate the install directory as well
 
134
for disk in $DISK_IMAGES; do
 
135
        dir=$(dirname $disk)
 
136
        mkdir -p $CDDIR/install/$dir
 
137
        cp -lf $disk $CDDIR/install/$dir
 
138
done
 
139
 
 
140
if [ "$CDIMAGE_INSTALL" = 1 ]; then
 
141
        for tar in $TAR_IMAGES; do
 
142
                dir=$(dirname $tar)
 
143
                mkdir -p $CDDIR/install/$dir
 
144
                tar -C $CDDIR/install/$dir -xzpf $tar
 
145
        done
 
146
fi
 
147
 
 
148
mkdir -p $CDDIR/boot
 
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
 
154
 
 
155
# Set a timeout for grub.
 
156
cat >> $CDDIR/boot/grub/grub.cfg <<EOF
 
157
set timeout=30
 
158
EOF
 
159
 
 
160
if [ "$BACKPORT_KERNEL" ]; then
 
161
    cat > $CDDIR/boot/grub/hwe-grub.cfg <<EOF
 
162
submenu 'Boot and Install with the HWE kernel' {
 
163
EOF
 
164
fi
 
165
 
 
166
LAYERFS_PATH_OPT=$(add_layerfs_path_opt)
 
167
 
 
168
if [ "$CDIMAGE_LIVE" = 1 ]; then
 
169
    if [ "$PROJECT" = kubuntu ] || [ "$PROJECT" = kubuntu-plasma5 ]; then
 
170
        livelabel="^Start $HUMANPROJECT"
 
171
        liveparams=' maybe-ubiquity'
 
172
    else
 
173
        livelabel="^Try $HUMANPROJECT without installing"
 
174
        liveparams=
 
175
    fi
 
176
    cat >> $CDDIR/boot/grub/grub.cfg <<EOF
 
177
menuentry "${livelabel#^}" {
 
178
        set gfxpayload=keep
 
179
        linux   $CASPER_KERNEL $KERNEL_PARAMS $DEFAULT_PRESEED$liveparams$LAYERFS_PATH_OPT quiet splash ---
 
180
        initrd  $CASPER_INITRD
 
181
}
 
182
EOF
 
183
    cat >> $CDDIR/boot/grub/loopback.cfg <<EOF
 
184
menuentry "${livelabel#^}" {
 
185
        set gfxpayload=keep
 
186
        linux   $CASPER_KERNEL $KERNEL_PARAMS $DEFAULT_PRESEED$liveparams$LAYERFS_PATH_OPT iso-scan/filename=\${iso_path} quiet splash ---
 
187
        initrd  $CASPER_INITRD
 
188
}
 
189
EOF
 
190
    if [ "$PROJECT" != ubuntu-mid ] && [ "$PROJECT" != kubuntu ] && [ "$PROJECT" != kubuntu-plasma5 ]; then
 
191
        cat >> $CDDIR/boot/grub/grub.cfg <<EOF
 
192
menuentry "Install $HUMANPROJECT" {
 
193
        set gfxpayload=keep
 
194
        linux   $CASPER_KERNEL $KERNEL_PARAMS $DEFAULT_PRESEED$LAYERFS_PATH_OPT only-ubiquity quiet splash ---
 
195
        initrd  $CASPER_INITRD
 
196
}
 
197
EOF
 
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
 
202
}
 
203
EOF
 
204
    fi
 
205
fi
 
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" {
 
211
        set gfxpayload=keep
 
212
        linux   /install/${!kp}vmlinuz $KERNEL_PARAMS ${DEFAULT_PRESEED/$PREFIX_PRESEED/$PREFIX_PRESEED${!kp}} quiet ---
 
213
        initrd  /install/${!kp}initrd.gz
 
214
}
 
215
EOF
 
216
    done
 
217
  else
 
218
        cat >> $CDDIR/boot/grub/grub.cfg <<EOF
 
219
menuentry "Install $HUMANPROJECT in text mode" {
 
220
        set gfxpayload=keep
 
221
        linux   /install/vmlinuz $KERNEL_PARAMS $DEFAULT_PRESEED quiet ---
 
222
        initrd  /install/initrd.gz
 
223
}
 
224
EOF
 
225
  fi
 
226
fi
 
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)" {
 
234
        set gfxpayload=keep
 
235
        linux   $CASPER_KERNEL $KERNEL_PARAMS $DEFAULT_PRESEED$LAYERFS_PATH_OPT only-ubiquity quiet splash oem-config/enable=true ---
 
236
        initrd  $CASPER_INITRD
 
237
}
 
238
EOF
 
239
else
 
240
  for kp in $KERNEL_PREFIXES; do
 
241
    cat >> $CDDIR/boot/grub/${!kp}grub.cfg <<EOF
 
242
menuentry "OEM install (for manufacturers)" {
 
243
        set gfxpayload=keep
 
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
 
246
}
 
247
EOF
 
248
  done
 
249
fi
 
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" {
 
255
        set gfxpayload=keep
 
256
        linux   /install/${!kp}vmlinuz $KERNEL_PARAMS modules=maas-region-udeb initrd=/install/${!kp}initrd.gz quiet ---
 
257
        initrd  /install/${!kp}initrd.gz
 
258
}
 
259
 
 
260
menuentry "Install MAAS Rack Controller" {
 
261
        set gfxpayload=keep
 
262
        linux   /install/${!kp}vmlinuz $KERNEL_PARAMS modules=maas-rack-udeb initrd=/install/${!kp}initrd.gz quiet ---
 
263
        initrd  /install/${!kp}initrd.gz
 
264
}
 
265
EOF
 
266
    done
 
267
    fi
 
268
fi
 
269
if [ "$CDIMAGE_LIVE" = 1 ]; then
 
270
    cat >> $CDDIR/boot/grub/grub.cfg <<EOF
 
271
menuentry "Check disc for defects" {
 
272
        set gfxpayload=keep
 
273
        linux   $CASPER_KERNEL $KERNEL_PARAMS$LAYERFS_PATH_OPT integrity-check quiet splash ---
 
274
        initrd  $CASPER_INITRD
 
275
}
 
276
EOF
 
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
 
281
}
 
282
EOF
 
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" {
 
287
        set gfxpayload=keep
 
288
        linux   /install/${!kp}vmlinuz $KERNEL_PARAMS MENU=/bin/cdrom-checker-menu quiet ---
 
289
        initrd  /install/${!kp}initrd.gz
 
290
}
 
291
EOF
 
292
    cat >> $CDDIR/boot/grub/${!kp}grub.cfg <<EOF
 
293
menuentry "Rescue a broken system" {
 
294
        set gfxpayload=keep
 
295
        linux   /install/${!kp}vmlinuz $KERNEL_PARAMS rescue/enable=true ---
 
296
        initrd  /install/${!kp}initrd.gz
 
297
}
 
298
EOF
 
299
  done
 
300
fi
 
301
if [ "$BACKPORT_KERNEL" ] && [ "$PROJECT" = ubuntu-server ]; then
 
302
    cat >> $CDDIR/boot/grub/hwe-grub.cfg <<EOF
 
303
}
 
304
EOF
 
305
    cat $CDDIR/boot/grub/hwe-grub.cfg >> $CDDIR/boot/grub/grub.cfg
 
306
fi
 
307
rm -f $CDDIR/boot/grub/hwe-grub.cfg
 
308
fi
 
309
 
 
310
# th,th, thats all