У меня есть сервер, на котором работает Proxmox (платформа виртуализации), и я создал виртуальную машину KVM с Ubuntu Server 12.10. После настройки сети все работает нормально, но если я добавлю к этой виртуальной машине второй сетевой адаптер, он не распознается. dmesg | grep -i eth показывает только один интерфейс (eth0).
РЕДАКТИРОВАТЬ:
root@ubuntuserver1:~# lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:12.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 20)
Виртуальные машины на основе KVM и qemu - это просто процессы. Диск - это ресурс, назначенный процессу. Если вы добавите диск, но не перезапустите процесс, он не будет обнаружен. Перезагрузка виртуальной машины не перезапускает ее, вместо этого имитируется фактическая перезагрузка. Поэтому, когда вы останавливаете / запускаете виртуальную машину, она фактически убивает процесс виртуальной машины и запускает его с новыми настройками.
Извините, конечно, все сложнее, и я слишком упрощаю, но как только вы узнаете, как все работает, я нахожу, что он отвечает на вопросы лучше, чем «сделайте A, затем B, и все будет щелкать»
PS: в более новых версиях qemu-kvm есть функция горячего подключения для дисков и сетевых адаптеров
Наконец нашел решение. Перезагрузки машины недостаточно, необходимо остановить виртуальную машину и снова запустить ее.
Так просто, так надоедливо