В чем разница между опциями "Сетевая установка" и "Сетевая загрузка" в virt-manager при установке новой виртуальной машины
Из моего понимания PXE (Preboot Execution Environment) я знаю, что сначала должен быть какой-то договор между загрузочным клиентом и DHCP-сервером для получения параметров сети (IP-адрес и т. Д.), Чтобы клиент мог получить загрузку загрузчик и образ ядра с загрузочного сервера. Другими словами, помимо того, что мы являемся "виртуальной" машиной, мы говорим здесь о "голой железной" машине, поэтому для этих переговоров должен быть какой-то механизм "предварительной загрузки", и это именно то, что делает PXE. это все о. Когда я думаю о опции "Сетевая установка", я не могу понять, как новая виртуальная машина сможет получать загрузочные образы (загрузчик и ядро) без ранее упомянутого механизма.
Итак, вот краткая версия вопроса: когда вы предоставляете новую машину virtul, как вы ожидаете, что опция "Сетевая установка" в virt-manager будет работать за кулисами?
Большое спасибо.
1 ответ
Virt-manager (и virt-install) - это только интерфейс для запуска QEMU (в данном случае qemu-kvm). При вызове с установкой PXE он работает так же, как физический сервер, выполняющий загрузку PXE. То есть QEMU работает как виртуальная машина с BIOS с поддержкой сети и встроенным стеком IP. Теперь при запуске в режиме сетевой установки (не PXE) virt-install сначала выбирает образ ядра и начальный образ виртуального диска (то есть он находится вне виртуальной машины). Затем он вызывает qemu-kvm с параметрами "-kernel" и "-initrd", указывающими на местоположение в файловой системе родительского хоста, куда он загружал эти образы. Когда запускается qemu-kvm, он помещает содержимое этих двух файлов в те же области памяти, в которые они обычно помещают Grub, Lilo или Syslinux, и указывает виртуализированному BIOS (в виртуальной машине) начать выполнение в этих местах памяти.
Вы можете увидеть, как вызывается qemu-kvm, выполнив листинг ps -ef при запуске установки, и вы можете использовать эту же командную строку вне virt-manager, если хотите.