- Вопрос или проблема
- Ответ или решение
- Как добавить последовательное устройство (консоль) к виртуальной машине с помощью команды virsh attach-device
- Структура XML для последовательного устройства
- Команда для прикрепления устройства
- Перезагрузка виртуальной машины
- Настройка консольного порта в гостевой системе
- Заключение
Вопрос или проблема
Я хотел бы добавить последовательное устройство (консоль) к гостю с помощью команды virsh attach-device
.
У меня есть файл console.xml, содержащий:
<serial type="pty">
<target port="0"/>
</serial>
И я выполняю следующую команду:
sudo virsh attach-device VMNAME console.xml
Но получаю следующую ошибку:
ошибка: Не удалось подключить устройство из console.xml
ошибка: XML ошибка: неизвестный тип устройства
Вот информация о моей версии:
Скомпилировано с библиотекой: libvir 0.9.8
Используемая библиотека: libvir 0.9.8
Используемый API: QEMU 0.9.8
Запускаемый гипервизор: QEMU 1.0.0
Что я делаю не так? Как я могу добавить это из скрипта? Любая помощь будет оценена!!
Заранее спасибо.
Ваш файл console.xml содержит только одну строку, этого достаточно:
<serial type="pty"/>
Затем вы можете подключить последовательный порт с помощью
virsh attach-device myvm console.xml --config
Вам нужно выключить и снова включить ВМ, чтобы активировать изменения.
Если вы хотите добавить это на свой Linux, вам нужно настроить этот порт как консольный порт (ttyS1 в этом примере), на RHEL8:
[root@myvm ~]# systemctl enable [email protected]
Создана символьная ссылка /etc/systemd/system/getty.target.wants/[email protected] → /usr/lib/systemd/system/[email protected].
[root@myvm ~]# systemctl start [email protected]
Согласно документации libvirt, вам также нужен элемент source. Что-то вроде этого:
<serial type="pty">
<source path="/dev/pts/3"/>
<target port="0"/>
</serial>
Ответ или решение
Как добавить последовательное устройство (консоль) к виртуальной машине с помощью команды virsh attach-device
Вам необходимо добавить последовательное устройство к виртуальной машине (VM) с использованием команды virsh attach-device
, но возникла ошибка из-за неверной структуры XML файла. Давайте разберёмся, как правильно оформить ваш файл и выполнить необходимые команды.
Структура XML для последовательного устройства
Вы привели следующую структуру вашего файла console.xml
:
<serial type="pty">
<target port="0"/>
</serial>
Ошибка, которую вы получили:
error: XML error: unknown device type
указывает на то, что необходимо добавить также <source>
элемент, указывающий путь к устройству. Чтобы избежать ошибок и успешно прикрепить последовательный порт, ваш XML файл должен выглядеть следующим образом:
<serial type="pty">
<source path="/dev/pts/3"/> <!-- Укажите доступный PTY -->
<target port="0"/>
</serial>
Обратите внимание, что вместо /dev/pts/3
можно использовать любой другой доступный PTY (например, /dev/pts/0
, /dev/pts/1
и так далее).
Команда для прикрепления устройства
После корректировки файла console.xml
, используйте следующую команду для прикрепления устройства:
sudo virsh attach-device VMNAME console.xml --config
Флаг --config
обеспечит внесение изменений в конфигурацию виртуальной машины, которые сохранятся при перезагрузке.
Перезагрузка виртуальной машины
После выполнения команды, вам потребуется перезагрузить виртуальную машину. Это необходимо для активации изменений. Используйте следующие команды:
sudo virsh shutdown VMNAME # Остановить виртуальную машину
sudo virsh start VMNAME # Запустить её снова
Настройка консольного порта в гостевой системе
После того как последовательное устройство будет добавлено, необходимо настроить его в самой гостевой операционной системе. Например, для Red Hat Enterprise Linux 8 выполните следующие шаги:
- Включите консольный сервис для нового порта. Для
ttyS1
это можно сделать следующим образом:
systemctl enable [email protected] # Включите автозагрузку сервиса
systemctl start [email protected] # Запустите сервис
Заключение
Следуя указанным шагам, вы сможете успешно добавить последовательное устройство к своей виртуальной машине. Пример приведенного файла и команд гарантируют, что вы избежите распространённых ошибок. Это решение идеально подходит для администраторов систем, стремящихся расширить функционал своих виртуальных машин с помощью последовательных портов.
Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью!