15 июля 2024 г.

После установки гипервизора «Альт Сервер Виртуализации 10» (на сегодня актуальна уже версия 10.2) можно приступать к созданию виртуальных машин. Если нет второго компьютера, то удобнее установить какую‑нибудь графическую оболочку. Подробно такая установка описана в статье.

Уточнение некоторых моментов:

Гипервизор — в данном случае синоним установленной операционной системы «АльтЛинукс Сервер Виртуализации».

VM или ВМ — виртуальная машина.

dGPU или дискретная видеокарта - та видеокарта, которая устанавливается в отдельный слот материнской платы, в отличие от интегрированной видеокарты (или iGPU), встроенной в процессор.

Конфигурация компьютера:

Компонент

Модель

Материнская плата

Gigabyte B650M DS3H

Процессор. Сокет AM5

AMD Ryzen 5 7600X

ОЗУ. 4 х 32, всего 128 ГБ

Kingston FURY Beast Black RGB

Диск. 2ТБ

SSD M.2 накопитель Samsung 980 PRO

Видеокарта

Geforce RTX 4070 Ti

Монитор. 2 шт.

31.5" Samsung U32J590UQI

Здесь будут приведены скриншоты, где IP‑адрес у сервера имеет разное значение: 192.168.1.50 или 192.168.1.60. Реальный сервер имеет адрес 192.168.1.50. Сервер же с IP‑адресом 192.168.1.60 установлен специально для удобного создания скриншотов для этой статьи и уточнения последовательности действий, так как на реальном сервере уже всё настроено и работает.

В такой конфигурации компьютера данную видеокарту, а именно Geforce RTX 4070 Ti операционная система «АльтЛинукс Сервер Виртуализации» 10-й версии умеет пробрасывать в виртуальные машины из «коробки», как есть. Не нужно ничего прописывать в конфигурационных файлах, пересобирать ядро и т. д.

Но нужно, внимание, обязательно добиться, чтобы гипервизор запустился с использованием интегрированной видеокарты, а не той, которую планируется передать в виртуальную машину. Для этого можно один монитор подключить к дискретной видеокарте и обязательно выключить, а второй — к интегрированной и включить. При старте Аль Линукс Сервера именно на второй монитор и должна выводиться информация. Если это не так, то, скорее всего, необходимо в BIOS включить использование iGPU.

Первое подключение к веб-интерфейсу. Некоторые пояснения и подготовка сервера к установке виртуальных машин.

Включаем компьютер, дожидаемся окончания загрузки и появления приглашения к регистрации пользователя.

Запоминаем строку подключения к веб‑интерфейсу Гипервизора (на скрине ниже подчеркнуто синим), вводим имя пользователя, его пароль, после успешной регистрации пользователя в строке приглашения вводим «startx» и нажимаем клавишу ENTER на клавиатуре (на скрине ниже подчеркнуто красным):

Экран консоли сервера, когда уже зарегистрирован пользователь, но графическая оболочка еще не запущена
Экран консоли сервера, когда уже зарегистрирован пользователь, но графическая оболочка еще не запущена

После этого запустится графический интерфейс. Запускаем браузер, для этого мышью нажимаем на кнопку слева внизу, там, где в Windows по умолчанию расположена кнопка «Пуск», в открывшемся списке выбираем «Сеть», справа появится требуемый пункт «Веб‑браузер Chromium». Сразу рекомендую нажать правую кнопку мыши и выбрать пункт «Добавить на рабочий стол». На мой взгляд, с рабочего стола запускать гораздо удобнее, поэтому всегда создаю ярлыки на рабочем столе часто используемых приложений. См скрин ниже, всё важное выделено красным:

Добавляем ярлык браузера на рабочий стол
Добавляем ярлык браузера на рабочий стол

Открываем браузер, в строке адреса вводим ссылку на веб-интерфейс вашего сервера. В данном примере это:

https://192.168.1.60:8006/

где 192.168.1.60 - ip-адрес, что вы указали серверу при установке, а 8006 - порт, который по умолчанию слушает веб-интерфейс окружения Proxmox. После нажатия клавиши Enter откроется устрашающая страничка, видимо, требуется что‑то сделать с сертификатами или добавить этот адрес в безопасные адреса. Я просто нажимаю на кнопку «Дополнительные». См скрин ниже:

Веб-интерфейс при подключении в первый раз.
Веб-интерфейс при подключении в первый раз.

Кнопка поменяет название на «Скрыть подробности», а снизу добавится текстовый блок, где будет ссылка, на которую и следует кликнуть. Красным на скрине ниже:

Следует кликнуть на небезопасной ссылке
Следует кликнуть на небезопасной ссылке

При следующем входе такого не будет.

Далее откроется веб‑интерфейс Proxmox с приглашением к авторизации и выбору языка. В первую очередь необходимо выбрать язык, если вас не устраивает английский, так как при выборе языка все введенные данные очищаются. Я выбираю русский язык и регистрируюсь под именем пользователя «root»:

Авторизация пользователя с выбранным русским языком интерфейса
Авторизация пользователя с выбранным русским языком интерфейса

Откроется веб страница функционала Proxmox, доступного пользователю. Там много всего интересного, со временем изучите, выделю то, что нам пригодится сейчас.

При установке по умолчанию создается локальное хранилище, где хранятся диски виртуальных машин, установочные iso‑образы и т. д. Путь хранилища в файловой системе Гипервизора можно увидеть через веб‑интерфейс.

«Центр обработки данных» → «Хранилище» → Колонка «Путь/цель»:

Где гипервизор по умолчанию хранит основные данные.
Где гипервизор по умолчанию хранит основные данные.

