Ubuntu Hyper-V Guest Разрешение дисплея

2019 - примечание в июне: Это было первоначально ответом на другой ответ, не надлежащим ответом на этот вопрос. Никакая идея, почему это было выбрано как правильный ответ. Но так как upvotes разросся, и это - безусловно ответ № 1 на этот вопрос, это будет суммировать решения как ответ Wiki.

Собственный компонент глубоко клонирование

Это называют "структурированным клонированием", работает экспериментально в Узле 11 и позже, и надо надеяться приземлится в браузерах. См. этот ответ для получения дополнительной информации.

Быстрое клонирование с потерей данных - JSON.parse/stringify

, Если Вы не используете Date с, функции, undefined, Infinity, RegExps, Карты, Наборы, Блобы, FileLists, ImageDatas, разреженные массивы, Типизированные массивы или другие составные типы в Вашем объекте, очень простой один лайнер для глубокого клонирования объекта:

JSON.parse(JSON.stringify(object))

const a = {
  string: 'string',
  number: 123,
  bool: false,
  nul: null,
  date: new Date(),  // stringified
  undef: undefined,  // lost
  inf: Infinity,  // forced to 'null'
  re: /.*/,  // lost
}
console.log(a);
console.log(typeof a.date);  // Date object
const clone = JSON.parse(JSON.stringify(a));
console.log(clone);
console.log(typeof clone.date);  // result of .toISOString()

См. ответ Corban для сравнительных тестов.

Надежное клонирование, пользующееся библиотекой

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

  • lodash - cloneDeep ; может быть импортирован отдельно через модуль lodash.clonedeep и, вероятно, Ваш лучший выбор, если Вы уже не пользуетесь библиотекой, которая обеспечивает глубокую функцию клонирования
  • AngularJS - angular.copy
  • jQuery - jQuery.extend(true, { }, oldObject) ; .clone() только клоны элементы DOM

ES6

Для полноты, обратите внимание, что ES6 предлагает два мелких механизма копии: Object.assign() и оператор .

распространения

25
задан 13.05.2020, 07:59

6 ответов

Я могу порекомендовать способ редактирования файла grub с помощью grubby .

Сначала вам нужно войти в систему как пользователь root, просто наберите:

sudo su

нажмите кнопку ENTER и введите свой root пароль.

После этого просто введите команду, как показано ниже:

grubby --update-kernel = ALL --args = "video = hyperv_fb: 1920X1080"

где 1920x1080 - ваше предпочтительное разрешение.

Затем просто перезагрузите виртуальную машину, и необходимо применить новое разрешение.

Я надеюсь, что это решение поможет вам. В случае вопросов, пожалуйста, свяжитесь со мной, и я постараюсь помочь.

0
ответ дан 13.05.2020, 08:00
  • 1
    Что точно является ' grubby' и где Вы получали его из? Кажется, нет никакого пакета или файла с этим именем в https://packages.ubuntu.com – Pavel Minaev 13.05.2020, 08:00

С тех пор, как этот вопрос был задан (в 2013 году), дела с Hyper-V & amp; Ubuntu 18.04.1 в отношении «Расширенного режима сеанса».

В настоящее время существует два подхода:

A) Новая система

Оптимизированные изображения рабочего стола Ubuntu доступны в галерее Microsoft Hyper-V

] B) Существующая система

Вручную сконфигурируйте xRDP для поддержки « расширенного режима сеанса »

<час>

Вот подробности:

Опция A )

  1. В Hyper-V на вашем сервере & amp; выберите [Быстрое создание]
  2. В диалоговом окне [Создать виртуальную машину] выберите [Ubuntu 18.04.1 LTS] & amp; затем [Создать виртуальную машину]
  3. Затем выполните стандартные параметры установки Ubuntu
  4. «Расширенный режим сеанса» предложит вам настроить разрешение экрана, локальные ресурсы и т. д.
  5. Примечание / Осторожно ~ если у вас есть проблемы с использованием дисков, вы можете отменить выбор [Принтеры]

Вот ссылки на источники, из которых я искал информация:

Оптимизированные образы Ubuntu Desktop доступны в галерее Microsoft Hyper-V

Запускать виртуальные машины Ubuntu стало еще проще благодаря Hyper-V Quick Create

