• 0

QNAP как альтернатива Synology и XPEnology


Question

Всем добрый день!

Есть интересная альтернатива продуктам Synology и называется она QNAP.

Не так давно захотелось проверить есть ли возможность установить QNAP QTS (ОСь с их накопителей, демку которой можно посмотреть тут) на ПК или Виртуалку. XPEmology на vSphere уже крутится, почему бы не попробовать запустить там и QNAP QTS?

Гугление в лоб на наличие готового решения схожего с XPEnology ничего не дало. Покопав немного побольше нашлась инструкция с перепрошивкой QNAP которая позволила добиться некоторых результатов. Забегая в перед скажу, что результаты конечно же не фантан, но уже что-то.

 

Что из себя представляет инструкция по прошивки (в самой инструкции предполагается что все действия проделывается на QNAP NAT)

Нам потребуется:

- образ DSL - миниатурного Linux-дистрибутива, с возможностью загрузки из образа (или флешки, как и предлагается в самой инстукции)

- виртуальная машина с IDE-диском. т.к. scsi и sata DSL видеть отказывается

- образ прошивки. Я успел попробовал два образа, но грузиться стал только F_TS-659_20101118-1.0.9.img (TS-659 Pro, TS-659 Pro+, TS-659 Pro II)

 

Наши действия:

- создаем виртуальную машину

[spoiler=Параметры виртуальной машины].encoding = "windows-1251"

config.version = "8"

virtualHW.version = "10"

vcpu.hotadd = "TRUE"

scsi0.present = "TRUE"

scsi0.virtualDev = "lsilogic"

memsize = "1024"

mem.hotadd = "TRUE"

ide0:0.present = "TRUE"

ide0:0.fileName = "QNAP.vmdk"

ide1:0.present = "TRUE"

ide1:0.fileName = "C:\*путь_к_образу_DSL*\dsl-4.4.10-initrd.iso"

ide1:0.deviceType = "cdrom-image"

ethernet0.present = "TRUE"

ethernet0.connectionType = "nat"

ethernet0.wakeOnPcktRcv = "FALSE"

ethernet0.addressType = "generated"

usb.present = "TRUE"

ehci.present = "TRUE"

ehci.pciSlotNumber = "35"

sound.present = "TRUE"

sound.fileName = "-1"

sound.autodetect = "TRUE"

serial0.present = "TRUE"

serial0.fileType = "thinprint"

pciBridge0.present = "TRUE"

pciBridge4.present = "TRUE"

pciBridge4.virtualDev = "pcieRootPort"

pciBridge4.functions = "8"

pciBridge5.present = "TRUE"

pciBridge5.virtualDev = "pcieRootPort"

pciBridge5.functions = "8"

pciBridge6.present = "TRUE"

pciBridge6.virtualDev = "pcieRootPort"

pciBridge6.functions = "8"

pciBridge7.present = "TRUE"

pciBridge7.virtualDev = "pcieRootPort"

pciBridge7.functions = "8"

vmci0.present = "TRUE"

hpet0.present = "TRUE"

usb.vbluetooth.startConnected = "TRUE"

displayName = "QNAP"

guestOS = "other26xlinux"

nvram = "QNAP.nvram"

virtualHW.productCompatibility = "hosted"

powerType.powerOff = "soft"

powerType.powerOn = "soft"

powerType.suspend = "soft"

powerType.reset = "soft"

extendedConfigFile = "QNAP.vmxf"

floppy0.present = "FALSE"

uuid.bios = "56 4d 64 c6 ad 8b a1 57-83 9e 21 40 9f 23 cb 11"

uuid.location = "56 4d 64 c6 ad 8b a1 57-83 9e 21 40 9f 23 cb 11"

replay.supported = "FALSE"

replay.filename = ""

ide0:0.redo = ""

pciBridge0.pciSlotNumber = "17"

pciBridge4.pciSlotNumber = "21"

pciBridge5.pciSlotNumber = "22"

pciBridge6.pciSlotNumber = "23"

pciBridge7.pciSlotNumber = "24"

scsi0.pciSlotNumber = "16"

usb.pciSlotNumber = "32"

ethernet0.pciSlotNumber = "33"

sound.pciSlotNumber = "34"

vmci0.pciSlotNumber = "36"

ethernet0.generatedAddress = "00:0c:29:23:cb:11"

ethernet0.generatedAddressOffset = "0"

vmci0.id = "-1625044207"

vmotion.checkpointFBSize = "33554432"

cleanShutdown = "TRUE"

softPowerOff = "FALSE"

usb:0.present = "TRUE"

usb:0.deviceType = "hid"

usb:0.port = "0"

usb:0.parent = "-1"

usb:1.speed = "2"

usb:1.present = "TRUE"

usb:1.deviceType = "hub"

usb:1.port = "1"

usb:1.parent = "-1"

tools.syncTime = "FALSE"

 

- грузимся с образа DSL

- копируем образ F_TS-659_20101118-1.0.9.img

- форматируем в ext3 наш виртуальный диск

- переноси содержимое образа на форматированный диск

 

По сути официальная инструкция на этом заканчивается.

Перезагружаем виртуальную машину и видим что начинается загрузка QNAP QTS. Когда запросят ввести логин и пароль можно вписать admin и admin соответственно.

Пробуем найти накопитель через фирменную утилиту Qfinder и ничего не находим!

Посмотрев логи загрузки и список устройств можно обнаружить что есть проблемы с сетевой картой. И тут мои познания в области конфигурирования linux намекнули мне что самостоятельно сдвинутся с этой точки мне не получится.

 

В общем то я и пишу этот пост в надежде найти энтузиастов которых заинтересует работа над портированием QNAP QTS на виртуалки и ПК.

Если же у Вас нет желания в плотную заниматься этим вопросом, то я буду благодарен любой помощи которая заставит сдвинуть работу по портированию QNAP QTS.

 

Понимаю, что данный пост мало соотносится с тематикой форума, но если тема будет интересна и получит развитие, то я готов приобрести домен для создания на нем форума посвященного портированию QNAP QTS.

Link to post
Share on other sites

Recommended Posts

  • 0
В 1/30/2018 в 12:00, dvshub сказал:

В общем проблему с sata портами пока решил так: Подцепил диски подключенные к  QnapD4 по iscsi. Сеть гигабитная - копирует с машины на машину отлично. Единственный минус приходится держать родной qnap включенным. В плюсах 72 камеры, транскодирование. виртуализация, 4 винчестера, совместная полноценная работа в UPS и полностью рабочий myqnapcloud для двух машин с разными доменными именами на одном аккаунте. Почти счастлив.:D

Как подцепил диски?

Я не вижю обции на подключение iscsi или внешних какихто дисков

Link to post
Share on other sites
  • 0
8 минут назад, pcmaster4u сказал:

Как подцепил диски?

Я не вижю обции на подключение iscsi или внешних какихто дисков

Менеджер хранения - виртуальный диск - удаленный диск

Link to post
Share on other sites
  • 0
В 08.06.2017 в 12:49, wowan_zh сказал:

Этой фразе более 3 лет, видимо погорячился тогда... Я не знаю NAS QNAP. но у меня есть Asustor 6204T, Synology рядом с ним не валялся, там есть всё: и виртулизация, и docker, и Kodi, и штук 5 торрентов, а также тьма пакетов, которых нет в Synology. В нем 4 камеры можно подключать бесплатно (в Synology только 1). Единственное преимущество Synology в том, что благодаря XPEnology можно поставить почти на все железо.

asustor замазанная копия qnap !

количество пакетов у всех одинаковое !

функционал у всех одинаков, разная реализация и конечно цена )

Link to post
Share on other sites
  • 0
В 22.02.2018 в 02:49, 4sag сказал:

asustor замазанная копия qnap !

количество пакетов у всех одинаковое !

функционал у всех одинаков, разная реализация и конечно цена )

Функционал одинаков конечно  но на вкус и цвет пингвины для всех разные !

Link to post
Share on other sites
  • 0
В 22.02.2018 в 02:49, 4sag сказал:

функционал у всех одинаков, разная реализация и конечно цена

 

ещё подход к обновлениям очень разный. на работе есть один рукожоп, который уже 2 кунапа заруинил простым обновлением в стиле "- доступно обновление, установить? - да, конечно, я люблю обновлять продакшен в пятницу после обеда "

имхо, конечный пользователь не должен париться об особенностях обновления, но увы - убить кунап оказалось куда проще, чем хотелось бы. хренология у меня пока обновляется без проблем (при условии совместимости загрузчика)

Link to post
Share on other sites
  • 0
3 часа назад, Lordbl4 сказал:

но увы - убить кунап оказалось куда проще, чем хотелось бы. хренология у меня пока обновляется без проблем (при условии совместимости загрузчика)

Не верю.

С 2009 года продано много десятков различных Qnap: и на ARM, и на Intel. Единственный косяк, связанный с обновлением FW был в 2011 году на серии с ARM - когда программеры Qnap в очередном обновлении изменили названия папок, создаваемых самим Qnap (убрали букву "q"), т.е. было=>: qDownload, qMusic, qPublic и т.д. - стало Download, Music, Public и т.д - как это было на моделях с Intel. После этого обновления все модели Qnap на ARM - стали. ТП Qnap тогда порвали, но надо отдать им должное, они не морозились, а старались быстро помочь - после обращения по поводу что теперь делать - они попросили доступ к серверам, и все с включенным SSH - в течении нескольких дней подняли. На тех, где не был включенным SSH - пришлось вынимать диски, сливать инфу (если нужна была клиентам), ресетить с задней кнопки к дефолту, и заново уже ставить с нуля.

 

Вот это был единственный случай по сегодняшний день. Так что дело только в криворуком рукожопе. Гоните его.

Link to post
Share on other sites
  • 0
1 час назад, aleksey_z сказал:

Так что дело только в криворуком рукожопе.

 

я его не защищаю, но может расскажешь, как можно нарупожопить в вышеупомянутой схеме? система предложила обновиться -> пользователь согласился -> приплыли. кунапы не отвечаю по всем службам. хорошо что эти два раза на кунапах хранились всего лишь копии и проще было переустановить с обновлением, чем заставить отвечать.

 

хочешь верь, хочешь нет - дело твоё, я не настаиваю. но с ситуацией знаком лично и доверия к кунапам в плане обновлений у меня нет.

Link to post
Share on other sites
  • 0
13 минуты назад, Lordbl4 сказал:

но может расскажешь, как можно нарупожопить в вышеупомянутой схеме? система предложила обновиться -> пользователь согласился -> приплыли. кунапы не отвечаю по всем службам.

Да я же не знаю, что он там кнопал. По описанной тобой схеме, такой затык был единственный, в 2011 году (можешь их форумы поштудировать, там даже намека на такие проблемы нету, как проблема после обновления FW). После того случая, по сей день, обновления примерно 80% установленных Qnap делаю удаленно, по мере выхода новых прошивок. Остальные обновляю на местах установки, по мере обслуживании остального оборудования. Ни разу ничего не ложилось.

Link to post
Share on other sites
  • 0

Народ подскажите  забуксовал  немного  пытаюсь добавить ddns провайдера в qnap   напрямую в 

#!/bin/sh
# ddns_update.sh         This shell script takes care of ddns updating
#
# description: ez_ipupdate provide register domain name from special server.

# "Server Type" support list.
# DYNDNS = 0, OBS = 1, DNS = 2, DYNS = 3, QDNS = 4, NOIP = 5, SELFHOST = 9, ORAY = 10
# only _viostor_ IPCAM = 6 , NWCAM = 7
# not _viostor_ , TZO = 6

/bin/echo -n "Starting ddns update: "
/bin/rm /tmp/ddns.result -f

DDNS_TMP_FILE="/var/ddns_tmp.conf"

check_ddns_temp_file()
{
    if [ ! -f ${DDNS_TMP_FILE} ] || [ $1 -ne 0 ]; then
        /bin/echo "${DDNS_TMP_FILE} is not exist"
        /bin/echo "[DDNS]" > ${DDNS_TMP_FILE}
        /bin/echo "Support = "`/sbin/getcfg "DDNS" "Support" -u -d "TRUE"` >> ${DDNS_TMP_FILE}
        /bin/echo "Enable = "`/sbin/getcfg "DDNS" "Enable" -u -d "FALSE"` >> ${DDNS_TMP_FILE}
        /bin/echo "Server Type = "`/sbin/getcfg "DDNS" "Server Type" -u -d "0"` >> ${DDNS_TMP_FILE}
        /bin/echo "Config File = "`/sbin/getcfg "DDNS" "Config File" -d "/etc/ddns_update.conf"` >> ${DDNS_TMP_FILE}
        /bin/echo "Check External IP = "`/sbin/getcfg "DDNS" "Check External IP" -d "0"` >> ${DDNS_TMP_FILE}
        /bin/echo "User Name = "`/sbin/getcfg "DDNS" "User Name" -d ""` >> ${DDNS_TMP_FILE}
        _epass_tmp=`/sbin/getcfg "DDNS" "ePassword" -d ""`
        if [ -z $_epass_tmp ]; then
            _pass_tmp=`/sbin/getcfg "DDNS" "Password" -d ""`
            if [ -z $_pass_tmp ]; then
                /bin/echo "ePassword = " >> ${DDNS_TMP_FILE}
            else
                _epass_tmp=`/sbin/get_encstr ${_pass_tmp} e`
                /bin/echo "ePassword = "$_epass_tmp >> ${DDNS_TMP_FILE}
            fi
        else
            /bin/echo "ePassword = "$_epass_tmp >> ${DDNS_TMP_FILE}
        fi
        /bin/echo "Host Name = "`/sbin/getcfg "DDNS" "Host Name" -d ""` >> ${DDNS_TMP_FILE}
        /bin/echo "DDNS Type = "`/sbin/getcfg "DDNS" "DDNS Type" -d "0"` >> ${DDNS_TMP_FILE}
    fi
}

check_ddns_temp_file 0

[ -f /usr/sbin/noip2c ] || /bin/ln -sf /usr/sbin/noip2 /usr/sbin/noip2c

SERVER_TYPE=`/sbin/getcfg "DDNS" "Server Type" -u -d "0" -f ${DDNS_TMP_FILE}`

if [ `/sbin/getcfg "DDNS" "Support" -u -d "TRUE" -f ${DDNS_TMP_FILE}` = TRUE ]
then
    if [ `/sbin/getcfg "DDNS" "Enable" -u -d "FALSE" -f ${DDNS_TMP_FILE}` = FALSE ]
    then
        /bin/echo "disabled."
        exit 0
    fi
    #Hugo add: for ROD ddns support
    if [ -e /var/._viostor_ ]; then
        if [ ${SERVER_TYPE} = 7 ]; then
            user=`/sbin/getcfg "DDNS" "User Name" -d "" -f ${DDNS_TMP_FILE}`
            epass=`/sbin/getcfg "DDNS" "ePassword" -d "" -f ${DDNS_TMP_FILE}`
            if [ -z $epass ]; then
                pass=`/sbin/getcfg "DDNS" "Password" -d "" -f ${DDNS_TMP_FILE}`
            else
                pass=`/sbin/get_encstr ${epass} d`
            fi
            /usr/bin/wget "http://www.nwcam.jp/cgi-bin/dip.cgi?username=$user&password=$pass"
            result="$?"
            echo $result > /tmp/ddns.result
            /bin/rm -fr dip.cgi*

            /bin/touch /var/lock/subsys/nwcam
            /sbin/setcfg "DDNS" "Update Server Response" ${result} -f ${DDNS_TMP_FILE}
            [ -f /sbin/set_ipupatetime ] && /sbin/set_ipupatetime "1"

            exit $result

        elif [ ${SERVER_TYPE} = 6 ]; then
            TERM=vt100
            user=`/sbin/getcfg "DDNS" "User Name" -d "" -f ${DDNS_TMP_FILE}`
            epass=`/sbin/getcfg "DDNS" "ePassword" -d "" -f ${DDNS_TMP_FILE}`
            if [ -z $epass ]; then
                pass=`/sbin/getcfg "DDNS" "Password" -d "" -f ${DDNS_TMP_FILE}`
            else
                pass=`/sbin/get_encstr ${epass} d`
            fi
            /usr/bin/wget "http://ns1.ipcam.jp/cgi-bin/dip.cgi?username=$user&password=$pass"
            result="$?"
            echo $result > /tmp/ddns.result
