Добавяне на Jail (chroot) среда в Synology
Вече от няколко месеца се радвам на моето Synology.
Още в началото бях намислил да си сложа Gentoo като chroot среда в Synology-то, тъй като исках да си пускам разни приложения, а не желая да разбърниквам основната ОС.
Самото поставяне става лесно:
1. Трябва да си харесате директория в която ще поставите jail-a. В моя случай директорията е /volume1/chroot/
2. Влизате в директорията и сваляте последния стеидж и го разархивирате. Процесора на ds213 е с архитектура armv5tel. Може да се провери чрез командата uname -m.
cd /volume1/chroot/ && wget http://mirror.telepoint.bg/gentoo/releases/arm/autobuilds/current-stage3-armv5tel/stage3-armv5tel-20121120.tar.bz2 && tar xjvf stage3-armv5tel-20121120.tar.bz2
3. Влизате в usr директорията и сваляте и разархивирате последния портич.
cd /volume1/chroot/usr && http://mirror.telepoint.bg/gentoo/releases/snapshots/current/portage-latest.tar.bz2 && tar xjvf portage-latest.tar.bz2
Това е. Вече имате Gentoo Jail върху Synology-то 🙂
Тъй като исках автоматично при пускането на NAS-a да ми се правят нужните маунтове за да работи Jail-а коректно и да ми се пускат някои проложения си направих следния rc scrip в /usr/syno/etc.defaults/rc.d/S99chroot_gentoo.sh:
#!/bin/sh
service=“syslog-ng vixie-cron in.tftpd“
# mounts to allinone
allinone=“music photo video“if [ „$*“ = ‘start’ ] ; then
mount -t proc none /volume1/chroot/proc > /dev/null 2>&1
mount –bind /dev /volume1/chroot/dev > /dev/null 2>&1
# mount –bind /dev/ttyS1 /volume1/chroot/dev/ > /dev/null 2>&1
mount -t devpts none /volume1/chroot/dev/pts > /dev/null 2>&1
mount –bind /volume1 /volume1/chroot/mnt/volume1 > /dev/null 2>&1for i in $allinone ; do
mount –bind /volume1/$i /volume1/allinone/$i > /dev/null 2>&1
donefor i in $service ; do
chroot /volume1/chroot /etc/init.d/$i start
doneelse
for i in $service ; do
chroot /volume1/chroot /etc/init.d/$i stop
donefor i in $allinone ; do
umount /volume1/allinone/$i > /dev/null 2>&1
doneumount /volume1/chroot/mnt/volume1 > /dev/null 2>&1
umount /volume1/chroot/proc > /dev/null 2>&1
umount /volume1/chroot/dev/pts > /dev/null 2>&1
umount /dev /volume1/chroot/dev > /dev/null 2>&1
umount /volume1/chroot/dev/ > /dev/null 2>&1
fi
Маунтовете с allinone не ви трябват, но аз ги правя за мое удобство при използването на File Share (Samba, NFS).
Тъй като при Gentoo компилирането отнема много време и няма как да се държи през цялото това време отворена SSH сесия се налага да си инсталирате screen, който ще работи ако си вдигнете SSH в jail средата.
За да инсталирате screen основната ОС следвайки следния гайд: http://www.chainsawonatireswing.com/2012/01/09/installing-3rd-party-software-on-your-synology-diskstation-ds411j/
като единствено се налогжи да променя bootstrap.sh файла тъй като получавах следната грешка при изпълнението му:
Error: CPU not Marvell Kirkwood, probably wrong bootstrap.xsh
За да оправите този проблем отворете файла bootstrap.sh и Feroceon-KW със Feroceon
Ревю на NAS – Synology DS212j Bash скрипт за криптиран бекъп към NFS mount