Опция B )

  1. Измените Ubuntu 18.04 для использования xrdp

    1.1 Получите скрипты из GitHub

    sudo apt-get update
    sudo add-apt-repository ppa:git-core/ppa
    sudo apt update; sudo apt install git
    git clone https://github.com/jterry75/xrdp-init.git ~/xrdp-init
    

    1.2. Сделать скрипты исполняемыми и запустить их ...

    cd ~/xrdp-init/ubuntu/18.04/
    sudo chmod +x install.sh
    sudo ./install.sh
    reboot
    

    1.3 < После перезагрузки > Еще раз запустите скрипт, чтобы завершить настройку ВМ

    cd ~/xrdp-init/ubuntu/18.04/
    sudo ./install.sh
    
  2. Завершение работы Ubuntu VM

  3. Зарегистрируйте сеанс Ubuntu ~ запустите эту команду на хост-ПК, используя powershell с правами администратора:

    Set-VM -VMName YourUbuntuVMNameHere -EnhancedSessionTransportType HvSocket
    
  4. Перезапустите ВМ

  5. Подключение / вход в XRDP из Hyper-V (примечание ~ введите имя пользователя - должно быть в нижнем регистре)

  6. Примечание / Внимание ~ , если у вас возникли проблемы с использованием накопителей, то Вы можете отменить выбор [Принтеры]


Вот ссылка на источник информации:

2
ответ дан 13.05.2020, 08:00
  • 1
    Спасибо! Я сказал бы, что опция A) Вашего ответа, с помощью оптимизированных рисунков рабочего стола, является лучшим советом если you' ре, запускающееся с нового экземпляра. – Alex Martelli 13.05.2020, 08:01

С описанными методами это не сработало для меня. Работало так: я могу оставить свой экран хоста с разрешением 1920x1200, но размер текста увеличится до 125%, после чего я получу полноэкранный режим в гостевой сессии Ubuntu;

0
ответ дан 13.05.2020, 08:01

Я сделал все это безуспешно, а затем попытался поиграться с настройками Hyper-V.

Я увеличил объем ОЗУ для видео до 512 КБ, а также удалил драйвер 3D.
Это сработало для меня.

2
ответ дан 13.05.2020, 08:01

У меня была та же проблема, и когда я искал помощи, я помню, как увидел ваш пост. Теперь, когда я, наконец, заставил его работать, я мог бы также описать это здесь:

  1. Обновленный образ linux и заголовки sudo apt-get install linux-image-3.11.0-15-generic linux-headers-3.11.0-15-generic (Возможно, виртуальный будет работать так же хорошо, как и общий. ):

  2. Установленные дополнительные компоненты linux-image с дополнительными драйверами: sudo apt-get install linux-image-extra-virtual

  3. Установить режим видео (Почти то, что вы уже сделали):
    Установите GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1680x1050" в /etc/default/grub.

  4. Обновление grub: sudo update-grub
  5. Перезагрузка

Я думаю, что критической частью была установка обновленных гипервизоров с linux-image-extra-virtual. Также убедитесь, что они загружены .

45
ответ дан 13.05.2020, 08:02
  • 1
    Спасибо, работал на меня также. Похож на шаг 1, не необходимо, поскольку шаг 2 устанавливает все необходимые зависимости автоматически. Кроме того, определенные номера версий на шаге 1 не могут работать на некоторых пользователей. – Community 13.05.2020, 08:03
  • 2
    Данный " удостоверьтесь..." ссылка 404 – Steve314 13.05.2020, 08:03
  • 3
    Это работает, но для тех на 1920x1200 мониторы, необходимо раскрыть его к 1920x1080, чтобы заставить его работать (я первоначально пропустил ответ ниже, поэтому думал, что комментарий здесь мог бы быть замечен более быстрый для некоторых). – Lightness Races in Orbit 13.05.2020, 08:03
  • 4
    Don' t забывают удалять из Ваших настроек VM remotefx карту (Если включено по некоторым причинам)! – Pavel Minaev 13.05.2020, 08:04

Ответ Копата работал для меня, но только после того, как я изменил свое разрешение с 1920x1200 до 1920x1080 .

Глядя в исходный файл Linux hyperv_fb.c, есть комментарий: «Это драйвер для синтетического видео Hyper-V, которое поддерживает разрешение экрана до Full HD 1920x1080 с 32-битным цветом в Windows Server 2012 и 1600x1200 с 16-битным цветом в Windows Server 2008 R2 или более ранней версии. "

22
ответ дан 13.05.2020, 08:02
  • 1
    Этот все еще имеет место с 17,04? – Community 13.05.2020, 08:03

Теги

Похожие вопросы