Главная » 2022 » Апрель » 15 » [LINUX] Linux в Hyper-V на весь экран
16:50
[LINUX] Linux в Hyper-V на весь экран

Смысл сабжа. При создании произвольной виртуальной машины из-за невнятности подставляемого системе видеодрайвера разрешение экрана в машине будет максимум 1024х768, и намного чаще - 800х600. Исправление этой проблемы в некоторых экзотических системах требует экзотических же решений. 

Сразу предупреждаю - шпаргалка так себе. Перелопатив тонны ненужной/бесполезной информации, универсального метода под разные линукс-системы подобрать не удалось. Да и то что есть - подойдет на дебиан-форки, для RHEL пока не подгонял.

Emotional mode on. Лирическое отступление.

ЧСХ, технеты М$ дают массу полезных ссылок, не несущих совершенно никакой смысловой нагрузки. Интегрировали Убунту в быстрое развертывание, остальное - не их проблемы. Самые умственно развитые снисходительно пишут, что надо научиться уже пользоваться RDP и не ебать мозг господам окодемикам. Во-первых, некоторые, особенно облегченные оси имеют серьезные проблемы с реализацией xrdp, и полнофункциональным его никак назвать нельзя. И даже на рдп разрешение не будет превышать 1600х1200 НИКОГДА! Во-вторых - я, блять, создаю машину в изолированной песочнице нихуя не для того, чтобы каким-либо способом выпускать ее наружу. На этом месте меня выгнали.

Emotional mode off. Ближе к теме.

Основной смысл происходящего: 

1. Установить (возможно/частично) необходимые сервисы интеграции Linux. Проблема в том, что пакеты эти уже несколько раз поменяли как название, так и контент, и в репозиториях разных систем могут как называться по-разному, так и отсутствовать вовсе. Проявляем смекалку.

2. Добавить параметр ядра, который поменяет настройки графики. Здесь риск только один. При неправильном выборе значения, опечатке, неверном восприятии тождественности этого мира итд, можно совсем потерять картинку с ВМ. Так что - будем внимательны и осторожны, и смену разрешений проверяем сперва на невысоких проверенных разрешениях, дабы убедиться, что они работают.

Примечание. Даже если не удалось установить ни одного из указанных доппакетов - все равно пробуйте прописать настройки графики. В большинстве систем нужное окружение уже установлено, и подхватывается сразу. Главное - не забывать про обновление grub.

Предварительные ласки на полстраницы. Хотел в три строки написать.

Пакет интеграции ОС Linux c средой виртуализации. В теории, этот пакет завязан немного на другой тематике, и в некоторых ОС работает без него. Но в некоторых - не работает.

# apt-get install hyperv-daemons
# reboot

Проверим состояние служб после перезагрузки (опционально):

# systemctl status *hv-*

Теперь - установить и активировать, внезапно - сервисы интеграции Linux. На кой черт все так напутано - не знаю, к тому же, в некоторых репах linux-tools может быть, например linux-tools-3.11.0-15-generic . Второй пакет также есть не везде, но он не везде и нужен. Поэтому просто пишу полностью:

sudo apt-get install linux-tools
sudo apt-get install hv-kvp-daemon-init

Теперь необходимо отредактировать конфигурационный файл grub.
Откроем конфигурационный файл grub с помощью gedit, nano, vi, vim и тд (кому что удобно).

sudo nano /etc/default/grub

Находим строку начинающуюся с GRUB_CMDLINE_LINUX_DEFAULT и добавляем параметр video=hyperv_fb:[Необходимый размер экрана]
Я назначаю размер экрана 1920x1080. Таким образом строка должна выглядеть следующим образом:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"

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

sudo update-grub

И перезагружаем операционную систему

sudo reboot

[UPD] Еще кое-что. Необходимо убедиться, что не задействован трехмерный видеоадаптер RemoteFX. Это в свойствах самой ВМ. Машину обязательно выключить.

Это все в идеальном мире. На практике, в строке GRUB_CMDLINE_LINUX_DEFAULT как правило уже есть запись вида vga=0x314 - это и есть то разрешение экрана, с которым мы боремся. Если будете вписывать video=hyperv_fb:1920x1080 - тогда vga=0x314 надо убрать. Ну или поиграться со значением 0x314 согласно нижепреведенной таблице:

  320×200 640×400 640×480 800×500 800×600 896×672 1024×640 1024×768 1152×720 1280×1,024 1400×1,050 1440×900 1600×1,200 1920×1200
16 colors         770 0302h     772 0304h   774 0306h        
256 colors   768 0300h 769 0301h 879 036Fh 771 0303h 815 032Fh 874 036Ah 773 0305h 869 775 0307h 835 864 796 893
15-bit (5:5:5) 781 030Dh 801 0321h 784 0310h 880 0370h 787 0313h 816 0330h 875 036Bh 790 0316h 870 793 0319h   865 797  
16-bit (5:6:5) 782 030Eh 802 0322h 785 0311h 881 0371h 788 0314h 817 0331h 876 036Ch 791 0317h 871 794 031Ah 837 866 798  
24-bit (8:8:8) 783 030Fh 803 0323h 786 0312h 882 0372h 789 0315h 818 0332h 877 036Dh 792 0318h 872 795 031Bh 838 867 799  
32-bit (8:8:8)1   804 809 883 814 819 878 824 873 829   868 834  

Examples:

vga=864 [ 352 (0160h)] also appears to select 1280×800 (8-bit) for various laptops' displays.
vga=834 [ 322 (0142h)] is 1400×1050

[UPD] Еще небольшая врезочка. Больше для непонятно подключенных экранов и ноутбуков, но на ВМ тоже иногда работает:

В другом случае — если неверно определяется разрешение экрана — можно создать файл «~/.xprofile», который должен иметь такое содержимое:

xrandr —output VGA-0 —mode 1920×1200 —rate 60.

Причём вместо «output» желательно сразу указать, куда (в какой порт) подключен монитор. Это поможет определить команда «xrandr» Также опция «mode» служит для указания разрешения — вместо стандартного разрешения необходимо указать своё. 

[UPD] Еще врезка для RHEL. Кагбэ работает с большинством из проверенного, только важный момент - для UEFI нужно указывать в строке после EFI папку с той осью, которую ставите. Например, для Росы путь будет /boot/efi/EFI/rosa/grub.cfg . Проверять на месте, может быть что угодно. И еще - даже если установили UEFI, обновлять нужно оба меню, если обновить только UEFI - не сработает.

В случае внесения изменений в файлы /etc/default/grub или /etc/grub.d/40_custom необходимо сформировать новое меню с помощью команды:

# grub2-mkconfig -o /boot/grub2/grub.cfg

или для EFI

# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

На этом все. Уложился в три строки.

Категория: Софт | Просмотров: 520 | Добавил: davis74 | Рейтинг: 0.0/0
Всего комментариев: 0