Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Debian is a free operating system (OS) that comes with over 29000 packages, precompiled software bundled up in a nice format for easy installation on your DiskStation. Debian Chroot allows you to benefit from the Debian OS inside your DiskStation, alongside DSM. This package is intended for advanced users only.
Once the installation finished in the Package Center, it continues in the background and you can see its status to Installing under Overview in the left pane. The installation finished, the status will automatically change to Installed.
In the same pane, you can monitor how many services are running and perform update operations.
As soon as the status is Installed, you can start using the chroot. To do so, connect to the DiskStation through SSH (root user) and use the following command:
On the first use (after several minutes, for things to install), it is recommended to perform some configuration operations:
- Update: type
apt-get updatefollowed by
- Locales: type
apt-get install localesand then
- Timezone: execute
Debian Chroot allows you to manage the packages you installed in the chroot directly from DSM.
Under Services in the left pane, you can manage services that you manually installed previously in the chroot: start and stop them easily.
- Manually install in the chroot the service you chose
- Configure it by editing the correct configuration files
- In the interface, click on Add and fill the form. The launch script will be launched with the start argument to start the service and stop to stop it. The status command shall return 0 exit code if the service is started or 1 if it is stopped.
Example: SSH Server
- Install the SSH server:
apt-get install ssh
- Edit the configuration file:
/etc/ssh/sshd_configin order to change the port number and other things if necessary
- Click on Add and put the name SSHD, the launch script
/etc/init.d/sshand the status command
ps -p $(cat /var/run/sshd.pid)
Manual Example: SSH Server
The GUI of the chroot app is broken in DSM6. We would have to work around it at the moment. Services init information is stored in a SQLite database. Consult a SQLite FAQ on how to query, insert, update and delete rows of data in a table of such a database.
You would need to satisfy dependencies first. If your service needs others running – like syslog, for instance – start these beforehand. Compare to a native Debian installation, if possible.
- SSH into as admin on Synology
sudo sqlite3 /volume1/@appstore/debian-chroot/var/debian-chroot.db
- Create the SSH Server entry with:
INSERT INTO services VALUES ('0', 'SSHD', '/etc/init.d/ssh','ps -p $(cat /var/run/sshd.pid)');
- Verify with:
SELECT * FROM services;
[** rmarabini note: for me the right insert comand was:
INSERT INTO services VALUES ('0', 'SSHD', '/etc/init.d/ssh start','ps -p $(ps aux | grep -e /usr/sbin/sshd | grep -v grep | tr -s " " | cut -d " " -f2)');
Proceed likewise with additional services to start. Don’t forget to raise the row ID (
0 in the example above) for each entry. Double check the status command; if it does not return a valid process number, the chroot app WILL hang. To verify services, stop and start the chroot app via the Synology Package Center.