fi
einfo "Updating grub configuration file."
- if [ -n "$BOOT_APPEND" ] ; then
- sed -i "/GRUB_CMDLINE_LINUX_DEFAULT/ s#\"\$# ${BOOT_APPEND}\"#" "${MNTPOINT}"/etc/default/grub
- fi
chroot "${MNTPOINT}" update-grub
case "$RELEASE" in
# e.g. not with 4.2.37(1)-release (a.k.a 4.2+dfsg-0.1+deb7u3) of Debian wheezy
[ -n "$ARCH" ] && echo "ARCH='$(sed "s,','\\\\'',g" <<<"${ARCH}")'" >> "$CHROOT_VARIABLES"
[ -n "$BACKPORTREPOS" ] && echo "BACKPORTREPOS='$(sed "s,','\\\\'',g" <<<"${BACKPORTREPOS}")'" >> "$CHROOT_VARIABLES"
+ [ -n "$BOOT_APPEND" ] && echo "BOOT_APPEND='$(sed "s,','\\\\'',g" <<<"${BOOT_APPEND}")'" >> "$CHROOT_VARIABLES"
[ -n "$CHROOT_SCRIPTS" ] && echo "CHROOT_SCRIPTS='$(sed "s,','\\\\'',g" <<<"${CHROOT_SCRIPTS}")'" >> "$CHROOT_VARIABLES"
[ -n "$COMPONENTS" ] && echo "COMPONENTS='$(sed "s,','\\\\'',g" <<<"${COMPONENTS}")'" >> "$CHROOT_VARIABLES"
[ -n "$CONFFILES" ] && echo "CONFFILES='$(sed "s,','\\\\'',g" <<<"${CONFFILES}")'" >> "$CHROOT_VARIABLES"
# add dhcp setting for Predictable Network Interface Names
if [ -x /bin/udevadm ]; then
- for interface in $(udevadm info -e | sed -n -e 's/E: ID_NET_NAME_PATH=\([^$*]\)/\1/p'); do
- DEFAULT_INTERFACES="${DEFAULT_INTERFACES}
+ tmpfile=$(mktemp)
+ for interface in /sys/class/net/*; do
+ udevadm info --query=all --path="${interface}" > "${tmpfile}"
+ # skip virtual devices, like bridges, vboxnet,...
+ if grep -q 'P: /devices/virtual/net/' "${tmpfile}" ; then
+ continue
+ fi
+
+ # iterate over possible naming policies by precedence (see udev/net/link-config.c),
+ # use and stop on first match to have same behavior as udev's link_config_apply()
+ for property in ID_NET_NAME_FROM_DATABASE ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH ID_NET_NAME_MAC ; do
+ if grep -q "${property}" "${tmpfile}" ; then
+ interface=$(grep "${property}" "${tmpfile}" | sed -n -e "s/E: ${property}=\([^\$*]\)/\1/p")
+ DEFAULT_INTERFACES="${DEFAULT_INTERFACES}
allow-hotplug ${interface}
iface ${interface} inet dhcp
"
+ break
+ fi
+ done
done
+ rm -f "${tmpfile}"
fi
if [ -n "$NOINTERFACES" ] ; then
einfo "Not installing /etc/network/interfaces as requested via --nointerfaces option" ; eend 0
elif [ -n "$USE_DEFAULT_INTERFACES" ] ; then
einfo "Installing default /etc/network/interfaces as requested via --defaultinterfaces options."
+ mkdir -p "${MNTPOINT}/etc/network"
echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces"
eend $?
elif [ -n "$VIRTUAL" ] ; then
einfo "Setting up Virtual Machine, installing default /etc/network/interfaces"
+ mkdir -p "${MNTPOINT}/etc/network"
echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces"
eend $?
elif [ -r /etc/network/interfaces ] ; then
einfo "Copying /etc/network/interfaces from host to target system"
+ mkdir -p "${MNTPOINT}/etc/network"
cp $VERBOSE /etc/network/interfaces "${MNTPOINT}/etc/network/interfaces"
eend $?
else
ewarn "Couldn't read /etc/network/interfaces, installing default /etc/network/interfaces"
+ mkdir -p "${MNTPOINT}/etc/network"
echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces"
eend $?
fi
# install config file providing some example entries
if [ -r /etc/network/interfaces.examples ] && [ ! -r "$MNTPOINT/etc/network/interfaces.examples" ] ; then
- cp /etc/network/interfaces.examples "$MNTPOINT/etc/network/interfaces.examples"
+ mkdir -p "${MNTPOINT}/etc/network"
+ cp /etc/network/interfaces.examples "$MNTPOINT/etc/network/interfaces.examples"
fi
if [ -n "${SSHCOPYID}" ] ; then