При создании виртуальной машины мастер создания виртуальных машин предлагает сразу указать установочный образ операционной системы, с которого и попытается запуститься виртуальная машина. Поэтому лучше заранее озаботиться этими образами, чтобы они были доступны установленному окружению Proxmox.

Копирование установочного iso - образа из интернет с помощью веб-интерфейса.

Посмотреть, какие iso-образы уже есть, а также, используя кнопку "Загрузить по URL-адресу", загрузить новый из интернета можно на страничке локального хранилища. На скрине ниже нажата эта кнопка и в появившемся окне введена ссылка для скачивания полного образа операционной системы «Альт Рабочая станция К» с сайта компании Базальт (ссылка). Ссылка на полный образ, также указано заполненное значение "имя файла":

Грузим установочный образ «Альт Рабочая станция К»
Грузим установочный образ «Альт Рабочая станция К»

Осталось только нажать кнопку «Загрузка». После нажатия начнется загрузка файла. Через некоторое время файл будет загружен, о чем будет сообщение «TASK OK» в последней строке, а файл образа появится в списке ISO‑образов. Окно закрывается крестиком справа вверху, так же как в Windows:

ISO - образ успешно загрузился в локальное хранилище
ISO - образ успешно загрузился в локальное хранилище

Копирование установочного iso — образа с USB‑накопителя без веб‑интерфейса.

Установочный образ «Windows 10 Pro» у меня есть на внешнем диске, подключаемом по USB. Для его помещения в нужное место локального хранилища можно воспользоваться следующей последовательностью действий. То же самое сработает и с обычной флэшкой. Подключаем к USB входу компьютера диск/флэшку. После чего графическая оболочка тут же выведет окно для ввода пароля пользователя root, который вводим и жмём «OK»:

Авторизация суперпользователем при подключении USB-накопителя
Авторизация суперпользователем при подключении USB-накопителя

Следом появится следующее окно, где тоже жмем «OK»:

Открываем подключенный USB-накопитель в файловом менеджере оболочки lxde для того, чтобы узнать, куда он примонтируется.
Открываем подключенный USB-накопитель в файловом менеджере оболочки lxde для того, чтобы узнать, куда он примонтируется.

После чего откроется окно файлового менеджера с содержимым подключенного накопителя, а так же будет сразу видно адрес монтирования устройства в файловую систему Линукс:

Видно адрес монтирования подключенного устройства в файловой системе линукс.
Видно адрес монтирования подключенного устройства в файловой системе линукс.

После чего можно запустить терминал:

Путь для запуска терминала
Путь для запуска терминала

В открывшемся терминале получить права суперпользователя командой «su ‑», затем запустить «Midnight Commander» командой «mc»:

Получаем права суперпользователя и запускаем панельный файловый менеджер "Midnight Commander". Осталось только нажать ENTER.
Получаем права суперпользователя и запускаем панельный файловый менеджер «Midnight Commander». Осталось только нажать ENTER.
Почему обязательно с минусом

Если Вы не опытный пользователь АльтЛинукс, рекомендую сразу привыкать так, а то использование просто «su» без минуса получает права какого-то неполноценного суперпользователя. Подробнее читайте по ссылке.

Если терминал слишком мелок или слишком крупен

Браузер легко масштабируется клавишами «CTRL» и «+» или «CTRL» и «‑» в любом сочетании клавиш («+», «‑» как с цифровой, так и с основной, CTRL как левый так и правый).

Терминал цифровую клавиатуру игнорирует, работает только «+», который расположен рядом с клавишей «=». Или можно воспользоваться меню: «Правка» → «Приблизить».

Со старым BIOS у меня графическая оболочка загружалась в слишком маленьком разрешении. Всё было слишком крупным. После обновления BIOS до последней версии графическая оболочка стала запускаться в максимально возможном разрешении, в данном случае 4К. Стало, наоборот, всё слишком мелким.

С помощью «Midnight Commander» копируем файл в хранилище. Для этого в левой панели выбираем файл из USB‑накопителя, в правой выбираем локальное хранилище «/var/lib/vz», в котором iso — образы хранятся по вложенному пути «/template/iso». т. е. полный путь получается: «/var/lib/vz/template/iso». Копирование вызывается клавишей F5:

Для начала копирования файла осталось нажать ENTER
Для начала копирования файла осталось нажать ENTER

Создаем папку для сетевого доступа

Очень удобным оказалось использование на сервере папки общего доступа для обмена файлами. Конечно, есть встроенные средства гипервизора, позволяющие расшарить папку для виртуальной машины. Но по предыдущему опыту работы ещё с «Connectix Virtual PC » и «VirtualBox», когда такая папка работала нестабильно, решил сразу использовать сетевой доступ.

"Raw", а не "qcow2"

Также выяснилось ещё одно обстоятельство. Почти во всех инструкциях по Proxmox рекомендуется выбирать формат устройства накопления как «Формат образа QEMU (qcow2)». Но решив скопировать как‑то файл этого формата от виртуальной машины с ОС Windows 10 Pro очень удивился его размеру. Он оказался даже немного больше максимально указанного размера диска для виртуальной машины. т. е. файл весил немного более 320 гигабайт, хотя из виртуальной машины размер всего диска = 300 Гб, а внутри занятого места было всего 70 Гигабайт, остальные же 250 Гб как‑бы пустое место. Оказывается, надо удалять какие‑то не используемые нули и операционные системы Windows по‑умолчанию этого делать не умеет, в отличии от Линукс. Если интересуют подробности, поищите в интернете. На данный момент хорошим решением мне кажется такой вариант: использовать для виртуальной машины относительно небольшой диск формата «Несжатый образ диска (raw)», тем более, что он ещё и работает быстрее, и подключать при старте ОС сетевую «расшаренную» папку сервера для больших файлов. Например, я туда установил HD клиента игры WorldOfTanks и она нормально оттуда работает в АльЛинуксе из под PortProtona. Получилось 70 Гигабайт:

