
photo credit: Anna (AvS)
有線LANでのブリッジ接続設定が出来たのはいいのですが、通常ThinkPadを使う場合は(開発以外で)、家の中の無線LANでということになっています。
はなから「有線LANありき」のNIC設定をしていると・・・有線LANに接続していない時のブート時やサスペンドからの回復時に、有線LAN回復のタイムアウトを待たなくてはいけないというハメに陥ります。
そこで、使うときだけ・・・つまり有線LANを使っていて、開発の為にVirtualBox上のXPを必要とするときだけ・・・ブリッジ接続する設定にしたいと思いました(ちなみに「開発の為に」ってのはWebアプリ開発時のIE6での動作確認です。IE6さえマイナーブラウザになってくれればこんな苦労はしなくていいのであります)。
というわけで、以下のようなシェルスクリプトを作成。
interfacesファイルをstart用とstop用の2つ用意しておくという・・・さらにはsudo(パスワード無)でスクリプトを走らせるという・・・なんとも安易な手法ですが、個人利用だしこれでヨシということに(w
これで、有線LANがあるときだけブリッジ接続設定を有効にすることができるようになりました。
#! /bin/sh
ETH=eth$1
BRIDGE=br$1
VBOX=vbox$1
IFCONFIG=/sbin/ifconfig
BRCTL=/usr/sbin/brctl
start ()
{
cp /etc/network/interfaces.with_bridge /etc/network/interfaces >/dev/null 2>&1
service networking restart >/dev/null 2>&1
VBoxAddIF ${VBOX} keisuke ${BRIDGE} >/dev/null 2>&1
}
stop ()
{
VBoxDeleteIF ${VBOX} >/dev/null 2>&1
${IFCONFIG} ${BRIDGE} down >/dev/null 2>&1
${BRCTL} delif ${BRIDGE} ${ETH} >/dev/null 2>&1
${BRCTL} delbr ${BRIDGE} >/dev/null 2>&1
cp /etc/network/interfaces.without_bridge /etc/network/interfaces >/dev/null 2>&1
service networking restart >/dev/null 2>&1
}
case "$2" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: $(basename "$0") [interface number] {start|stop}"
exit 1
esac
