Running Debian Linux in VMware Player

Некоторое время назад я сделал себе образ Debian Etch в VMware Workstation для моих программистских нужд. Этим образом я пользовался работая в Microsoft Windows XP. Не так давно мне снова потребовался этот образ для работы.

Сказано — сделано. Установил VMware Player 2.5.0, открыл предварительно сохранённый образ. Открылся диалог, вопрошающий меня, был ли скопирован или перенесён открываемая виртуальная машина. Ответил — “I copied it”. Когда виртуалка запустилась и загрузилась, я обнаружил, что сеть не работает. Ifconfig показывал, что eth0 отсутствует и в системе имеется только lo интерфейс. ifup eth0 выдал ошибку:

eth0: ERROR while getting interface flags: No such device

Тем не менее, я сделал dmesg | grep eth и обнаружил, что драйвер pcnet32 успешно загружен и работает в виртуальной машине.

vmware:~# dmesg | grep eth
eth0: registered as PCnet/PCI II 79C970A

После поисков в гугле, я нашёл причину проблемы и её решение. Проблема была в том, что когда VMware Player запускается, он генерирует MAC адрес для сетевой карты в виртуальной машине такой же, как UUID в моей системе.

Для решения проблемы я отредактировал в виртуальной Debian Etch файл /etc/udev/rules.d/z25-persistent-net.rules. В нём были строки:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# MAC addresses must be written in lowercase.

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==»net», DRIVERS==»?*», ATTRS{address}==»00:xx:xx:xx:xx:48″, NAME=»eth0″

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==»net», DRIVERS==»?*», ATTRS{address}==»00:xx:xx:xx:xx:47″, NAME=»eth1″

Я закомментировал первую строку с eth0 на конце, а во второй строке заменил “eth1″ на “eth0″. Получилось следующее:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# MAC addresses must be written in lowercase.

# PCI device 0x1022:0x2000 (pcnet32)
#SUBSYSTEM==»net», DRIVERS==»?*», ATTRS{address}==»00:xx:xx:xx:xx:48″, NAME=»eth0″

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==»net», DRIVERS==»?*», ATTRS{address}==»00:xx:xx:xx:xx:47″, NAME=»eth0″

После перезапуска VMware OS eth0 нашёлся в системе и заработал нормально.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *