Jump to content
XPEnology Community
  • 2

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


kmx236

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 comment
Share on other sites

Recommended Posts

  • 0
1 час назад, aleksey_z сказал:

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

 

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

 

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

Link to comment
Share on other sites

  • 0
13 минуты назад, Lordbl4 сказал:

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

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

Link to comment
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 comment
Share on other sites

  • 0
3 часа назад, pcmaster4u сказал:

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

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

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

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

Edited by tajson
Link to comment
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 comment
Share on other sites

  • 0
On 5/1/2018 at 8:45 PM, tajson said:

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

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

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

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

Link to comment
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 comment
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 comment
Share on other sites

  • 0
1 минуту назад, lio666 сказал:

Образ пока в модификации  нужны люди  со знанием Линокса 

882- 4.3.4 и 1685 4.3.3  полет нормальный  но проблема с usb осталась  народ кто знает  как

[Usb Port 4]
DEV_BUS = B00:D20:F0   

короче как в линухе вызвать debug -pci чтобы выловить  DEV_BUS =

 

Link to comment
Share on other sites

  • 0
Только что, zloytazik сказал:

882- 4.3.4 и 1685 4.3.3  полет нормальный  но проблема с usb осталась  народ кто знает  как

[Usb Port 4]
DEV_BUS = B00:D20:F0   

короче как в линухе вызвать debug -pci чтобы выловить  DEV_BUS =

 

пока не разберемься образа не будет

Link to comment
Share on other sites

  • 0
5 minutes ago, lio666 said:

пока не разберемься образа не будет

может получится как тут написано - https://unix.stackexchange.com/questions/108888/how-creation-of-new-usb-device-file-in-dev-bus-usb-001-directory-work ??

 

вот еще одна ссылка - https://www.linuxnix.com/find-usb-device-details-in-linuxunix-using-lsusb-command/

Edited by T-REX-XP
Link to comment
Share on other sites

  • 0
1 минуту назад, T-REX-XP сказал:

пробовал не прокатывает  

аидой дебуг выдрал  но гдето еще загвоздка  не цепляет usb  а точней инициации нет 

 

Link to comment
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.

×
×
  • Create New...