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

  • OpenZFS и XigmaNAS

    Месяц назад я писал про Open ZFS. Там были мысли о том, когда он будет доступен в XogmaNAS. А в конце декабря зацепился на эту тему языками с…

  • Как провожают жесткие диски

    Сдох у меня жесткий диск в NAS Как видно - из SMART отпахал 70428 часов, то есть если 24/7 - больше 8 лет. И, я вам скажу, он не просто крутился…

  • О добавлении диска в ZFS raidz

    Проект OpenZFS дал новый импульс развитию этой файловой системы. Прежде всего потому, что Linux сообщество разработчикоы велико и подключение их к…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 9 comments