Следует иметь ввиду, что из‑за использования такого формата диска снапшоты виртуальной машины делать не получиться. Но я их и не использую. Тоже сказывается опыт с VirtualBox. Удобнее оказалось держать эталонную виртуальную машину, в которой установлена только одна «голая» операционная система. А потом копированием создавать новые виртуальные машины и экспериментировать.

Для доступа к сетевой папке сервера с компьютеров и виртуальных машин с установленной операционной системой из семейства Линукс на сервер требуется установить программное обеспечение «NFS сервер», для машин с ОС Виндовс необходим сервер «Samba». У меня такая папка называется «NET» и одна эта папка «расшаривается» по сети обоими сервисами и NFS и Samba. Подробнее см. серверную часть в мини‑инструкции по ссылке: Alt Linux Сервер Виртуализации. Как создать общую папку для виртуальных машин Линукс и Виндовс.

Также, практически во всех инструкциях по пробросу видео в виртуальные машины рекомендуется сразу не пробрасывать оборудование. Сначала сделать виртуальную машину с видеокартой по умолчанию, затем установить на неё операционную систему. После этого пробросить видеокарту, причем, пока не отключая видео по‑умолчанию. Затем установить драйвера на проброшенную видеокарту. Только после установки ОС и всех драйверов отключать типовое видео от гипервизора, выставлять «Основной графический процессор» на пробрасываемом оборудовании и запускать виртуальную машину. Таким способом, действительно, удобнее и быстрее всё устанавливать, но при одном существенно условии: если вы действительно уверены в способности вашего оборудования проброситься в виртуальную машину. А так очень обидно, провозившись с установкой ОС и драйверами в конце любоваться черным экраном монитора. Поэтому предлагаю сразу сделать проброс и уже в виртуальной машине с проброшенным оборудованием устанавливать операционную систему и драйвера.

Создание виртуальной машины с ОС "Альт Рабочая Станция К 10".

В веб-интерфейсе гипервизора нажимаем кнопку «Создать ВМ». В появившемся окне указываем идентификатор виртуальной машины (VM ID), так будет называться файл настроек виртуальной машины. Заполняем «Имя» — оно будет отображено в списке в скобках после ID и нажимаем далее. У меня заполнено как «100» и «AltKDE‑dGPU‑NVIDIA»:

Мастер создания виртуальных машин. Указываем ID и имя ВМ.
Мастер создания виртуальных машин. Указываем ID и имя ВМ.

Далее нужно выбрать вид гостевой операционной системы и указать загрузочный ISO - образ. В данном случае, гостевой ОС оставлено значение по умолчанию, а образом указан скачанный ISO-файл установки дистрибутива «Альт Рабочая станция К»:

Мастер создания виртуальных машин. Указываем операционную систему и загрузочный ISO.
Мастер создания виртуальных машин. Указываем операционную систему и загрузочный ISO.

В следующей вкладке «Система» выбираем для видеокарты значение «Нет»; Машина выставляем «q35»; BIOS указываем «OVMF (UEFI)»; Для Хранилище EFI указываем «local». Остальное оставляем по умолчанию и жмем «Далее»:

Во вкладке «Диски»: указываем размер «100» Гб; меняем формат на «Несжатый образ диска (raw)»; если у вас диск SSD, то рекомендуется включить флажок «Эмуляция SSD». По умолчанию его не видно, поэтому, для его отображения необходимо выставить флажок «Дополнительно», расположенный внизу, слева от кнопок:

Мастер создания виртуальных машин. Настраиваем диск.
Мастер создания виртуальных машин. Настраиваем диск.

В следующей вкладке «Процессор» выделяем 4 ядра и, в данном случае, рекомендуется выставить флажок «Включить NUMA». Остальное оставляем по умолчанию:

Мастер создания виртуальных машин. Настройки процессора.
Мастер создания виртуальных машин. Настройки процессора.
Почему именно 4 ядра

Оказывается, для работы видеокарты требуются существенные мощности процессора. В моей конфигурации менее 4-х ядер для этой видеокарты недостаточно. Первоначально я выделил 1–2 ядра и попробовал протестировать графику в виртуальной машине при первых удачных пробросах видео. Для этого использовал игру WorldOfTanks. FPS игры в виртуалке с 2 ядрами было, прямо скажем, довольно удручающим. Потом выставил 10 и получилось совсем другое дело. Таким образом постепенно уменьшая количество ядер, экспериментально установлен минимум в четыре ядра. На других конфигурациях, естественно, количество ядер процессора для работы видеокарты может быть другим. Точное количество ядер можно будет установить опытным путем. Причем следует иметь ввиду, что ядра центрального процессора не будут загружены под 100% в любом случае. т. е., к примеру, выделено 2 ядра — диспетчер показывает, что они загружены на 30%, а FPS — жалок.

Про NUMA

Из того, что усвоил про этот флажок на просторах интернета: для гостевых машин Линукс рекомендуется включать, так как оно работает надежно, а для Виндовс не включать, так как работает не надежно и может привести к краху виртуальных машин, а то и всего гипервизора. Пока такой алгоритм не подводил.

В следующей вкладке «Память» выделяем для виртуальной машины оперативную память в мегабайтах. В данном случае выделено 32 тысячи. С флажком «Раздувание памяти» так же как и для «NUMA»: для гостей Линукс включаем; для гостей Виндовс — выключаем:

