Професионален Блог

Поредният WordPress блог – що пък не? :P

Добавяне на 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>&1

for i in $allinone ; do
mount –bind /volume1/$i /volume1/allinone/$i > /dev/null 2>&1
done

for i in $service ; do
chroot /volume1/chroot /etc/init.d/$i start
done

else

for i in $service ; do
chroot /volume1/chroot /etc/init.d/$i stop
done

for i in $allinone ; do
umount /volume1/allinone/$i > /dev/null 2>&1
done

umount /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

 

Вашият коментар