Passer au contenu principal

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é 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 j’ai voulu installer ncdu (via IPKG) mais ça ne fonctionnait pas. j’ai donc pris le parti, rapide, d’installer un chroot Debian via les dépôts SynoCommunity (wiki GitHub) qui permet d’installer Debian dans un dossier chrooté (sans risque de faire une boulette sur le NAS) sur Synology.

Y monter son /Volume1

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 :

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

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

Ce qui nous donne

    # 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

umount ${CHROOTTARGET}/volume1

Ce qui donne

{
    # 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

/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

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

 

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.

apt-get install htop