Мастер создания виртуальных машин. Настройки памяти.
Мастер создания виртуальных машин. Настройки памяти.

В следующей вкладке «Сеть» всё оставляем по умолчанию и просто жмём кнопку «Далее»:

Мастер создания виртуальных машин. Сеть.
Мастер создания виртуальных машин. Сеть.

Мастер создания виртуальных машин.В следующей вкладке «Подтверждение» просто жмем кнопку «Готово»:

Мастер создания виртуальных машин. Последняя вкладка.
Мастер создания виртуальных машин. Последняя вкладка.

Теперь добавим пробрасываемые в виртуальную машину устройства. Для этого в списке слева выбираем созданную ВМ, щелкаем «Оборудование», затем кнопку «Добавить» и в раскрываемом списке выбираем «Устройство PCI»:

Приступаем к пробрасыванию устройств.
Приступаем к пробрасыванию устройств.

В появившемся окне необходимо выбрать из раскрываемого списка устройство:

В данном случае выбираем видеокарту RTX 4070 Ti:

Выбор видеокарты
Выбор видеокарты

После выбора выставляем флажки «Основной графический процессор» и «PCI‑Express», остальные реквизиты оставляем по умолчанию и жмем кнопку «Добавить»:

Флажки "Основной графический процессор" и "PCI-Express"
Флажки «Основной графический процессор» и «PCI‑Express»

Следом добавляем устройство звука видеокарты. Оно в той же группе IOMMU (в данном случае устройства 0000:01:00.x, группа IOMMU = 12), поэтому его тоже следует пробросить. Здесь уже никаких флажков выставлять не нужно, т.е. все реквизиты оставляем по умолчанию:

Звуковое устройство видеокарты. Оно в той же группе IOMMU (12: 01:00:xx), что и видеокарта.
Звуковое устройство видеокарты. Оно в той же группе IOMMU (12: 01:00:xx), что и видеокарта.
Для звука всё оставляем по умолчанию. Просто жмём кнопку "Добавить"
Для звука всё оставляем по умолчанию. Просто жмём кнопку «Добавить»
Про группы IOMMU

Во всех инструкциях указано, что в виртуальную машину необходимо пробрасывать все, без исключения, устройства одной группы IOMMU. И для видеокарт это всегда сама видеокарта и её звук. Но я лично не перепроверял, т.е. не пробовал пробрасывать только видео, а звук не пробрасывать: в данном аспекте положившись на инструкции.

Также следует отметить, что все устройства группы IOMMU пробрасываются, если в любом устройстве включить флажок «Все функции». Тогда каждое не придется выбирать по отдельности. Но тогда и в списке оборудования будет одна строка. Мне кажется удобнее, когда строки две. Поэтому делаю так.

Следом следует в виртуальную машину пробросить клавиатуру и мышь. Я для виртуальных машин использую беспроводной комплект, где у клавиатуры и мыши один USB адаптер. Поэтому: «Оборудование» → «Добавить» → «USB‑устройство»:

USB
USB

Здесь задействован пункт «Использовать USB‑порт», а не «Использовать USB‑устройство по номеру» только из‑за того, что в списке оборудования USB устройства будут отображены в виде порта устройства, а не буквенно‑цифровой номер устройства. Ранее пробовал оба варианта: оба работают прекрасно, никаких проблем никогда не возникало, остановился на таком варианте:

Проброс USB-адаптера комплекта беспроводных клавиатуры+мышь
Проброс USB-адаптера комплекта беспроводных клавиатуры+мышь

Использую беспроводные Bluetooth наушники, поэтому для них пробрасываю и блютус свисток. На скрине выше — это следующее устройство с портом 1–3.

Так выглядит скрин списка оборудования:

Общий список оборудования виртуальной машины.
Общий список оборудования виртуальной машины.

Файлы настроек хранятся в папке:

/etc/pve/qemu-server/
Содержимое файла "100.conf", в котором гипервизор хранит настройки только что созданной виртуальной машины:
bios: ovmf
boot: order=scsi0;sata2;net0
cores: 4
efidisk0: local:100/vm-100-disk-0.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K
hostpci0: 0000:01:00.0,pcie=1,x-vga=1
hostpci1: 0000:01:00.1
machine: q35
memory: 32000
meta: creation-qemu=7.2.0,ctime=1721016361
name: AltKDE-dGPU-NVIDIA
net0: virtio=82:9A:B1:8D:E1:84,bridge=vmbr0,firewall=1
numa: 1
ostype: l26
sata2: local:iso/alt-kworkstation-10.2.1-install-x86_64.iso,media=cdrom,size=7202536K
scsi0: local:100/vm-100-disk-1.raw,iothread=1,size=100G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=6cdb7bbc-f486-4842-a737-73575f8fbcc1
sockets: 1
usb0: host=1-11
usb1: host=1-3
vga: none
vmgenid: 96d751a9-dc97-40df-be5b-bc0151525018

Виртуальная машина готова, можно запускать кнопкой «Запуск» из веб интерфейса.

Создание виртуальной машины с ОС «Windows 10 Pro».

Для Widows 10 требуется комплект драйверов VirtIO. Последнюю стабильную версию можно скачать по ссылке: Скачать последнюю стабильную версию. Ссылка на документацию от Proxmox: Драйверы Windows VirtIO. Копируем ссылку на ISO и скачиваем в хранилище гипервизора также как и дистрибутив «Альт Рабочая станция К».

По настройкам виртуальной машины всё почти то же самое. Ниже ряд скриншотов, на которых выделено важное, где требуется изменить значение по умолчанию или обратить внимание:

