@@ -141,7 +141,7 @@ function create_partition_table {
141141 mkpart UEFI 1MiB 100MiB \
142142 mkpart ROOT 100MiB 100%
143143 set 1 esp on \
144- set 1 boot on
144+ set 1 boot on
145145 parted --script /dev/xvdf print
146146 else
147147 sgdisk -Zg -n1:0:4095 -t1:EF02 -c1:GRUB -n2:0:0 -t2:8300 -c2:EXT4 /dev/xvdf
@@ -193,11 +193,11 @@ function format_and_mount_rootfs {
193193 mount -o noatime,nodiratime /dev/xvdf2 /mnt
194194 if [ " ${ARCH} " = " arm64" ]; then
195195 mkfs.fat -F32 /dev/xvdf1
196- mkdir -p /mnt/boot/efi
196+ mkdir -p /mnt/boot/efi
197197 sleep 2
198198 mount /dev/xvdf1 /mnt/boot/efi
199199 fi
200-
200+
201201 mkfs.ext4 /dev/xvdh
202202
203203 # Explicitly reserving 100MiB worth of blocks for the data volume
@@ -230,7 +230,7 @@ cat > "/mnt/etc/fstab" << EOF
230230$( printf " ${FMT} " " # DEVICE UUID" " MOUNTPOINT" " TYPE" " OPTIONS" " DUMP" " FSCK" )
231231$( findmnt -no SOURCE /mnt | xargs blkid -o export | awk -v FMT=" ${FMT} " ' /^UUID=/ { printf(FMT, $0, "/", "ext4", "defaults,discard", "0", "1" ) }' )
232232$( findmnt -no SOURCE /mnt/boot/efi | xargs blkid -o export | awk -v FMT=" ${FMT} " ' /^UUID=/ { printf(FMT, $0, "/boot/efi", "vfat", "umask=0077", "0", "1" ) }' )
233- $( findmnt -no SOURCE /mnt/data | xargs blkid -o export | awk -v FMT=" ${FMT} " ' /^UUID=/ { printf(FMT, $0, "/data", "ext4", "defaults,discard", "0", "2" ) }' )
233+ $( findmnt -no SOURCE /mnt/data | xargs blkid -o export | awk -v FMT=" ${FMT} " ' /^UUID=/ { printf(FMT, $0, "/data", "ext4", "defaults,discard,nofail,x-systemd.device-timeout=5s ", "0", "2" ) }' )
234234$( printf " $FMT " " /swapfile" " none" " swap" " sw" " 0" " 0" )
235235EOF
236236 unset FMT
@@ -239,11 +239,12 @@ EOF
239239function setup_chroot_environment {
240240 UBUNTU_VERSION=$( lsb_release -cs) # 'noble' for Ubuntu 24.04
241241
242- # Bootstrap Ubuntu into /mnt
243- debootstrap --arch ${ARCH} --variant=minbase " $UBUNTU_VERSION " /mnt
244-
245242 # Update ec2-region
246243 REGION=$( curl --silent --fail http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -E ' s|[a-z]+$||g' )
244+
245+ # Bootstrap Ubuntu into /mnt using the regional mirror (avoids global ports.ubuntu.com stalls)
246+ debootstrap --arch ${ARCH} --variant=minbase " $UBUNTU_VERSION " /mnt " http://${REGION} .clouds.ports.ubuntu.com/ubuntu-ports"
247+
247248 sed -i " s/REGION/${REGION} /g" /tmp/sources.list
248249 cp /tmp/sources.list /mnt/etc/apt/sources.list
249250
@@ -257,7 +258,7 @@ function setup_chroot_environment {
257258 mount --rbind /proc /mnt/proc
258259 mount --rbind /sys /mnt/sys
259260
260- # Create build mount point and mount
261+ # Create build mount point and mount
261262 mkdir -p /mnt/tmp
262263 mount /dev/xvdc /mnt/tmp
263264 chmod 777 /mnt/tmp
@@ -307,7 +308,7 @@ tee /etc/ansible/ansible.cfg <<EOF
307308callbacks_enabled = timer, profile_tasks, profile_roles
308309EOF
309310 # Run Ansible playbook
310- # export ANSIBLE_LOG_PATH=/tmp/ansible.log && export ANSIBLE_DEBUG=True && export ANSIBLE_REMOTE_TEMP=/mnt/tmp
311+ # export ANSIBLE_LOG_PATH=/tmp/ansible.log && export ANSIBLE_DEBUG=True && export ANSIBLE_REMOTE_TEMP=/mnt/tmp
311312 export ANSIBLE_LOG_PATH=/tmp/ansible.log && export ANSIBLE_REMOTE_TEMP=/mnt/tmp
312313 ansible-playbook -c chroot -i ' /mnt,' /tmp/ansible-playbook/ansible/playbook.yml \
313314 --extra-vars ' {"nixpkg_mode": true, "debpkg_mode": false, "stage2_nix": false} ' \
@@ -381,7 +382,7 @@ function upload_ccache {
381382 docker cp /mnt/tmp/ccache/. ccachedata:/build/ccache
382383 docker stop ccachedata
383384 docker commit ccachedata " ${DOCKER_IMAGE} :${DOCKER_IMAGE_TAG} "
384- echo ${DOCKER_PASSWD} | docker login --username ${DOCKER_USER} --password-stdin
385+ echo ${DOCKER_PASSWD} | docker login --username ${DOCKER_USER} --password-stdin
385386 docker push " ${DOCKER_IMAGE} :${DOCKER_IMAGE_TAG} "
386387}
387388
0 commit comments