2gusia (2gusia) wrote,
2gusia
2gusia

Categories:

Костыль для нормальной остановки витуалок под virtualbox в nas4free

ВАЖНО В более поздних сборках описанный костыль создаёт дополнительные проблемы и к применению НЕ рекомендую.

Актуальная сборка nas4free (11.0.0.4.4249) имеет баг. Если попытаться выключить виртуалку через vnc клиент, то процесс никогда не завершается и остаётся в состоянии Stopping... Обидно, что проблема уже возникала и была адресована. Как выяснилось, в библиотеке VNC сервера есть баг. Последняя версия без бага 0.9.9

Соответственно для избежания проблемы есть два костыля

(1) закрыть VNC сервер перед выключением виртуалок. А выключать через команду из phpVirtualBox - неудобно и не всегда возможно

(2) подменить библиотеку на рабочую, что элементарно в full версии но потребует небольшого бубна в embedded.

Рабочую библиотеку я поленился сам компилировать и вытащил из старой ревизии nas4free (11.0.0.4.3252). Tar с библиотекой у меня на я диске.

1) Подгружаем tar и кладём его на один из дисков NAS, например у меня на /mnt/Pool/Media

2) Выбираем место для библиотеки, которое переживёт перезагрузку и где у нас будет лежать правильная библиотека, например у меня /mnt/Pool/Ext/Extensions

3) Идём в командную строку и распаковываем на место
cd /mnt/Pool/Media
tar -xvf libvnc.tar
mv libvncserver.so.0 /mnt/Pool/Ext/Extensions


4) Создаём командный скрипт
cd /mnt/Pool/Ext/Extensions
nano libvnc.sh


Его содержимое у меня (замените /mnt/Pool/Ext/Extensions на папку из п 2)

#!/bin/sh
cd /usr/local/lib
cp -a /mnt/Pool/Ext/Extensions/libvncserver.so.0 ./
mv libvncserver.so.1 libvncserver.so.1.bak
ln -s libvncserver.so.0 libvncserver.so.1



5) Создаём командный скрипт, тип PostInit
/bin/sh /mnt/Pool/Ext/Extensions/libvnc.sh

(в принципе, и весь скрипт можно уложить с строку)

6) Перегружаемся

7) Проверяем, что библиотеки подменились

nas4free // root~$ ls /usr/local/lib/libvnc*
/usr/local/lib/libvncserver.so.0* /usr/local/lib/libvncserver.so.1.bak*
/usr/local/lib/libvncserver.so.1@



8) Проверяем, что виртуалки теперь останавливаются.

PS1 Респект камраду Evgeny Sokolov за идентификацию проблемы и разъяснения.

PS2 Если есть желание, можно в оффоруме поблагодарить разрабов nas4free, пожаловаться на проблему здесь и ВЕЖЛИВО по английски попросить исправить удобным им способом.
Tags: nas, nas4free, virtual, vnc
Subscribe

  • В 2021 нам кино завезут вовремя!

    Warner Bros выпустит все фильмы-новинки 2021 года одновременно в кинотеатрах и на стриминговом сервисе HBO Max. Думается, что даже если вы не…

  • Основание - сериал по Азимову

    Apple обещает на 21 год сериал по одному из самых масштабных произведений мировой фантастики. По тизеру не понятно - сделают шедевр или полное…

  • Аннигиляция фильм

    Эсквайр, оказывается, назвал сабж на момент лучшим фильмом 2018. Плюс к тому вроде как на Россию прокат не предусмотрен. Фантастика к тому же, да и…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 9 comments