Вкладка "Общее"
Вкладка «Общее»
Вкладка «Общее»
Вкладка «ОС»
Вкладка «ОС»
Вкладка «Система»

В отличии от Линукс, установщик Виндовс скорее всего, не увидит «Шина/устройство» = «SCSI virtio», потому мастер сразу подставит «IDE». Потом, после установки Виндовс и драйверов VirtIO на неё вроде бы можно и поменять, я сразу ставлю «SATA», остальное, как и для Линукс машины:

Вкладка "Диски"
Вкладка «Диски»

Не включайте NUMA для Виндовс:

Вкладка "Процессор"
Вкладка «Процессор»

Отключите «Раздувание памяти» для Виндовс?

Вкладка "Память"
Вкладка «Память»

Установите сразу такую модель сетевого адаптера. После установки ОС пока не установите драйвера VirtIO сети не будет, зато оно, как пишут, очень быстро работает, если обмен происходит между виртуальными машинами одного хоста или между виртуальной машиной и гипервизором, т. е. если нет нужды использовать реальную сеть. В инструкциях обычно рекомендуют оставлять по умолчанию, чтобы сразу после установки Виндовс была сеть, а потом изменять модель. Я обычно забываю, потому выставляю сразу.

Вкладка "Сеть"
Вкладка "Сеть"

Точно так же, как и для Линукс пробрасывается видеокарта со своим звуком и USB устройства.

Про важность флажка "PCI-Express" для Виндовс

Следует отметить, что я сразу упустил про этот флажок при создании обоих виртуальных машин во время написания статьи. Поэтому в Виндовс столкнулся с тем, что после установки драйверов второй монитор так и не опознался, а в диспетчере устройств на видеоадаптере написано про отключение устройства из‑за ошибки «43». После того, как установил флажок «PCI‑Express» всё стало в порядке. Альт Линукс же, по ощущениям, про данный флажок вовсе не в курсе, так как разницы незаметно, что при выключенном, что при включенном флажке.

Содержимое файла настроек этой виртульной машины "101.conf"
balloon: 0
bios: ovmf
boot: order=sata0;sata2;net0
cores: 4
efidisk0: local:101/vm-101-disk-0.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K
hostpci0: 0000:01:00.0,pcie=1,x-vga=1
hostpci1: 0000:01:00.1
machine: pc-q35-7.2
memory: 32000
meta: creation-qemu=7.2.0,ctime=1721017380
name: Win10Pro-dGPU-NVIDIA
net0: virtio=DA:E4:60:45:D3:1A,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
sata0: local:101/vm-101-disk-1.raw,size=100G,ssd=1
sata2: local:iso/Win10-old.iso,media=cdrom,size=4326976K
scsihw: virtio-scsi-single
smbios1: uuid=82279b1b-6398-4976-842e-595fb67da09b
sockets: 1
usb0: host=1-11
usb1: host=1-3
vga: none
vmgenid: 80c547a9-ea7d-484d-ae8e-2dcb29ca819a

Виртуальная машина готова, можно запускать, подключать мониторы и приступать к установке операционной системы.

Подключаете монитор к проброшенной видеокарте и через несколько томительных секунд ожидания после запуска на мониторе должна появиться заставка Альт Линукса. Примерно такая:

Фото заставки старта виртуальной машины с монитором, подключенным к проброшенной видеокарте.
Фото заставки старта виртуальной машины с монитором, подключенным к проброшенной видеокарте.

У меня это может быть секунд 10–15. На просторах интернета некоторые экспериментаторы пишут даже о двух минутах ожидания. Если черный экран так и остался черным, значит, вам не повезло. Придется изучать тему более углубленно.

После установки операционной системы на виртуальную машину

Описание установок Линукс и Виндовс в виртуальные машины находится за рамками этой статьи. Всё делается в точности так, словно установка происходит на реальном железе.

В настоящее время дистрибутив «Альт Рабочая станция К» сам всё установит, сразу все драйвера встанут, что очень приятно.

Как было плохо совсем недавно и как удобно стало сегодня.

Когда 1,5 года назад, только приобрел компьютер на новом AM5-ом сокете много чего не работало. Ни блютус свисток, ни мониторы в нужном разрешении. После того, как помучившись с настройками xrandr — ом удалось выставить разрешение: начались глюки и тормоза. Оказалось, что глюки и тормоза исчезают, если оставлять только один монитор. т. е. или два монитора в непонятном разрешении или один монитор в родном, нормальном разрешении, а иначе пользоваться компьютером невозможно.

Для Windows же, после установки операционной системы, первым делом следует установить драйвера VirtIO. Можно даже не выключая виртуальную машину поменять ISO образ, вместо установочного файла Windows указать скачанный ISO с VirtIO. И он тут же отобразиться в проводнике виртуальной машины:

Выбираем диск с драйверами VirtIO
Выбираем диск с драйверами VirtIO

В проводнике Windows находим файл «Virtio‑win‑guest‑tools.exe» и запускаем его. Он всё установит:

Затем нужно скачать драйвера NVIDIA и установить их. Причем, во всех инструкциях рекомендуют ставить только драйвер, не устанавливая дополнительное программное обеспечение типа приложения NVIDIA Express. Здесь я тоже не экспериментировал, положившись на чужой опыт.

После того, как всё у вас заработает, можно выставить настройку для автоматического запуска виртуальной машины. За это отвечает флажок «Запуск при загрузке» во вкладке «Параметры» конкретной виртуальной машины:

Включение автоматического запуска виртуальной машины после включения компьютера
Включение автоматического запуска виртуальной машины после включения компьютера

Следует иметь ввиду, что в один момент времени может работать только одна виртуальная машина, в которую осуществлен проброс реального оборудования. Те же виртуальные машины, в которые нет проброса оборудования, могут работать одновременно, лишь бы хватило ресурсов хоста.

