Virsh console не работает

Поломался virsh

Произошел сбой на нежурналируемой ext4 в luks. fsck вроде все почистил. Появилась одна проблема. При загрузке системы не запускаются виртуалки. Если прописываю в крон, все комманды выполняются, кроме virsh-start.

Тоже самое в GUI. Если в virt-manager, поставить галку на загрузку виртуалок при старте системы, то раньше работало, теперь нет. После загузки системы комманда virsh запускает гостей без проблем.

Где копать? Что именно могло повредиться, что дает такой глюк? Все остальное работает.

При загрузке системы не запускаются виртуалки.

А как именно в точности ты их запускал? Какие ошибки в journalctl -eb ?

Если запускаю после загрузки системы, то запускаются и через вирт-менеджер и вручную, через virsh. До этого одна виртуалка автостартовала скриптом в кроне. Скрипт работает, делает все, кроме части virsh …. Вторая виртуалка автостартовала сама, в смысле, просто поставил птичку в виртуал-менеджере запускать ее при загрузке системы.

Не знаю где проблема. Ну значит cнес вот эту всю компанию qemu qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

Установил заново. Получил ошибку:A dependency job for libvirtd.service failed. See ‘journalctl -xe’ for details.

Перезагрузился, не работает.

снес дефолтный пул, undefined его. снова создал дефолтный пул, рестартовал сервис либвирт проверил пулы и до и после (весь список все как надо). Перезагрузка, опять не работает.

Вывод journalctl -xe

Jul 18 16:38:59 host gnome-shell[2385]: pop-shell: [DEBUG] xprop -id 0x2800007 _MOTIF_WM_HINTS

Jul 18 16:38:59 host gnome-shell[2385]: pop-shell: [DEBUG] _MOTIF_WM_HINTS: not found.

Jul 18 16:38:59 host dbus-daemon[982]: [system] Activating service name=‘org.pop_os.transition_system’ requested by ‘:1.109’ (uid=1000 pid=2530 comm=»/usr/bin/python3 /usr/bin/pop-transitio>

Jul 18 16:38:59 host dbus-daemon[982]: [system] Successfully activated service ‘org.pop_os.transition_system’

Jul 18 16:38:59 host libvirtd[1151]: operation failed: pool ‘default’ already exists with uuid

Вывод journalctl -eb:

CPU:Package temperature above treshold …

по всем цпу, больше ничего

Скрипт работает, делает все, кроме части virsh ….

Ну и где скрипт, почему не запостил? Пробовал команды из него выполнить по очереди из терминала?

A dependency job for libvirtd.service failed

systemctl status libvirtd

Ты выполняешь до старта виртуалки virsh net-start default ? Я бы вообще по пунктам выполнил это, а перед этим systemctl start libvirtd и проверял ошибки.

systemctl status libvirtd

libvirtd.service — Virtualization daemon Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)

Я ж говорю, все было ок, пока не произошел сбой на ФС. ФС востановлена, но вот единственная ошибка по всем логам

operation failed: pool ‘default’ already exists

Что я только с ним не делаю, чтобы исправить:

virsh pool-destroy default

virsh pool-undefine default

virsh pool-define-as –name default –type dir –target /var/lib/libvirt/images

virsh pool-start default

virsh pool-autostart default

Читайте также:  Механизм для складывания дивана как починить

Все эти манипуляции. Убирал его, создавал заново, перезагружал, все одно, и если он есть (default) в списке (virsh pool-list) после того как destroy, undefine и define, start, autostart заново, то

operation failed: pool ‘default’ already exists

А если просто virsh pool-destroy default, virsh pool-undefine default, то его уже нет в списке и ошибки нет. Но он нужен. Определяю его заново (virsh pool-define-as –name default –type dir –target /var/lib/libvirt/images) и снова ошибка после перезагрузки, что уже определен.

то его уже нет в списке и ошибки нет. Но он нужен.

Источник

Как включить доступ к консоли KVM virsh для Ubuntu Linux виртульной машины

Я выполнил все ваши инструкции и установил KVM с Ubuntu Linux в качестве новой гостевой виртуальной машины. Однако я не могу использовать команду: «virsh console vm». Как настроить и включить доступ к консоли, чтобы получить доступ к оболочке на недавно созданной виртуальной машине Ubuntu Linux 16.04 LTS?

