-
-
Save rschmied/3571fdf0771949a4e44e65562bd9c296 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
#set -x | |
[[ ! "$1" =~ .*\.iso ]] && { echo ".iso file name needed"; exit; } | |
TEMP=$(mktemp -d) | |
PDIR=$(pwd) | |
if [[ "$1" =~ ^/ ]]; then | |
SRC=$1 | |
else | |
SRC=$PDIR/$1 | |
fi | |
pushd $TEMP | |
mkdir mnt && mkdir iso | |
sudo mount -o loop $SRC mnt | |
cp -a mnt/* iso | |
sed -i '/^default/s/0/1/' iso/boot/grub/menu.lst | |
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o "new-$(basename $1)" iso | |
sudo umount mnt | |
mv *.iso $PDIR | |
popd | |
rm -rf $TEMP |
Nice! I hit this issue myself and talked with the devs about why they weren't offering a "serial" version of the ISO like they do with other formats. I thought they were going to start doing that again, but looks like they haven't yet.. let me shake that tree again..
@rschmied - Where are you running this script from? Trying to get it to run on OS X and having some issues... curious whether you ran down the proper pre-reqs on OS X vs a Linux distro
@hpreston Ugh... apparently missed this. Some of this is Linux specific... especially mounting a loop file system. You could try to replace the mount with hdiutil mount $SRC
. You'd still need the mkisofs
which can be installed using MacPorts or Brew. The rest is pretty vanilla. The hdiutil will also mount into /Volumes
... so there's some more tweaking needed.
Previous CSR1000v releases had the console automatically on the serial port. Which helped to automate the installation of the CSR into a vagrant box using https://github.com/ios-xr/iosxrv-x64-vbox/blob/master/iosxe_iso2vbox.py. However, 16.06.01 has the console on the VGA screen which breaks the script... meh.
This little bash script takes the original ISO, unwraps it and then builds a new one with a modified Grub menu that has the serial console again as the default. Works for me...