Modify Startup Script on Iomega/Lenovo ix4-300d NAS

We want our installed applications to be started whenever we start or restart our NAS without having to login with ssh and start the service manually. This can be done by creating a “Startup” script and telling your NAS to execute it every boot/reboot. Then we can add as many services as we want.

!!! Doing this will void your warranty !!!
!!! Do this on your own risk, this may break your NAS !!!

Requirements
Creating a Startup Script
Add code for 3.3.4.29856 and older
Add code for 4.0.2.9960 and up
Adding Startup Services
Startup Script Example

22 thoughts on “Modify Startup Script on Iomega/Lenovo ix4-300d NAS

  1. Hi,
    I followed the instructions and it went well until I wanted to change the startup file, there is no “nano” folder
    I have an X2 instead of a X4.

    grt, Guido verholen(Belgium)

    • “nano” is the program that allows you to edit text files, you can change every “nano” by “vi” or “vim”, these are text editors but are a bit different:
      -to insert text => type i then type your text
      -to save => ESC -> :wq -> enter

      you can also try to install “nano” by using one of the following lines:
      – /opt/bin/ipkg install nano
      – apt-get install nano

      always double check your files before restarting, wrong code can break your Nas!!

  2. Hi Steven

    I was attempting to do this and when I went to say I noticed the filename was sohoprocs.xml so I decided to not save my changes.

    Running /opt/editconfig.sh, the file is now empty… Have I totally screwed something up?

    • root@NAS:/# /opt/editconfig.sh << First time open, CTRL+X, N to save changes
      root@NAS:/# /opt/editconfig.sh << Empty File Now?
      mkdir: cannot create directory `/tmp/apps': File exists
      mount: could not find any free loop device
      umount: /tmp/apps: not mounted

      • The editconfig.sh should not be empty after execution, this file should be executed after every update to restore your servers. I would recommend removing your files and try this guide again, i found a small fault in the guide… this may be the problem.

        • Sorry, the editconfig.sh isn’t empty, but the sohoProcs file that it generates doesn’t populate with any values since running it that first time. It’s blank when I run /opt/editconfig.sh for some reason

          • sounds like the editconfig has a wrong path or filename and created a new file, paths and filenames are case sensitive… did you copy-paste the file or just typed it? check if your editconfig is the same as mine.

          • I copy pasted everything listed above.

            Thought I’d try and start over so I deleted the init-opt.sh and the editconfig.sh, and also removed /tmp/apps

            http://goo.gl/cWBLMV

            root@NAS:/opt# rm editconfig.sh
            root@NAS:/opt# rm init-opt.sh
            root@NAS:/opt# cd ..
            root@NAS:/# nano /opt/init-opt.sh
            root@NAS:/# chmod +x /opt/init-opt.sh
            root@NAS:/# nano /opt/editconfig.sh
            root@NAS:/# chmod +x /opt/editconfig.sh
            root@NAS:/# /opt/editconfig.sh
            mount: could not find any free loop device
            umount: /tmp/apps: not mounted
            root@NAS:/# /opt/editconfig.sh
            mkdir: cannot create directory `/tmp/apps’: File exists
            mount: could not find any free loop device
            umount: /tmp/apps: not mounted
            root@NAS:/#

            I should’ve just saved the file the first time it generated 🙁

  3. Looks like my programs aren’t starting up after reboot. I can start them myself.

    #!/bin/sh
    rm /opt/init-opt.log
    echo “Last bootup:” >> /opt/init-opt.log
    date >> /opt/init-opt.log
    echo “Wait one minute, so that the storage pool
    is mounted” >> /opt/init-opt.log
    sleep 1m
    # Services after this line
    #Sabnzbd
    /opt/bin/python2.6 /mnt/pools/A/A0/Downloads/.apps/sabnzbd/SABnzbd.py –server $
    echo “SABnzbd Started” >> /opt/init-opt.log
    #Couchpotato
    /opt/bin/python2.6 /mnt/pools/A/A0/Downloads/.apps/CouchPotatoServer/CouchPotat$
    echo “Couchpotato Started” >> /opt/init-opt.log
    #Sickbeard
    /opt/bin/python2.6 /mnt/pools/A/A0/Downloads/.apps/Sick-Beard/SickBeard.py –da$
    echo “Sickbeard Started” >> /opt/init-opt.log
    # Services before this line
    sleep 360d

    • is the script executed? check if there is a “init-opt.log” file, also did you do the chmod +x (add execute rights)? you can try “chmod 777 /opt/init-opt.sh”. also are you logged in as root?

      • I think so. Following guide. I just keep having issues. Not sure why because first time I did this wasn’t near as hard.

  4. In the last firmware update (4.x) I think it is LEVEL 2 where you have to add

  5. I have PX-300D running version 4.1.108.32627. When I run /etc/editconfig.sh and modify the XML under Group Level 1, paste the new program …i am unable to save the sohoProcs.xml doing CTRL+O -> Enter. i get the following message: “Error writing /tmp/apps/usr/local/cfg/sohoProcs.xml: Read-only file system” .

  6. Hello, I think I bricked It. I followed the instructions above (copy and pasted.) I cannot access the nas any more–web access, share or ssh. I rebooted the nas, it goest through disk configuration, displays the ip address and time. I tried to press the arrow keys but it doesn’t switch displays. When I try to access the webgui, it stuck at “processing” and the nas display goes blank. The firmware is 4.1.114.33421.

    Please, is there a way to revert back or re-image the firmware?
    Thank you!

    • I managed to ssh into the nas while it was booting. While having the xml file opened in nano, I somehow prevented something to execute and the box booted fine. I reverted the changes and reboot. NAS is back to normal now.
      Thanks.

  7. Hi Steven! After modifications of the startup script my IX4-300d NAS hangs on 75% load. Only ping, no shares, no web or ssh access. Is it possible reset to factory defaults any way?

  8. I am trying to run this on PX6-300d.

    I login with root user, download scripts, its ok.
    When I run, I could not write config, and then run step by step to check.

    I get “mount: warning: /tmp/apps seems to mounted read-only”.

    Whats is wrong?

    May be its not compatible with px6-300d?

    Thanks

    Job

Leave a Reply