#            echo -n "ipcam-ddns-update"
#            echo -n "ipcam-ddns-update" >> $ddns_debug
#            echo "."
            /bin/rm -fr dip.cgi*
            /bin/touch /var/lock/subsys/ipcam

            /sbin/setcfg "DDNS" "Update Server Response" ${result} -f ${DDNS_TMP_FILE}
            [ -f /sbin/set_ipupatetime ] && /sbin/set_ipupatetime "1"

            exit $result
        fi
    fi
    #End

    if [ ${SERVER_TYPE} = 9 ]; then
        check_ddns_temp_file 1
        /etc/init.d/selfhost-updater.sh update
        result=$?
    elif [ ${SERVER_TYPE} = 10 ]
    then
        check_ddns_temp_file 1
        /etc/init.d/oray-updater.sh update
        result=$?
    elif [ ${SERVER_TYPE} != 5 ]
    then
        /usr/sbin/create_ddns_conf > /dev/null
        result=$?
        if [ $result -ne 0 ] 
        then
            /bin/echo "ERROR."
            exit 1
        fi

        config_file=`/sbin/getcfg "DDNS" "Config File" -d "/etc/ddns_update.conf" -f ${DDNS_TMP_FILE}`
        /usr/sbin/ez-ipupdate -c $config_file 2>/dev/null
        result=$?
    else
        if [ ! -f /etc/config/no-ip2.conf ]; then
            username=`/sbin/getcfg "DDNS" "User Name" -d "" -f ${DDNS_TMP_FILE}`
            epassword=`/sbin/getcfg "DDNS" "ePassword" -d "" -f ${DDNS_TMP_FILE}`
            if [ -z $epassword ]; then
                password=`/sbin/getcfg "DDNS" "Password" -d "" -f ${DDNS_TMP_FILE}`
            else
                password=`/sbin/get_encstr ${epassword} d`
            fi
            #echo "${epassword}:${password}" > /tmp/noip_pwd
            hostname=`/sbin/getcfg "DDNS" "Host Name" -d "" -f ${DDNS_TMP_FILE}`
            externalIP=`/sbin/getcfg "DDNS" "Check External IP" -d "5" -f ${DDNS_TMP_FILE}`
            if [ $externalIP = 0 ]; then
                externalIP=5
            fi
            option=""
            def_gw=`/sbin/getcfg "Network" "Default GW Device"`
            if [ ! -z $def_gw ]; then
                option="-I ${def_gw}"
            fi
            /usr/bin/yes ' ' | /usr/sbin/noip2c -C -u "${username}" -p "${password}" -n "${hostname}" -U "${externalIP}" ${option} 1>/dev/null 2>/dev/null
        fi
        if [ -f /etc/config/no-ip2.conf ]; then
            /sbin/daemon_mgr noip2 start "/usr/sbin/noip2 -d 1>>/tmp/noip2.log 2>&1"
            result=0
            /bin/echo "DDNS was updated successfully"
        else
            /sbin/setcfg "DDNS" "Enable" "FALSE"
            /sbin/setcfg "DDNS" "Enable" "FALSE" -f ${DDNS_TMP_FILE}
            result=1
        fi
        if [ $result -ne 0 ];then
            /bin/echo $result > /tmp/ddns.result
        else
            /bin/echo "DDNS was updated successfully"
        fi
