X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fgrml%2Ffai%2Fconfig%2Fhooks%2Finstsoft.GRMLBASE;h=c6760a5d8fcc10009ee8f793bdb55fee1632e94f;hb=f4e1966f03cf049bf9f927540a774c38eb31a8bd;hp=9d37e126b259acad919cc09662f5691420a4f27c;hpb=fc9bf3c0d486a9dfb9bcf5d003b70df2803c48d8;p=grml-live.git diff --git a/etc/grml/fai/config/hooks/instsoft.GRMLBASE b/etc/grml/fai/config/hooks/instsoft.GRMLBASE index 9d37e12..c6760a5 100755 --- a/etc/grml/fai/config/hooks/instsoft.GRMLBASE +++ b/etc/grml/fai/config/hooks/instsoft.GRMLBASE @@ -21,28 +21,31 @@ if [ "$FAI_ACTION" = "softupdate" ] ; then echo "Action $FAI_ACTION of FAI (hooks/instsoft.GRMLBASE) via grml-live running" if [ -r /etc/resolv.conf ] ; then - if [ -d $target/etc/resolvconf/run ] ; then # resolvconf without /run - # sanity check to avoid "input file is output file", - # see http://bts.grml.org/grml/issue984 - if ! [ -L $target/etc/resolvconf/run/resolv.conf ] ; then - cat /etc/resolv.conf >> $target/etc/resolvconf/run/resolv.conf - else - echo "Error: /etc/resolvconf/run/resolv.conf in chroot should not be a symlink." >&2 - echo " Looks like something is wrong, please fix manually." >&2 - exit 1 - fi - elif [ -L $target/etc/resolvconf/run ] ; then # resolvconf with /run - # /etc/resolvconf/run symlinks to /run/resolvconf - mkdir -p $target/run/resolvconf - cat /etc/resolv.conf >> $target/run/resolvconf/resolv.conf - else # no resolvconf installed in chroot - if ! [ -L $target/etc/resolv.conf ] ; then - cat /etc/resolv.conf >> $target/etc/resolv.conf - else - echo "Error: /etc/resolv.conf in chroot should not be a symlink (resolvconf not installed)." >&2 - exit 1 - fi - fi + case "$(readlink -f ${target}/etc/resolv.conf)" in + /run/*) # resolvconf with /run + mkdir -p $target/run/resolvconf + cat /etc/resolv.conf >> $target/run/resolvconf/resolv.conf + ;; + /lib/*) # resolvconf without /run + # sanity check to avoid "input file is output file", + # see http://bts.grml.org/grml/issue984 + if ! [ -L $target/etc/resolvconf/run/resolv.conf ] ; then + cat /etc/resolv.conf >> $target/etc/resolvconf/run/resolv.conf + else + echo "Error: /etc/resolvconf/run/resolv.conf in chroot should not be a symlink." >&2 + echo " Looks like something is wrong, please fix manually." >&2 + exit 1 + fi + ;; + *) # no resolvconf + if ! [ -L $target/etc/resolv.conf ] ; then + cat /etc/resolv.conf >> $target/etc/resolv.conf + else + echo "Error: /etc/resolv.conf in chroot should not be a symlink (resolvconf not installed)." >&2 + exit 1 + fi + ;; + esac fi if [ -r $target/etc/policy-rc.d.conf ] ; then @@ -60,15 +63,6 @@ if [ "$FAI_ACTION" = "softupdate" ] ; then //DPkg::Tools::Options::/usr/sbin/apt-listbugs::Version "2"; EOF - # run it on our own, as updatebase is used at the wrong stage for our needs, - # see ${GRML_FAI_CONFIG}/hooks/updatebase.GRMLBASE - # the apt-get update might return an error if there's for example - # a hashsum mismatch on Debian mirror sources, we might want to continue - # but should warn the user - if ! $ROOTCMD apt-get update ; then - echo "Warning: there was an error executing apt-get update, continuing anyway." - fi - # work around /etc/kernel/postinst.d/zz-update-grub failing # inside openvz environment, see #597084 if ! $ROOTCMD dpkg-divert --list | grep -q '/usr/sbin/update-grub' ; then