Также рекомендуется включать флажок «QEMU Guest Agent» там же, чуть ниже. Файл «Virtio‑win‑guest‑tools.exe» установит агента на машину с Windows. На «Альт Рабочая станция К» он устанавливается автоматически.

Некоторые заметки:

Удалить виртуальную машину можно кнопкой в интерфейсе справа, через подменю «Дополнительно»:

Здесь можно удалить виртуальную машину
Здесь можно удалить виртуальную машину

Радикальное средство освобождения видео адаптера для виртуальной машины, если он захвачен гипервизором.

Ещё раз про мониторы. У меня два монитора. Один подключен только к дискретной видеокарте кабелем DisplayPort, он должен быть выключен при включении компьютера. Второй монитор подключен кабелем DisplayPort к дискретной видеокарте и, также, подключен вторым кабелем HDMI к интегрированной видеокарте. При включении компьютера на мониторе должен быть настроен вывод с HDMI. Чтобы гипервизор при включении компьютера стал выдавать видеопоток именно через интегрированную в процессор видеокарту. Если видео пошло через другой видеоадаптер, тот, который планируется пробросить в виртуальную машину: ничего не получиться. Причем ошибок при старте виртуальной машины не будет, но и вывода на монитор не будет. И никакие настройки из тех, что я пробовал, не помогают. Имею ввиду про: /etc/default/grub, /etc/modprobe.d/blacklist.conf, /etc/modprobe.d/vfio.conf, найденные в многочисленных инструкциях на просторах интернета. Но, если очень-очень надо, может помочь одно радикальное средство, а именно - удаление устройств, затем сканирование имеющегося оборудования. В данном случае, на мониторе вовсе ничего не будет, потому следует тут же запускать и виртуальную машину. Т.е. можно создать скрипт, поместить его в папку суперпользователя и из под root-а запускать. Содержимое скрипта для моего оборудования:

#!/bin/bash
echo "1" > /sys/bus/pci/devices/0000:01:00.1/remove
echo "1" > /sys/bus/pci/devices/0000:01:00.0/remove

sleep 1
echo "1" > /sys/bus/pci/rescan

sleep 5
qm start 100

Последняя строчка здесь запускает виртуальную машину с ид = 100.

Про копировать - вставить в Линукс.

В терминале не срабатывают комбинации клавиш «Ctrl+C», «CTRL+V». Но в браузере они отлично работают. Зато и там и там срабатывают комбинации «CTRL+Insert» и «SHIFT+Insert». Так и повелось. Левой рукой «CTRL+C» в браузере, затем в терминале: CTRL+V, которое ни какого эффекта не дает, чертыхнувшись про себя, жмём правый «SHIFT+Insert».

Про команду «update‑initramfs»

АльтЛинукс не умеет в команду «update‑initramfs», вместо неё можно использовать:

make-initrd --kernel=`uname -r`

Посмотреть текущую версию ядра:

uname -r

Про проблемы

Очень я подозреваю, что во всем виновато обновление БИОС, но не факт. Вроде бы до обновления не замечал таких проблем.

Периодически бывает, что из гипервизора пропадают устройства PCI, как раз те, что пробрасываются. Соответственно, виртуальная машина не стартует, ругаясь на отсутствие устройств. Помогает перезагрузка хоста. Как правило, такое возникает после всяких экспериментов, приводящих к краху виртуальных машин, а то и к перезагрузке хоста, но не каждый раз. т. е. после аварийной перезагрузки и неудачной попытки запуска виртуальной машины иногда требуется повторная перезагрузка компьютера. Обычно раз в неделю на выходных. Когда же просто работаю, то такого и не бывает.

Также иногда обнаруживаю, что вместо 1Гигабита скорость интернета упала до 100 Мегабит. Тоже отправляю хост в перезагрузку и, пока он грузится, переподключаю патчкорд и у розетки и у компа. Такое обнаруживается примерно раз в месяц.