#update record
        /sbin/setcfg "DDNS" "Update Server Response" ${result} -f ${DDNS_TMP_FILE}
        [ -f /sbin/set_ipupatetime ] && /sbin/set_ipupatetime "1"
        
        /bin/echo -n "noip2"
        /bin/echo "."
        /bin/touch /var/lock/subsys/noip2
        exit $result
    fi

    if [ $result -ne 0 ]
    then
        /bin/echo $result > /tmp/ddns.result
#        /sbin/write_log "Failed to update DDNS." 2
    else
        /bin/echo "DDNS was updated successfully"
#        /sbin/write_log "DDNS was updated successfully." 4
    fi
#update record
    /sbin/setcfg "DDNS" "Update Server Response" ${result} -f ${DDNS_TMP_FILE}
    [ -f /sbin/set_ipupatetime ] && /sbin/set_ipupatetime "1"

    /bin/echo -n "ez-ipupdate"
    /bin/echo "."
    /bin/touch /var/lock/subsys/ez-ipupdate
    exit $result
else
    /bin/echo "Un-support"
fi

exit 1
____________________________________________________________________________________

а вот  это надо сюда  впихнуть  кто подскажет   кто подкинет  умную идею как это правильно сделать ???

 

#!/bin/sh USERNAME="<my-username>" PASSWORD="<my-password>" HOSTNAME="<my-hostname>" # Should be no need to modify anything beyond this point curl -D - --user $USERNAME:$PASSWORD https://dyndns.strato.com/nic/update?hostname=$HOSTNAME >/dev/null 2>&1 if [ $? -eq 0 ]; then /sbin/ddns_custom_updated 1 else /sbin/ddns_custom_updated 0 fi

Link to post
Share on other sites
  • 0
3 часа назад, pcmaster4u сказал:

прошивка от QNAP TVS-882ST  все подхватила и встала как родная

Ссылку на прошивку в студию!

Или от куда качал, как ставил...

Да и самое главное, какого года прошивка, обновляется или???

Edited by tajson
Link to post
Share on other sites
  • 0
On 5/1/2018 at 5:46 PM, pcmaster4u said:

Eсли кому интересно

На маме Asus Q87T  прошивка от QNAP TVS-882ST  все подхватила и встала как родная

Выложите ссылку плиз на образы и инструкции по установке.

 

И еще, может есть у кого выходы на инвайты для nas1.cn и http://www.gebi1.com ?? вроде там активно что-то появляется по насам.

Link to post
Share on other sites
  • 0
On 5/1/2018 at 8:45 PM, tajson said:

Ссылку на прошивку в студию!

Или от куда качал, как ставил...

Да и самое главное, какого года прошивка, обновляется или???

да это небось то старье которое уже в этой теме выкладывали - естественно не обновляется и половина сервисов уже не работает.

Link to post
Share on other sites
  • 0
В 15.02.2014 в 22:38, Vortex сказал:

Предыдущие версии системы QNAP'а (до QTS 5.x) были ужасными.

Последняя версия QTS 4.3.4.0569 !)

Link to post
Share on other sites
  • 0
В 04.05.2018 в 11:43, T-REX-XP сказал:

Выложите ссылку плиз на образы и инструкции по установке.

 

И еще, может есть у кого выходы на инвайты для nas1.cn и http://www.gebi1.com ?? вроде там активно что-то появляется по насам.

тебе везет  у тебя юсбишка  определилась  а уменя  a drive has been detected but is inaccessible. Please check it for faults.   уже весь конфиг перелопатил  и тупик !  КСТАТИ  насчет  тут я обратил внимание на очень интересного персонажа  на китайских форумах  Odie82544 этот чел как раз кунапы и ковыряет все образы его а самое интересное здесь  на форуме он тоже тусит !! так что надоть его заспрашать  на учебник !  если все вместе начнем спрашивать может кому и ответит !!)))

Link to post
Share on other sites
  • 0

Кстати если кому интересно как разобрать initrd.boot

mv initrd.boot initrd.lzma

lzma -d initrd.lzma

cpio -ivmd < initrd

____________________________

сборка 

find . |cpio -o   -H newc > ../initrd

cd ..

lzma initrd  initrd.lzma

mv initrd.lzma initrd.boot

cksum initrd.boot >initrd.boot.cksum

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.