diff --git a/lib/img-functions b/lib/img-functions index 09ae00404..6db7e1b89 100644 --- a/lib/img-functions +++ b/lib/img-functions @@ -91,11 +91,18 @@ function prepare_first_boot () { function finalise_base () { TARGET_ROOT=$TMP_MOUNT_PATH run_d cleanup - # Remove the resolv.conf we created above - sudo rm -f $TMP_MOUNT_PATH/etc/resolv.conf - # Move the original back - if [ -L $TMP_MOUNT_PATH/etc/resolv.conf.ORIG ] || [ -f $TMP_MOUNT_PATH/etc/resolv.conf.ORIG ] ; then - sudo mv $TMP_MOUNT_PATH/etc/resolv.conf.ORIG $TMP_MOUNT_PATH/etc/resolv.conf + # If the file has been set immutable, we probably want to keep it + if lsattr $TMP_MOUNT_PATH/etc/resolv.conf | grep '^....i' >/dev/null ; then + # We're keeping the contents of resolv.conf set in the elements, + # so remove the old saved file + sudo rm -f $TMP_MOUNT_PATH/etc/resolv.conf.ORIG + else + # Remove the resolv.conf we created above + sudo rm -f $TMP_MOUNT_PATH/etc/resolv.conf + # Move the original back + if [ -L $TMP_MOUNT_PATH/etc/resolv.conf.ORIG ] || [ -f $TMP_MOUNT_PATH/etc/resolv.conf.ORIG ] ; then + sudo mv $TMP_MOUNT_PATH/etc/resolv.conf.ORIG $TMP_MOUNT_PATH/etc/resolv.conf + fi fi }