Установив Ubuntu Server 11.04 на виртуальную машину под Hyper-V. Утыкаюсь в первую проблему - система не видит Hyper-V'шный синтетический сетевой интерфейс.
Решение находится быстро - надо включить поддержку Hyper-V в убунте.
hv_storvsc
hv_blkvsc
hv_netvsc
hv_utils
Для чего нужны эти модули?
hv_vmbus - шина Hyper-V, основной модуль
hv_storvsc - поддержка виртуального хранилища (виртуальный жесткий диск)
hv_blkvsc - поддержка блочных устройств, требуется для хранилища.
hv_netvsc - поддержка синтетической сетевой карты
hv_utils - поддержка расширенных возможностей Hyper-V, таких как управление питанием гостевой системы и т.п.
Решение находится быстро - надо включить поддержку Hyper-V в убунте.
1. Подключаем модули поддержки Hyper-V. Для этого в /etc/initramfs-tools/modules добавляем строчки:
hv_vmbus hv_storvsc
hv_blkvsc
hv_netvsc
hv_utils
Для чего нужны эти модули?
hv_vmbus - шина Hyper-V, основной модуль
hv_storvsc - поддержка виртуального хранилища (виртуальный жесткий диск)
hv_blkvsc - поддержка блочных устройств, требуется для хранилища.
hv_netvsc - поддержка синтетической сетевой карты
hv_utils - поддержка расширенных возможностей Hyper-V, таких как управление питанием гостевой системы и т.п.
2. Обновляем initramfs
sudo update-initramfs -u
3. В /etc/network/interfaces добавляем интерфейс eth0 (в руководствах из инета говорят про seth0, но у меня синтетический адаптер hyper-v получил имя eth0, по неизвестным мне причинам)
Auto eth0
iface eth0 inet static
address x.x.x.x
netmask x.x.x.x
Gateway x.x.x.x
iface eth0 inet static
address x.x.x.x
netmask x.x.x.x
Gateway x.x.x.x
Не забываем указать DNS-серверы в /etc/resolv.conf
Описанный вариант используется для статического назначения ip-адреса. Вариант для динамического назначения приведен ниже:
Auto eth0
iface eth0 inet dhcp
Если изначально при установке был добавлен legacy адаптер - отключаем его, т.к. дефолтный маршрут идёт через него (а он, как известно интернетам, не работает).
Перезагружаем сервер.
И тут же нарываюсь на грабли - сети нету. После экспериментов и копания в логах выяснилось, что udev переименовал мой сетевой интерфейс с eth0 в eth2. При этом нет ни слова про seth0, о котором пишут в руководствах. Как выяснилось, переименование произошло из-за того, что во время настройки сети, я пару раз удалял из hyper-v сетевой интерфейс и добавлял другой, а Udev записывал MAC-адреса этих интерфейсов. Поскольку MAC текущей сетевухи отличается от MAC'а первой в жизни udev'a сетевухи, он и переименовал ее. Проблема решается удалением кэша udev для сетевух:
$ sudo rm –f /etc/udev/rules.d/70-persistent-net.rules
Описанный вариант используется для статического назначения ip-адреса. Вариант для динамического назначения приведен ниже:
Auto eth0
iface eth0 inet dhcp
Если изначально при установке был добавлен legacy адаптер - отключаем его, т.к. дефолтный маршрут идёт через него (а он, как известно интернетам, не работает).
Перезагружаем сервер.
И тут же нарываюсь на грабли - сети нету. После экспериментов и копания в логах выяснилось, что udev переименовал мой сетевой интерфейс с eth0 в eth2. При этом нет ни слова про seth0, о котором пишут в руководствах. Как выяснилось, переименование произошло из-за того, что во время настройки сети, я пару раз удалял из hyper-v сетевой интерфейс и добавлял другой, а Udev записывал MAC-адреса этих интерфейсов. Поскольку MAC текущей сетевухи отличается от MAC'а первой в жизни udev'a сетевухи, он и переименовал ее. Проблема решается удалением кэша udev для сетевух:
$ sudo rm –f /etc/udev/rules.d/70-persistent-net.rules
Комментариев нет:
Отправить комментарий