Активация последовательной консоли в гостевом Ubuntu Linux 16.04 LTS — отличный способ войти в систему и решить проблемы.

Пример нашего установленного экземпляра

  1. KVM IP хоста: 192.168.2.15
  2. KVM гостевая операционная система: Ubuntu Linux 16.04 LTS
  3. KVM гостевой IP: 192.168.2.45
  4. KVM гостевое имя: ubuntu-box1
  5. KVM гостевое имя пользователя: vivek
  6. KVM гостевой пароль: hidden-secrete

Как настроить доступ к консоли Ubuntu 16.04 KVM Guest

Во-первых, вам нужно войти с помощью ssh или VNC клиента в гостевой Ubuntu.

Осуществляем вход с помощью ssh

В этом примере, я осуществляю вход, используя ssh клиент, из моей рабочей станции (или введите команду на самом хосте KVM) в Ubuntu Linux VM guest:

После входа получите доступ к корневой оболочке:

Осуществляем вход с помощью

Введите следующую команду на вашем KVM хосте:

Пожалуйста. обратите внимание на значение порта (т. е. 5901). Вам нужно использовать SSH-клиент для настройки туннеля и клиента VNC для доступа к удаленному серверу vnc. Введите следующую команду переадресации портов SSH из вашей клиентской или настольной системы Linux/Unix/MacOS:

После того, как вы установили туннель ssh, вы можете указать в VNC свой IP 127.0.0.1 (localhost) адрес и порт 5901. В VNC клиенте это можно сделать следующим образом:

Рисунок 01: Графический клиент VNC для подключения к консоли сервера Ubuntu Linux 16.04 LTS

Войдите в свою виртуальную машину:

Рисунок 02: Вход в мою гостевую виртуальную машину Ubuntu

Настройте последовательную консоль в гостевой Ubuntu

Наконец, введите следующие две команды, чтобы включить последовательную консоль в гостевой системе для доступа к соединению с помощью команды «virsh console»:

Примеры возможных выводов данных:

Как получить доступ к консоли Ubuntu 16.04 KVM Guest с узла KVM

Для того чтобы увидеть список запущенных виртуальных машин введите:

Примеры возможных выводов данных:

Введите следующую команду с хоста KVM для входа в гостевой файл с именем ubuntu-box1

Используйте комбинацию клавиш Ctrl + ] для того, чтобы выйти из консоли.

Источник

Libvirt: virsh console — нет ответа

Проблема

и ничего . курсор не мигает . ввод не делает ничего . VM не отвечает .

2 ответа

Просто удалось заставить его работать:

Предположим, что ваш виртуальный домен myGuest, ваш предпочтительный редактор vi, и ваш гость установлен с grub2 и использует systemd. Если последнее предположение неверно, вы можете взглянуть на «Работа с последовательной консолью».

Читайте также:  Как отремонтировать обшивку сиденья автомобиля

Сначала установите libguestfs-tools на хост: sudo apt install libguestfs-tools.

Во-вторых, выключите гостя: virsh shutdown myGuest.

Затем установите виртуальный диск: guestmount -g myGuest -i /mnt (или используйте любой другой существующий каталог в качестве точки монтирования). Теперь в /mnt вы сможете увидеть файловую систему гостя.

С помощью grub2 и systemd вам нужно изменить конфигурацию grub: vi /mnt/etc/default/grub и изменить как [ ! d6] GRUB_CMDLINE_LINUX=’console=tty0 console=ttyS0,19200n8′ GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND=»serial —speed=19200 —unit=0 —word=8 —parity=no —stop=1″

Как вам придется запускать update-grub на гостевой, для первого запуска вам также необходимо изменить /mnt/boot/grub/grub.cfg. Найдите элемент меню загрузки по умолчанию и добавьте информацию о консоли в запись linux, чтобы она выглядела аналогично

linux /boot/vmlinuz-4.4.0-75-generic root=UUID=76f3e237-d791-4e9d-8ad7-fe5c9165ae55 ro console=ttyS0,19200 earlyprint=serial,ttyS0,19200

Возможно, вам нужны права root для монтирования и редактирования файлов.

Теперь перезапустите гостя и запустите виртуальную консоль:

