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

Recent Posts from This Journal

  • Иноходец

    Садовник спросил у Эзопа - Почему за огородными растениями нужно ухаживать, а сорняки растут сами? - Потому, что одни для земли родные дети, а…

  • Лайфхак

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

  • Хороший футбол!

    Получил настоящее эстетическое наслаждение. Итальянцы, считаю, выиграли по делу. Они на чуть-чуть - но были лучше. Хотя английский гол - просто…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 9 comments