X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ta%2Fbuild-tools.git;a=blobdiff_plain;f=build_step_create_install_cd.sh;h=f06929b05c9fca54e0e87ce62793d79131977bc8;hp=40d3880de1cb1f612ed48c691079afa5dcdf56c8;hb=HEAD;hpb=eb6df414a1b5d1b7b67d3dd5f9b7d0529b8cf5fc diff --git a/build_step_create_install_cd.sh b/build_step_create_install_cd.sh index 40d3880..f06929b 100755 --- a/build_step_create_install_cd.sh +++ b/build_step_create_install_cd.sh @@ -50,7 +50,14 @@ wget_dir() { url=$(remove_extra_slashes_from_url $url) # count cut length in case url depth changes cut_dirs=$(echo $url | sed -re 's|.*://[^/]+/(.+)|\1|' -e 's|/$||' | grep -o / | wc -l) - wget -N -r --no-host-directories --no-verbose --cut-dirs=${cut_dirs} --reject index.html* --no-parent $url + wget -N -r \ + --no-host-directories \ + --no-verbose \ + --cut-dirs=${cut_dirs} \ + --reject index.html* \ + --no-parent \ + --execute robots=off \ + $url } pushd $iso_build_dir @@ -61,8 +68,8 @@ wget_dir ${cd_images_dir}/ rm -f images/boot.iso sync chmod +w -R EFI/ images/ -# AArch64 does not support PC-BIOS, so skip all isolinux processing -if [ "${iso_arch}" != 'aarch64' ]; then +# Only x86_64 supports PC-BIOS, so skip all isolinux processing on other platforms +if [ "${iso_arch}" = 'x86_64' ]; then wget_dir ${cd_isolinux_dir}/ chmod +w -R isolinux/ @@ -70,7 +77,7 @@ if [ "${iso_arch}" != 'aarch64' ]; then cp $scriptdir/isolinux/isolinux.cfg isolinux/isolinux.cfg else sed -i "s/^timeout.*/timeout 100/" isolinux/isolinux.cfg - sed -i "s/^ - Press.*/Beginning the cloud installation process/" isolinux/boot.msg + sed -i "s/^ - Press.*/Begin the cloud installation process/" isolinux/boot.msg sed -i "s/^#menu hidden/menu hidden/" isolinux/isolinux.cfg sed -i "s/menu default//" isolinux/isolinux.cfg sed -i "/^label linux/amenu default" isolinux/isolinux.cfg @@ -79,12 +86,18 @@ if [ "${iso_arch}" != 'aarch64' ]; then cp -f $scriptdir/akraino_splash.png isolinux/splash.png fi +# Update grub.cfg for EFI booting, similar to isolinux +sed -i '/menuentry/{N;N;N;q}' EFI/BOOT/grub.cfg +sed -i -e 's|Install CentOS 7|Begin the cloud installation process|' \ + -e '/vmlinuz/ s/$/ console=tty0 console=ttyS1,115200 console=ttyAMA0,115200/' \ + EFI/BOOT/grub.cfg + popd pushd $tmp # Copy latest kernel and initrd-provisioning from boot dir -if [ "${iso_arch}" != 'aarch64' ]; then +if [ "${iso_arch}" = 'x86_64' ]; then qemu-img convert $input_image guest-image.raw myloop=$(sudo losetup -fP --show guest-image.raw) mkdir mnt @@ -93,7 +106,7 @@ if [ "${iso_arch}" != 'aarch64' ]; then sudo chown -R $(id -u):$(id -g) boot sudo umount mnt sudo losetup -d ${myloop} - rm -f guest-image.raw + sudo rm -rf guest-image.raw mnt else export LIBGUESTFS_BACKEND=direct virt-copy-out -a $input_image /boot/ ./ @@ -101,15 +114,18 @@ fi chmod u+w boot/ KVER=`ls -lrt boot/vmlinuz-* |grep -v rescue |tail -n1 |awk -F 'boot/vmlinuz-' '{print $2}'` -if [ "${iso_arch}" != 'aarch64' ]; then +if [ "${iso_arch}" = 'x86_64' ]; then rm -f $iso_build_dir/isolinux/vmlinuz $iso_build_dir/isolinux/initrd.img cp -fp boot/vmlinuz-${KVER} $iso_build_dir/isolinux/vmlinuz cp -fp boot/initrd-provisioning.img $iso_build_dir/isolinux/initrd.img fi +rm -f $iso_build_dir/images/pxeboot/vmlinuz $iso_build_dir/images/pxeboot/initrd.img +cp -fp boot/vmlinuz-${KVER} $iso_build_dir/images/pxeboot/vmlinuz +cp -fp boot/initrd-provisioning.img $iso_build_dir/images/pxeboot/initrd.img rm -rf boot/ echo "Generating boot iso" -if [ "${iso_arch}" != 'aarch64' ]; then +if [ "${iso_arch}" = 'x86_64' ]; then bios_specific_args="-b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table" fi @@ -131,7 +147,7 @@ genisoimage -U -r -v -T -J -joliet-long \ ${bios_specific_args:-} \ -eltorito-alt-boot -e images/efiboot.img -no-emul-boot \ -o release.iso $iso_build_dir -[ "${iso_arch}" = 'aarch64' ] || isohybrid $tmp/release.iso +[ "${iso_arch}" != 'x86_64' ] || isohybrid $tmp/release.iso _publish_image $tmp/release.iso $output_image_path echo "Clean up to preserve workspace footprint"