Thanks to Ulrich Dangel for discovering this. [Closes: issue848]
-Index: live-boot-grml/backend/initramfs-tools/live.hook
-===================================================================
---- live-boot-grml.orig/backend/initramfs-tools/live.hook 2014-03-08 13:36:37.835196873 +0100
-+++ live-boot-grml/backend/initramfs-tools/live.hook 2014-03-08 13:36:37.835196873 +0100
-@@ -228,23 +228,19 @@
+--- a/backend/initramfs-tools/live.hook
++++ b/backend/initramfs-tools/live.hook
+@@ -228,23 +228,26 @@
# Some experimental stuff
+# might be needed if /etc/hosts is used
+#mkdir -p "${DESTDIR}/etc"
+#cp -p /etc/nsswitch.conf "${DESTDIR}/etc"
++
++# vlan support
++if [ -x /sbin/vconfig ]
++then
++ copy_exec /sbin/vconfig
++ manual_add_modules 8021q
++fi
[ "${QUIET}" ] || echo .
--- /dev/null
+--- a/components/9990-cmdline-old
++++ b/components/9990-cmdline-old
+@@ -266,6 +266,11 @@
+ UNIONTYPE="${_PARAMETER#union=}"
+ export UNIONTYPE
+ ;;
++
++ vlan=*)
++ VLANS="${VLANS} ${_PARAMETER#vlan=}"
++ export VLANS
++ ;;
+ esac
+ done
+
+--- a/components/9990-grml-networking.sh
++++ b/components/9990-grml-networking.sh
+@@ -67,10 +67,39 @@
+ method="dhcp"
+ fi
+
+- cat >> $IFFILE << EOF
++ if [ -n "$VLANS" ] ; then
++ modprobe 8021q
++
++ # vlan=<vid>:<phydevice>
++ for line in $(echo $VLANS | sed 's/ /\n'/) ; do
++ vlandev=${line#*:}
++ vlanid=${line%:*}
++
++ if [ -n "$vlandev" ] && [ -n "$vlanid" ] ; then
++ case "$vlandev" in
++ "$interface")
++ vlan_raw_dev=$interface
++ interface="${vlandev}.${vlanid}"
++ ;;
++ esac
++ fi
++ done
++ fi
++
++ if [ -n "$vlan_raw_dev" ] ; then
++ cat >> $IFFILE << EOF
++auto ${interface}
++iface ${interface} inet ${method}
++ vlan-raw-device $vlan_raw_dev
++EOF
++ else
++ cat >> $IFFILE << EOF
+ allow-hotplug ${interface}
+ iface ${interface} inet ${method}
+ EOF
++ fi
++
++ unset vlandev vlanid vlan_raw_dev # unset variables to have clean state for next device
+
+ # DNS for resolvconf and /etc/resolv.conf
+ if [ -e "${netconfig}" ]; then