VirtualBox : fixer les règles réseau udev pour permettre le déploiement des VM

Boris HUISGEN April 15, 2014

administration virtualisation virtualbox linux

udev a la facheuse tendance à faire perdre la connectivé réseau en vue d’un déploiement en masse ou plus simplement même d’un clonage. Pour ne plus y penser, j’ai donc recours à un script init.d qui va se charger de supprimer les règles persistantes sur les interfaces réseaux à chaque arrêt ou redémarrage.

Le voici :

# vim /etc/init.d/udev-network-rules

#! /bin/sh
### BEGIN INIT INFO
# Provides:          udev-network-rules
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Fix udev network rules before restart
# Description:       Fix udev network rules before restart for VM machines
### END INIT INFO

# Author: Boris HUISGEN <bhuisgen@hbis.fr>

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="udev network rules"
NAME=udev-network-rules
SCRIPTNAME=/etc/init.d/$NAME

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start()
{
    return 0
}

do_stop()
{
    rm -f /etc/udev/rules.d/70-persistent-net.rules
    return 0
}

do_reload() {
    return 0
}

case "$1" in
  start)
    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
    do_start
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
  stop)
    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
    do_stop
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
  status)
       exit 0
       ;;
  restart|force-reload)
    log_daemon_msg "Restarting $DESC" "$NAME"
    do_stop
    case "$?" in
      0|1)
        do_start
        case "$?" in
            0) log_end_msg 0 ;;
            1) log_end_msg 1 ;;
            *) log_end_msg 1 ;;
        esac
        ;;
      *)
        log_end_msg 1
        ;;
    esac
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
    exit 3
    ;;
esac

# chmod +x /etc/init.d/udev-network-rules
# update-rc.d udev-network-rules defaults

See also

VirtualBox : montage automatique d’un dossier partagé sur un invité Linux
Read more
VirtualBox : redimensionner un disque dur
Read more
OpenSSH : récupération des clés publiques depuis un serveur OpenLDAP
Read more