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
Optimisation
apt update
apt upgrade
dpkg-reconfigure tzdata
apt install locales
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.
apt-get install htop