virsh start myGuest && virsh console myGuest

Вы должны увидеть журнал ядра, а затем приглашение для входа. После входа в систему не забудьте запустить sudo update-grub.

Источник

virsh: VM console does not show any output

I have a VM which I can start with virsh . According to virsh dumpxml VM1 , this is the allocated pty:

The VM is running:

Inside the VM, this is the grub configuration:

And this is the command line launched by virsh to start the VM:

But if I connect with virsh console VM1 , or I do cat /dev/pts/6 , nothing is shown in the VM console.

Is there something else that I must consider?

UPDATE

I have two VMs, one started directly with kvm , the other via virsh . The one started directly has a working console. I have verified the open files in both cases:

As you can see, in one of the VMs (the wrong one), there are no file descriptors 1 & 2, and file descriptor 0 is redirected to /dev/null. That is the problem I guess.

The question is, how do I tell virsh not to do that?

4 Answers 4

This is what I normally add to the VMs definition, using virsh edit Then console=ttyS0 appended in the VM’s kernel line in grub.conf

Never failed me so far

Working example of using Debian jessie as host and guest operating system.

create a VM using virt-install or virt-manager In any case you will get serial console statements added to VM.xml file

in guest VM run the following

in guest VM in /etc/default/grub replace

in guest VM run the following

the VM console for running VM can be get by

or start the VM with console attached

I’ve found the most applicable answer here:

Suppose your virtual domain is myGuest , your preferred editor is vi , and your guest is installed with grub2 and uses systemd . If the last assumption is not true, you might have a look at Working with the Serial Console.

First, install libguestfs-tools on the host: sudo apt install libguestfs-tools . You will need this when working with headless guests.

Second, shut down your guest: virsh shutdown myGuest .

Next, mount the virtual disk: guestmount -d myGuest -i /mnt (or use any other existing directory as mountpoint). Now in /mnt you should be able to see the filesystem of the guest.

Читайте также:  Кто не работает целую неделю

With grub2 and systemd , you only have to modify the grub configuration: vi /mnt/etc/default/grub , and modify like

As you will have to run update-grub on the guest, for the first start you have to also modify /mnt/boot/grub/grub.cfg . Find the default boot menu item and append the console information to the linux entry to look similar to

Maybe you need root privileges to mount and edit the files.

Now restart the guest and start the virtual console:

You should see the kernel log and then a login prompt. After logging in, don’t forget to run sudo update-grub .

Источник

How To Enable Virsh Console Access For KVM Guests

After creating the KVM guests, I can be able to access them via SSH, VNC client, Virt-viewer, Virt-manager and Cockpit web console etc. But I couldn’t access them using virsh console command. For those wondering, the virsh console command is used to connect to the guest machine’s console from the host system. After looking into the KVM documentation, I found that we should enable serial console in the KVM guest system in order to enable virsh console access for KVM guests.

I have a CentOS 8 virtual machine running in my Ubuntu 20.04 system.

I tried to access the console of CentOS 8 VM using the following command:

I got this this output:

Access console of a KVM guest using virsh command in Linux

It says that I am connected to centos8 VM, but I don’t see the VM’s console. I can’t get past this screen. It kept showing this blank screen until I manually exit it by pressing CTRL+] key. If you’ve ever been in this situation, just enable serial console service as described below.

Enable Virsh Console Access For KVM Guests

Like I already mentioned, you have to add a serial console in your guest machine in order to access its virsh console from the host system.

To do so, log in to your guest machine via SSH or Virt-manager or Cockpit and run the following commands to enable and start a serial console:

Enable virsh console access for KVM virtual machines

Please note that the above commands should be run in KVM guest system (virtual machine), not in the KVM host.

That’s it. We have enabled the serial console interface in the guest.

You can verify it by looking into the VM’s configuration XML file:

If serial console is enabled, you will see the following lines:

Close the XML file and exit from the guest machine.

Now start the virsh console of the guest system from the host using command:

You will be greeted with this message:

Press ENTER again and type your user name and password to connect to the guest machine:

virsh console of the KVM virtual machine

You are now inside the guest machine’s console. Start using it. You can switch back to the host console at any time by pressing «CTRL+]» keys.

Источник

Оцените статью