Комментарии (15)


  1. Letar
    15.07.2024 22:26
    +4

    В чем смысл использовать не оригинальный проксмокс, на который налепили шильдик что это разработка альт линукс? они по лицензии даже не имеют право это делать, а уж тем более продавать чужой продукт за деньги.


    1. omaxx
      15.07.2024 22:26
      +1

      Наоборот. GNU не запрещает лепить свой шильдик, а вот распространять свой продукт под исходным названием нельзя.


    1. Onwardv Автор
      15.07.2024 22:26

      Тут следует иметь ввиду, что окружение проксмокс являются только одной из составных частей сервера виртуализации от Альта. Изначально остановил свой выбор на оригинальном проксмоксе, даже устанавливал. Потом, чисто случайно, увидел, что АльтЛинукс тоже в него умеет. А так как я многолетний поклонник (скорее, довольно лениво следящий за развитием) этого дистрибутива, то решил попробовать использовать его. И сразу ему +: т.к. спокойно встал на диске рядом с Виндовс, в отличии от оригинального проксмокса, требующего себе весь диск. Вот, смотрите скрин из документации:

      Proxmox является частью сервера виртуализации от Альт
      Proxmox является частью сервера виртуализации от Альт


      1. ugenk
        15.07.2024 22:26

        Никто не запрещает поставить debian, добавить репозиторий proxmox и получить тот же эффект


  1. LuchS-lynx
    15.07.2024 22:26

    Альтовский Proxmox не ставил, пользуюсь оригинальным, но, судя по статье, есть неточности и ряд нюансов не раскрыт, возможно в т.ч. потому что Альт не Debian, возможно дело в чем-то еще. Более подробно распишу завтра с ПК. В феврале этого года менял железо тоже на АМД АМ5 сокет и написал тогда же статью, в которой скомпоновал весь свой опыт по настройке GPU Passthrogh на Proxmox

    https://habr.com/ru/articles/794568/


    1. Onwardv Автор
      15.07.2024 22:26

      Очень интересно будет почитать. Ваши публикации довольно насыщены технически. Буду очень признателен, особенно, если затронете тему проброса интегрированного видео. У меня этот момент никак не "взлетает". Даже звонил в БазаАльт, в готовности оплатить, если научат. Но меня грубо послали, вежливо отказали, мол, с физическими лицами не работаем.

      З.Ы. К сожалению, плюсануть не могу, так как карму мне снизили за публикацию о расшаривании папки из линукс.


      1. LuchS-lynx
        15.07.2024 22:26
        +1

        вчера опечатался, не GPU Passthrogh, а GPU Passthrough. Так будет правильно. Теперь по статье, что бросилось в глаза:

        1. Не понятно зачем копировать скаченные файлы с образами операционных систем через MC со всеми этими правами доступа и прочими заморочками, когда, если это выполнять локально, все без проблем и проще залетает через веб-интерфейс? Правда если такие образы гонять по сети, а не с хоста/гостя, то получается медленно, как, к слову, и закачка через онлайн по ссылке, т.к., внезапно, я еще не знаю браузеров у которых менеджер закачек поддерживает многопоточную закачку обычных файлов онлайн. Ныне почти забытая фича.

        Иллюстрация, в данном примере скриншот из-под гостя

        Иллюстрация

        2. "Raw", а не "qcow2"

        http://onreader.mdl.ru/masteringproxmox.2ed/content/Ch04.html

        Обычно Raw из коробки идет в связке с LVM, снапшоты на нем делать можно, если стоит lvm-thin. Далее есть еще целая подводная история в Линуксе и его гостях с trim'ом, если Вы используете SSD https://habr.com/ru/articles/497004/ что напрямую может вылится в проблему, если не озаботится этим заранее, а заранее означает просчитать как именно будут выделены области под данные системных и логических дисков виртуалок, а так же на каких файловых системах это будет хранится. В некоторых случаях, как с тем же LVM + ext4 на хосте, может потребоваться доработка напильником.

        3. Не понятно зачем, при создании ВМ, использовать ЦП по умолчанию, вместо того что бы прокинуть потоки ЦП как host, если данный сервер будет использоваться Вами и только Вами? Если речь о переносе ВМ с хоста на хост, то могу сказать что у Win10/11 проблем с этим нет, я тупо развернул из бэкапов на новом железе (AM5 сокет после сокета 1151 v2) и все завелось без проблем. Возможно с более старыми ОС или Linux будет не так, но если Вам нужна максимальная отдача от ядер ЦП, то, ИМХО, ставить ядра как host

        4. ""Раздувание памяти" для Виндовс? " кривой перевод термина balooning, ИМХО, формально правильно, но стоило это как-то иначе обыграть что-ли. В госте с Виндой начинает грузить ЦП, в гостях на Линуксе работает без проблем. Смысл в динамическом или статическом выделении памяти гостю. С включенной опцией память выделяется динамически, таким образом, на нагруженной системе, позволяет экономить память, в случае если гость не загружает память ОС полностью, для других гостей.

        5. Не расписана конфигурация системы под проброс ВК, мне не удалось отловить закономерность, возможно вопрос в скрипте на видном месте, или в том что сам Прокс это делает для некоторого железа под капотом, некоторые настраивают Прокс как Вы и у них пробрасывается ВК в ВМ сразу, а другим приходится еще прописывать конфиги и отключать загрузку драйверов на дискретную видеокарту на хосте, что бы завелось. Полный путь шаблона настроек прописан в моей статье. Так же основные требования что бы проброс с ВК завелся:

        • ЦП и материнская плата должны поддерживать VT-x, VT-d для Intel или AMD-ViIOMMU для AMD, а так же эти технологии необходимо активировать в BIOS до начала настройки. При этом не гарантируется, что все будет работать из коробки, из-за, возможно, плохой аппаратной реализации и отсутствия или низкого качества драйверов.

        • Оборудование должно быть свободно распределено по группам, т.к. если в одной группе находятся несколько устройств, то после проброса одного устройства из группы в ВМ все остальные устройства хост "теряет" и не может к ним обращаться до следующей перезагрузки хоста и запуска ВМ с такими настройками. Если оборудованию раскиданы по группам кучно, то можно порекомендовать перешить Биос матери на более свежий или старший. В некоторых случаях это помогает.

        • для АМД опция iommu включается в Линуксе из коробки,а для Интелов надо прописывать вручную через правку grub файла или что там вместо него у вас на ceph.


        1. Onwardv Автор
          15.07.2024 22:26

          Спасибо за развернутый комментарий. Постарался сделать не подробную по всем аспектам проброса статью, которая, в большей части, повторит официальную документацию Proxmox. А конкретный порядок действий, по которому можно чётко действовать. Чтобы помогло и пригодилось именно мне тогдашнему, чтобы поменьше было не нужных действий, а их, этих лишних манипуляций, было очень много по найденным на просторах интернета инструкциям.

          1) Приведен пример, как можно файл с флэшки скопировать в нужное место, если образ у пользователя уже есть и его не нужно искать в интернете. Для неопытных пользователей Линукс, давно и плотно работающих в Виндовс, вроде меня, даже такая манипуляция вызывает трудности.

          3) Про процессор. Этот момент в статье мной упущен. Поначалу выставлял именно "host", сейчас оставляю значение по умолчанию - т.к. разницы пока не заметил.

          5) Этот пункт больше подходит для первой статьи про установку: АльтЛинукс Сервер виртуализации10.1 (Proxmox) / Хабр (habr.com) , там у меня совсем кратенько "...Также необходимо убедиться, что ваше оборудование поддерживает функционал виртуализации и он включен в БИОС..." Насколько помню, в БИОС у меня всё было включено. В моём случае получались лишние манипуляции по поиску в БИОС выписанных на бумажке пунктов. Причем, на свою голову, клюнув на одну инструкцию, обновил таки БИОС, после чего пункты меню переехали с уже привычных мест и поменялись.

          По остальным пунктам вашего комментария даже комментировать нечего. Всё так. Но для усваивания ваших статей нужно уже нехило "прокачаться" в теме. Очень много нужно уже знать и понимать.


          1. Onwardv Автор
            15.07.2024 22:26

            Еще раз про "5. Не расписана конфигурация системы под проброс ВК ..." - никаких манипуляций с файлами конфигураций в "Альт Сервер виртуализации" делать не нужно, по крайней мере, в моём случае. Всё работает из коробки. Причём выяснилось это случайным образом: при очередной переустановке гипервизора я позабыл про них, сделал виртуалку с пробросом и запустил. И тут же вспомнил, блин, думаю, надо же конфиг файлы поправить и пересобрать ядро, а виртуалка, взяла, да поднялась.


            1. LuchS-lynx
              15.07.2024 22:26

              Еще раз про "5. Не расписана конфигурация системы под проброс ВК ..." - никаких манипуляций с файлами конфигураций в "Альт Сервер виртуализации" делать не нужно, по крайней мере, в моём случае. Всё работает из коробки.

              Как я писал выше, у кого-то заводится без проблем сразу, без лишних телодвижений, кому-то приходится лезть в консоль, как мне например. В чем причина такого поведения - ХЗ, подозреваю что в железе и его поддержке ОС. Я на это указал в своей статье.


          1. LuchS-lynx
            15.07.2024 22:26

            1) Приведен пример, как можно файл с флэшки скопировать в нужное место, если образ у пользователя уже есть и его не нужно искать в интернете.

            делается все точно так же, монтируется флешка на хосте средствами ОС и затем через веб-интерфейс в браузере заливается образ. Конечно можно и через MC, но, на мой взгляд, юзабилити страдает.

            3) Про процессор. Этот момент в статье мной упущен. Поначалу выставлял именно "host", сейчас оставляю значение по умолчанию - т.к. разницы пока не заметил.

            Некоторые оффлайн игры "палят" виртуализацию и занижают fps, тот же Киберпанк 2077. Соответственно если у Вас нет такого, то можно не учитывать данный момент.

            5) Этот пункт больше подходит для первой статьи про установку: АльтЛинукс Сервер виртуализации10.1 (Proxmox) / Хабр (habr.com) , там у меня совсем кратенько "

            На мой взгляд, даже если Вы где-то что-то писали, все нюансы касаемо описываемой темы не плохо бы и повторить под спойлерами или, хотя бы, со ссылками на другую(ие) статью(и) с привязкой к абзацу где прочесть. Я регулярно в своих статьях повторяю, иногда перефразировав, те или иные блоки текста, что бы уходила неопределенность и недосказанность, что бы человек мог тупо взять и повторить с нуля, т.к. помню что лично мне разобраться мне в этом с нуля стоило месяц + потеря денег на перепродаже новых материнских плат через барахолку, которые не поддерживали такую фичу в 2019м году. Резюмируя - цените время и деньги Ваших последователей ;)


      1. LuchS-lynx
        15.07.2024 22:26

        Буду очень признателен, особенно, если затронете тему проброса интегрированного видео.

        С интеграшкой есть 2 темы, которые настраиваются раздельно: деление ресурсов на несколько гостей (без снятия картинки видеокабелем из виртуалки, а только получения части мощности графического ускорителя, обычно не более 2х на хост, для работы в 3D приложениях/играх, но с доступом к гостю только через RDP/VNC/и т.д. и т.п.), либо полноценный проброс с потерей для хоста, по типу GPU Passthrough. В каждом случае зависит от архитектуры ЦП и, соответственно, интегрированной ВК, а так же матери.

        гуглить iGPU Passthrough. В поиске выдается и тот и другой случай. Тут только пробовать.

        например: https://3os.org/infrastructure/proxmox/gpu-passthrough/igpu-passthrough-to-vm/#windows-virtual-machine-igpu-passthrough-configuration


  1. LeToan
    15.07.2024 22:26

    Что делает галочка "PCI-express" при пробросе? Нужно ли её ставить, если пробрасывать не видеокарту, а, например, контроллер SATA, установленный в PCIe?


    1. Onwardv Автор
      15.07.2024 22:26
      +1

      А тут не подскажу, надо пробовать. Где-то рекомендуют сразу включать, где-то включать, только если есть проблемы. В документации Proxmox пишут, что некоторым требуется указать, некоторым - нет. Причем данный флажок есть только для машин тип "q35". см скрин:

      Настройка в конфигурационном файле, которая галочка "PCI-express" в веб-интерфейсе
      Настройка в конфигурационном файле, которая галочка "PCI-express" в веб-интерфейсе

      Ссылка на документацию: PCI(e) Passthrough - Proxmox VE


    1. LuchS-lynx
      15.07.2024 22:26

      Тут у многих возникает непонимание, пробрасывается в ВМ именно порт с подключенным в него оборудованием, а не само оборудование. Соответственно этот параметр относится к настройкам порта. Т.е. пробрасывать как PCI/PCI-e порт.