Virtualbox і linux - підгонка розміру екрана гостьової ос - stack overflow російською
Є хост-машина з Windows 7 x64. на ній запущений VirtualBox 5.0.12. в якому розгорнута віртуальна машина Linux Mint 17.3 x64. В один прекрасний момент перестає пристосовуватися дозвіл екрана гостьової ОС. Зміна дозволу екрану через GUI і xrandr працюють, а автоматичне (при зміні розміру вікна або переході в повноекранний режим) - немає.
Що цікаво - при розтягуванні вікна на частку секунди дублюються шпалери, тобто начебто як система намагається дозвіл змінити, але воно тут же повертається назад.
Перевстановлення допомагає ненадовго. У якийсь момент поведінка знову псується. Версія доповнень ролі не грає - на останній версії і на версії з репозиторію (5.0.4) поведінка ідентичне. При завантаженні з LiveDVD все працює нормально. Виртуалка з Windows 7 теж працює нормально.
У чому може бути проблема і як її подолати?
Експериментальним шляхом з'ясувалося, що автоподгонка дозволу перестає працювати, якщо через GUI у властивостях дисплея виставити що-небудь стандартне (1024x768, 1920x1080 і т.п.) і натиснути Apply. Якщо зберігати нестандартне (типу 1854x812) - працює.
Зміни за допомогою xrandr нічого не ламають.
Виявилося, що GUI створює файл
Отже, дослідження привели до наступного результату.
Графічний конфігуратор дисплея - аплет Дисплей / Monitor при збереженні налаштувань (натисканні Застосувати / Apply) створює файл
в який прописується, в тому числі, збережене дозвіл екрана. При спробі зміни дозволу зовнішніми засобами відбувається перечитування цього файлу і повернення до встановлених в ньому значень. Якщо цей файл видалити, зміна дозволу екрану гостьовий ОС при зміні розмірів вікна віртуальної машини починає працювати коректно.
Напрошується рішення проблеми - заборонити створення або зміна файлу monitors.xml. Як не дивно, зміна власника на root і установка "порожніх" прав ні на що не вплинуло - файл все так же перезаписувати. Довелося вступити жорстокіше - створити порожній файл і виконати команду
Після цього файл перезаписуватися перестав, але і аплет перестав змінювати дозвіл екрана, лаючись на неможливість перейменувати файл.
Втім, дане рішення мене влаштувало. Тепер цей файл не заважає, випадково його змінити не вдасться, а міняти дозвіл екрана ВМ можна за допомогою самого VirtualBox'а - або тягаючи кути / боку вікна, або за допомогою меню:
Змінена таким чином дозвіл при перезавантаженні ВМ зберігається, оскільки VBox зберігає його в налаштуваннях ВМ.
Хотілося б, звичайно, змусити Linux ігнорувати monitors.xml при зміні розміру вікна, але мені цього зробити не вдалося.