エンジョイAsobi

スマホとWindowsとLinuxを遊ぶ。

Ubuntu Windows

Hyper-V 上の Ubuntu で非レガシーなネットワークアダプターを使えた

投稿日:2014年3月19日 更新日:

以前 Hyper-V上にUbuntuの仮想マシンを作りましたが、ネットワークアダプターにはレガシーネットワークアダプターを選択しました。Ubuntuがレガシーでない方のドライバーを持っているのか確証が無かったため。 でも本来は、レガシーでない方のネットワークアダプターの方がパフォーマンスは高いんですよね。以前から使えないのか気になっていたので試してみました。 まずレガシーな方を残したまま、レガシーでない方を追加してみます。 1add 2add2 追加したら、仮想マシンを起動します。起動してから確認してみると、
~>$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:15:5d:01:c8:00
          inet addr:192.168.1.27  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::215:5dff:fe01:c800/64 Scope:Link
          inet6 addr: 2001:a4c8:ad0c:0:215:5dff:fe01:c800/64 Scope:Global
          inet6 addr: 2001:a4c8:ad0c:0:24bd:9253:b6dd:c49e/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:472 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:33354 (33.3 KB)  TX bytes:10557 (10.5 KB)

eth1      Link encap:Ethernet  HWaddr 00:15:5d:01:c8:01
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

あっさりethネットワークデバイスが二つに。普通に認識された…。

では一旦仮想マシンを落としてからレガシーアダプターを削除。

3delete

仮想マシンを起動してみると、

~>$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:15:5d:01:c8:01
          inet addr:192.168.1.27  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::215:5dff:fe01:c801/64 Scope:Link
          inet6 addr: 2001:a4c8:ad0c:0:215:5dff:fe01:c801/64 Scope:Global
          inet6 addr: 2001:a4c8:ad0c:0:10d3:2a42:5386:7f0d/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:62 errors:0 dropped:0 overruns:0 frame:0
          TX packets:74 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7773 (7.7 KB)  TX bytes:7991 (7.9 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

簡単に使えました。最初からレガシーを使う必要無かった…。

ドライバーは何て名前かな。

~>$ lsmod
Module                  Size  Used by
crct10dif_pclmul       14289  0
crc32_pclmul           13113  0
ghash_clmulni_intel    13259  0
cryptd                 20359  1 ghash_clmulni_intel
joydev                 17377  0
psmouse                97655  0
hid_generic            12548  0
mac_hid                13205  0
hid_hyperv             13059  0
i2c_piix4              22106  0
lp                     17759  0
serio_raw              13413  0
hid                   101762  2 hid_hyperv,hid_generic
parport                42299  1 lp
hyperv_fb              17522  1
microcode              23656  0
hv_netvsc              31253  0
hv_utils               18200  0
hv_storvsc             21881  2
floppy                 69370  0
hv_vmbus               48205  5 hv_netvsc,hid_hyperv,hv_utils,hyperv_fb,hv_storvsc

それっぽいのは hv_netvsc。Hyper-V仮想マシン用のドライバーは、”hv_”というプレフィックスがつくらしい。

さて、めでたく tulipを外せました。ここで忘れてはいけないのが、以前 tulipドライバーのせいで停止せざるを得なかった irqbalanceサービスのこと。

もう再稼働させてもいいはずですよね。

/etc/default/irqbalance ファイルの ENABLED=”0″ を ENABLED=”1″に書き換えてから reboot。

~>$ ps ax | grep irqbalance
 1079 ?        Ss     0:00 /usr/sbin/irqbalance
 1242 pts/2    S+     0:00 grep --color=auto irqbalance

はい。これ sshから入って実行しました。ちゃんとネットワークが使えましたよ。

ということで、無用のトラブルを避けようとレガシーネットワークアダプターを選んだけどそんな必要は無かった、しかも無用な地雷を踏んでしまったという話。

-Ubuntu, Windows

関連記事

Hyper-V 対 VMware Player対決

先日、バーチャルマシン上でプログラムをビルドすると時間がかかってしようがない。ビルドするならやっぱネイティブマシンだよね、と話している人がいました。 その人が使っているのはホスト型の仮想化だったのです …

Hyper-VでUbuntu 14.04を試す(2)

前回の続きです。 作成した仮想マシンにUbuntu 14.04のサーバー版をインストールするところまで。スクリーンショットでどうぞ。 なぜかこのときキーボードの自動検出に失敗したんですよね…。 しよう …

OOM Killerの発動を検知したい

今回はプログラムの話。タイトル通り、LinuxのOOM Killerが発動したことを検知したいという話です。組み込みでLinuxを使っていると、OOM Killerが動き出すこと自体異常事態なので、検 …

Ubuntuのカーネル再構築

実験用に作ったUbuntu13.10の仮想マシン上で、Linuxカーネルの再構築を試しました。 まずカーネルのビルド環境を構築。 元がサーバー版Ubuntuだったので、ビルド環境なんてほぼ何も入ってお …

Windowsバッチファイルの処理を一時停止させる sleep コマンド

先日Windowsのバッチファイルを使っていて、不便だなと感じたことがありました。 ある実験をしていて、Windows PCから自動的に繰り返し繰り返し操作を加えていたのですが、ある操作と操作の間にポ …