# Debian Chroot sur Synology DSM6

> Que ce soit pour le fun ou par nécessité, comme dans ce cas, sachez qu’on peut installer Debian (en environnement [chrooté](https://fr.wikipedia.org/wiki/Chroot) donc sans risque) sur un NAS Synology. Ici sur DSM6 dernière version.

### **Installer Debian Chroot**

Plutôt que de continuer à tout passer au crible avec [df, ls et du](https://technique.arscenic.org/commandes-linux-de-base/la-gestion-des-fichiers-et/article/lister-les-fichiers-et-repertoires) j’ai voulu installer [ncdu](https://upandclear.org/2016/02/28/lister-les-gros-dossiersfichiers-sous-linux-de-maniere-simple/) (via [IPKG](https://www.skyminds.net/nas-synology-installer-ipkg-pour-ajouter-des-applications-supplementaires/)) mais ça ne fonctionnait pas. j’ai donc pris le parti, rapide, d’installer un chroot Debian via les dépôts [SynoCommunity](https://upandclear.org/2015/09/16/synology-installer-les-paquets-synocommunity/) ([wiki](https://github.com/SynoCommunity/spksrc/wiki/Debian-Chroot) GitHub) qui permet d’installer Debian dans un dossier chrooté (sans risque de faire une boulette sur le NAS) sur Synology.

[![DebianChrootStoppedButRealRunning.jpg](https://docs.wlan.ovh/uploads/images/gallery/2020-05/scaled-1680-/DebianChrootStoppedButRealRunning.jpg)](https://docs.wlan.ovh/uploads/images/gallery/2020-05/DebianChrootStoppedButRealRunning.jpg)

#### Téléchargement

- [Tenhow.debian-chroot.dsm6.\[1/2\].bromolow](https://www.dropbox.com/s/r4udr737knvv3jo/tenhow.debian-chroot.dsm6.%5B1%3A2%5D.bromolow.zip?dl=0) \[as DS3615xs\] \[Required by myself\] √
- [Tenhow.debian-chroot.dsm6.\[1/2\].braswell](https://www.dropbox.com/s/trav40yk89sghgc/tenhow.debian-chroot.dsm6.%5B1%20or%202%5D.braswell.zip?dl=0) \[as DS3617xs\] \[Required by myself\]
- [Tenhow.debian-chroot.dsm6.\[1/2\].apollolake](https://www.dropbox.com/s/aef5a6a70tparbc/tenhow.debian-chroot.dsm6.%5B1%3A2%5D.apollolake.zip?dl=0) \[as DS918+\] \[Required by lordvalium\] √
    
    [python-2.7.dsm6.\[1/2\].apollolake](https://www.dropbox.com/s/m6hvsjs0mucmigx/python_apollolake-_2.7.14-19.spk?dl=0) \[python-2.7 for DS918+\]
- [Tenhow.debian-chroot.dsm6.\[1/2\].cedarview](https://www.dropbox.com/s/85kzm6pgm90imnr/tenhow.debian-chroot.dsm6.%5B1%3A2%5D.cedarview.zip?dl=0) \[as DS1213+\] \[Required by Tao87-04\] √
- [Tenhow.debian-chroot.dsm6.\[1/2\].armadaxp](https://www.dropbox.com/s/04ivz8nfztg2fe9/tenhow.debian-chroot.dsm6.%5B1%3A2%5D.armadaxp.zip?dl=0) \[as RS815\] \[Required by DzikNsk\] \[No Feedback Yet\]
- [Tenhow.debian-chroot.dsm6.\[1/2\].88f628x](https://www.dropbox.com/s/w4psq4m4dgpdy4m/tenhow.debian-chroot.dsm6.%5B1%3A2%5D.88f628x.zip?dl=0) \[as DS212\] \[Required by balabalaman\] √
- [Tenhow.debian-chroot.dsm6.\[1/2\].armada375](https://www.dropbox.com/s/9lqepe0jf2dub44/debian-chroot_armada375-_8.4-7.spk?dl=0) \[as DS215j\] \[Required by paul-xor\] \[Build by @destoron\]
- [Tenhow.debian-chroot.dsm6.\[1/2\].monaco](https://www.dropbox.com/s/3a6ocgfvdshzixr/tenhow.debian-chroot.dsm6.%5B1%3A2%5D.monaco.zip?dl=0) \[as DS216play\] \[Required by d4n1elchen\] √
- [Tenhow.debian-chroot.dsm6.\[1/2\].armada38x](https://www.dropbox.com/s/71p8e49dwbuv3zu/tenhow.debian-chroot.dsm6.%5B1%3A2%5D.armada38x.zip?dl=0) \[as DS216j\] \[Required by d4n1elchen\] √
- [Tenhow.debian-chroot.dsm6.\[1/2\].rtd1296](https://www.dropbox.com/s/6oc6ioc2c7abqti/tenhow.debian-chroot.dsm6.%5B1%3A2%5D.rtd1296.zip?dl=0) \[as DS418\] \[Required by gypittmann\] \[!Not Tested Yet!\]
- [Tenhow.debian-chroot.dsm6.\[1/2\].avaton](https://www.dropbox.com/s/qroxml7bi7xy2oq/tenhow.debian-chroot.dsm6.%5B1%3A2%5D.avoton.zip?dl=0) \[as DS1817+\] \[Required by droidboxma\] √
- [Tenhow.debian-chroot.dsm6.\[1/2\].evansport](https://www.dropbox.com/s/2cmi66fp0mst949/tenhow.debian-chroot.dsm6.%5B1%20or%202%5D.evansport.zip?dl=0) \[as DS214Play/DS415\] \[Required by rasmusmaagaard and g91720\]
- [Tenhow.debian-chroot.dsm6.\[1/2\].qoriq](https://www.dropbox.com/s/t328ef3hyuhe9ko/debian-chroot_qoriq-_8.4-7.spk?dl=0) \[as DS213+\] \[Required by Yagz\]

Comme Debian est installé dans un environnement “à part” on n’a pas accès au /Volume1, volume de stockage par défaut d’un NAS Synology. Du coup il faut modifier le script de lancement de l’environnement Debian. Ce qui se fait très simplement en SSH, en root, avec nano.

SSH : à activer dans Panneau de Configuration / Terminal et SNMP

pour passer root en SSH, sur DSM6, il faut taper sudo su et mettre le pwd du compte “Admin”

> Nano : cet éditeur n’étant pas installé sur Synology il faut le faire via les paquets SynoCommunity

Et donc éditer ensuite le script de lancement du chroot :

```prettyprint
nano /var/packages/debian-chroot/scripts/start-stop-status
```

Aller à la ligne *\# Mount if install is finished* et ajouter en fin de bloc la commande pour y monter automatiquement le /Volume1

```prettyprint
grep -q "${CHROOTTARGET}/volume1 " /volume1 || mount -o bind /volume1 ${CHROOTTARGET}/volume1

```

Ce qui nous donne

```prettyprint
    # Mount if install is finished
    if [ -f ${INSTALL_DIR}/var/installed ]; then
        # Make sure we don't mount twice
        grep -q "${CHROOTTARGET}/proc " /proc/mounts || mount -t proc proc ${CHROOTTARGET}/proc
        grep -q "${CHROOTTARGET}/sys " /proc/mounts || mount -t sysfs sys ${CHROOTTARGET}/sys
        grep -q "${CHROOTTARGET}/dev " /proc/mounts || mount -o bind /dev ${CHROOTTARGET}/dev
        grep -q "${CHROOTTARGET}/dev/pts " /proc/mounts || mount -o bind /dev/pts ${CHROOTTARGET}/dev/pts
grep -q "${CHROOTTARGET}/volume1 " /volume1 || mount -o bind /volume1 ${CHROOTTARGET}/volume1

```

Il faut ensuite ajouter la commande de démontage à la fin du bloc *\# Unmount*

```prettyprint
umount ${CHROOTTARGET}/volume1

```

Ce qui donne

```prettyprint
{
    # Stop running services
    ${INSTALL_DIR}/app/stop.py

    # Unmount
    umount ${CHROOTTARGET}/dev/pts
    umount ${CHROOTTARGET}/dev
    umount ${CHROOTTARGET}/sys
    umount ${CHROOTTARGET}/proc
umount ${CHROOTTARGET}/volume1
}
```

On enregistre (ctrl o) et quitte (ctrl x).

##### **Lancer Debian Chroot et s’y placer**

Toujours en root, on peut ensuite lancer le script de chroot Debian

```prettyprint
/var/packages/debian-chroot/scripts/start-stop-status start
```

Les commandes sont très simples :

- start : le lancer
- stop : le stopper
- status : voir s’il est lancé ou non
- chroot : s’y placer en chroot (donc passer dans Debian, en root)

Du coup on peut ensuite s’y placer

```prettyprint
/var/packages/debian-chroot/scripts/start-stop-status chroot
```

####  

#### Optimisation

1. `apt update`
2. `apt upgrade`
3. `dpkg-reconfigure tzdata`
4. `apt install locales`
5. `dpkg-reconfigure locales`

##### **Installer htop** (ou ce que vous voulez)

C’est un Debian classique. On peut donc y faire un `apt-get update && apt-get upgrade` histoire d’avoir un environnement à jour. Et j’ai ensuite installé htop.

```shell
apt-get install htop
```