第一纳斯网

[教程] 群晖DSM系统安装debian虚拟环境

2014-5-8 15:17
189424
本帖最后由 yumin9822 于 2014-5-8 20:45 编辑

    自从入手白群晖DS213J,折腾完optware,现在折腾安装Debian chroot虚拟环境。顺利成功,现在分享给大家。架设这个虚拟环境的最大好处就是可以安装和运行几乎所有的Debian软件。大大扩充了DSM系统下面软件不多的问题。Debian下面的软件的丰富性和快速更新性,都可移植利用到DSM系统。

    首先声明,该虚拟环境我不是首创,我只是在前人的基础上进行了修改和实践。其次该debian chroot虚拟环境不能和原生debian系统相比,但是却可以在里面安装最新的debian软件并运行的。该虚拟环境就像一个sandbox沙盒。进入debian沙盒后你是不能直接访问DSM系统里面的文件的(后面会讲到通过mount命令怎么曲线读写DSM系统里面文件体系)。

  如果你要安装你首先要明白你自己的群晖CPU是什么型号,可以到下面查看。还要知道Debian对应CPU编译的Ports代号。我的DS213J的CPU是Armada 320,对应的Debian的Ports为armhf。如果是黑裙,64位对应的Debian的Ports为amd64,32位对应的为i386。
http://forum.synology.com/wiki/i ... a_PowerPC_CPU_model
https://www.debian.org/ports/

   第一部分 生成Debian chroot环境
   这部分是在一个虚拟机的或者实体的debian或ubuntu系统中运行。本人在openvz的debian VPS中运行该部分。如果你下载了我做好的环境文件,可以直接跳转到第二部分。不过还是建议看下本部分。

1. 更新系统和安装相应的组件:
apt-get update
apt-get upgradeapt-get install binutils debootstrap

2. 开始创建Debian chroot环境并打包,下面以系统Debian wheezy和armhf为例
cd ~
mkdir debian
cd debian
debootstrap --foreign --no-check-gpg --arch armhf wheezy chroottarget "http://ftp.debian.org/debian"
#此处--arch后面的"armhf"就是你要创建的CPU对应的ports代号,紧随其后的"wheezy"是你要创建Debian版本代号,
#"chroottarget"为创建好的环境的目录名,这个可以自己定义。最后面是http地址是Debian镜像地址,可以考虑换成中国的镜像
#"http://ftp.cn.debian.org/debian"
#如果你要编译64位的最新版本的debian和,使用中国镜像地址,只需要换成下面命令执行:
#debootstrap --foreign --no-check-gpg --arch amd64 sid chroottarget "http://ftp.cn.debian.org/debian"
   稍等片刻后chroottarget目录就创建好了。

3. 打包生成的Debian chroot环境
cd ~/debian
tar zcf wheezy.tar.gz chroottarget

   这样就在你生成了一个wheezy.tar.gz的文件,想办法下载并传到你的电脑,后面我们需要把它上传到DSM系统里面。如果你很懒
或者没有Debian或ubuntu创建这个环境,那就下载我已经做好的吧。下载如下,
游客,如果您要查看本帖隐藏内容请回复

包含了如下版本,sid为Debian最新版本,即Jessie。wheezy为最新稳定Debian 7.5版本。推荐wheezy版本。第二部分的安装
也是在wheezy版本上进行的

sid_amd64.tar.gz
sid_armel.tar.gz
sid_armhf.tar.gz
sid_i386.tar.gz
sid_mips.tar.gz
sid_mipsel.tar.gz
sid_powerpc.tar.gz
wheezy_amd64.tar.gz
wheezy_armel.tar.gz
wheezy_armhf.tar.gz
wheezy_i386.tar.gz
wheezy_mips.tar.gz
wheezy_mipsel.tar.gz
wheezy_powerpc.tar.gz


第二部分  Debian chroot环境在DSM系统里面的部署
   自己进入DSM的web管理页面打开SSH功能,怎么打开这里不再赘叙,然后SSH登陆DSM系统。root用户登陆,非admin用户。
将你自己制作的好的文件或者从我这里下载的环境文件下载到你的DSM系统里面。怎么传,看你自己的爱好。下面以传到/volume1/download目录,文件名为wheezy.tar.gz。

1. SSH登陆DSM系统并创建相应目录
mkdir /volume1/@debian
cd /volume1/@debian
mv /volume1/download/wheezy.tar.gz ./
tar zxvf wheezy.tar.gz
ls -la
#查看以下解压出来的目录名字,这个名字就是第一部分你创建的时候的目录名字,可能为chroottarget,也可能为其他如wheezy_**或sid_**。
#为了统一,我们将目录名字修改一下,这里改成wheezy
mv * wheezy

2.second-stage部署一下
  这部分我自己也不知道是为了什么,不管了,参照前人,也运行一下。
chroot /volume1/@debian/wheezy /debootstrap/debootstrap --second-stage
NAS01.png


等待片刻,直到出现下面表示成功了。
I: Base system installed successfully.
NAS02.png


第三部分 Debian chroot环境在DSM系统里面的设定
   这部分是Debian chroot环境的设定,包括虚拟环境里面的Hostname,reslove.conf,source.list,local等等,好了,我们一步一步来。

1. DSM系统下为Debian chroot虚拟环境设定一些参数,mount proc and pts。
   首先SSH root用户登陆DSM系统。运行下面命令
cd /volume1/@debian
mount -o bind /proc /volume1/@debian/wheezy/proc
mount -o bind /dev/pts /volume1/@debian/wheezy/dev/pts

2. 正式进入Debian chroot虚拟环境
   前面那么多准备工作,现在离成功只差最后一步。老规矩SSH root用户登陆DSM系统。运行下面命令
chroot /volume1/@debian/wheezy /bin/bash
# 报错bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8),暂时忽略后面会较大家解决。
  至此我们已经成功进入Debian虚拟环境,注意查看命令行提示符的变化。
NAS03.png


3. Debian chroot虚拟环境进入设定
   该部分的修改都是在debian chroot虚拟环境运行的,切记!切记!怎么进入,请看上面。这部分我花的时间较多,我也放上了一些图片供大家参考。

#修改hostname,此处你可以将ds213j改成你自己喜欢的hostname
echo ds213j > /etc/hostname

#修改resolve.conf,这里用了nano,你也可以是使用vi。将里面的nameserver 修改为你自己喜欢的dns,我用的是114.114.114.114和8.8.8.8
nano /etc/resolv.conf
#删除所有内容,添加如下内容,按下Ctrl+X键保存好后退出到Debian chroot虚拟环境。
nameserver 114.114.114.114
nameserver 8.8.8.8

#修改Debian chroot虚拟环境的root密码。
passwd root

#修改debian的source.list,这里我选了中国的镜像,你可以选择自己对应快的镜像地址。
echo "deb http://ftp.cn.debian.org/debian wheezy main contrib non-free" > /etc/apt/sources.list

#正式更新Debian chroot虚拟环境下的软件。
apt-get update
apt-get upgrade
#询问是否升级时,输入y。

#现在尝试安装一个软件tree
apt-get install tree
   会报错很多,如下,你的可能和下面的图片有点不一样,下面图片里面还有一个pts没有mount的错误,这个我们前面已经做了,所以你的报错只会有local设置不对。
虽然很多报错,但是软件还是成功安装了。
NAS04.png


#下面我们就来修复这个local的问题,这也是我花时间最多的地方,找了很多地方在下面网址找到了答案。
#http://www.linuxquestions.org/qu ... r-directory-218622/
locale.PNG

#下面的命令都是在Debian chroot虚拟环境运行的
apt-get install locales
dpkg-reconfigure locales
按图设置
NAS05.png

NAS06.png


空格键选中,Tab键切换,PageUp PageDown键翻页。选中zh_CN.UTF-8以及en_US.UTF-8(一定要选en_US.UTF-8)
NAS07.png



默认还是en_US.UTF-8
#################至此圆满完成任务#############

第四部分 结束语

     NAS重启后,可能还需要重新mount pts和proc等,大家自己看情况运行下面命令再进debian chroot虚拟环境。该Debian虚拟环境怎么玩,自己去捉摸。我这里引用网上前人一段话给你点提示。总之,成千上万的已编译好的Debian软件已尽在你囊中。apt-get我来了!
mount -o bind /proc /volume1/@debian/wheezy/proc
mount -o bind /dev/pts /volume1/@debian/wheezy/dev/pts   
BTW:如果你要在Debian chroot虚拟环境里面访问DSM系统文件,可以按照下面命令操作。下面命令是在DSM系统下面运行的,

游客,如果您要查看本帖隐藏内容请回复


  最后大家有什么问题,请回复,我会尽量回答。
---------------------------------
Now you have access to any debian package you want!
If you start any services now, they will be running within the jail. If you want certain services to autostart without requiring you to login then you must use chroot. Remember, any services running in the chroot jail is not able to access anything outside of the jail in the filesystem.
Example of how to run a service which starts within the jail:
ds# chroot /volume1/@debian/wheezy /bin/bash -c "mount -t proc proc /proc"
ds# chroot /volume1/@debian/wheezy /bin/bash -c "/etc/init.d/ssh start"
Already this is it! Chroot into the debian and work with it or just play around!
-----------------------------------

参考文献
What kind of CPU does my NAS have - SynologyWiki
http://forum.synology.com/wiki/i ... a_PowerPC_CPU_model

Using debootstrap and chroot to install Debian on a NAS (DS210+)
http://sneclacson.blogspot.com/2 ... oot-to-install.html

debian chroot installation from offical website
https://wiki.debian.org/chroot
https://wiki.debian.org/ArmHardFloatChroot

Debian chroot on Synology NAS DS211+
http://kristof.vanhertum.be/?p=132

DS101g+ chroot debian installation
http://www.nslu2-linux.org/wiki/DS101/Debian

Debian List of official ports
http://www.debian.org/ports/

分享到 :
7 人收藏

24 个回复

倒序浏览
yumin9822  火焰骷髅 | 2014-5-8 15:30:21
本帖最后由 yumin9822 于 2014-5-10 09:04 编辑

本机sid也测试通过!
同时该方法也适合其他硬件系统(如tomato路由器,NAS等)linux系统下安装,前提是你的硬件系统里面的linux内核需要足够的新。如果不是,会在运行例如下面命令时报错。
chroot /opt/wheezy /debootstrap/debootstrap --second-stage
FATAL: kernel too old

Linux 2.4内核 最多支持到debian 4.0 etch

Debian GNU/Linux 7.0 支持十一种主要的体系和一些称为 “flavors” 的衍生品种。
https://www.debian.org/releases/stable/mipsel/ch02s01.html.zh-cn
[td]
  体系
Debian 命名
子体系
Flavor
Intel x86-based
i386
AMD64 & Intel 64
amd64
ARMarmel
Intel  IOP32x
iop32x
Intel IXP4xx
ixp4xx
Marvell Kirkwood
kirkwood
Marvell Orion
orion5x
Versatile
versatile
带 FPU 的 ARM
armhf
Freescale
mx5
Intel IA-64
ia64
MIPS (big endian)mips
SGI  IP22 (Indy/Indigo 2)
r4k-ip22
SGI IP32 (O2)
r5k-ip32
MIPS Malta (32 bit)
4kc-malta
MIPS Malta (64 bit)
5kc-malta
MIPS (little endian)mipsel
Cobalt
cobalt
MIPS Malta (32 bit)
4kc-malta
MIPS Malta (64 bit)
5kc-malta
IBM/Motorola PowerPCpowerpc
PowerMac
pmac
PReP
prep
Sun SPARCsparc
sun4u
sparc64
sun4v
IBM S/390
s390
来自  VM-reader 和 DASD 的 IPL
generic
64bit IBM S/390
s390x
来自  VM-reader 和 DASD 的 IPL
generic
Debian GNU/kFreeBSD 7.0 支持两种架构。

[td]
体系Debian 命名
Intel x86-basedkfreebsd-i386
AMD64 & Intel 64kfreebsd-amd64


imjacob  走火入魔 | 2014-5-8 16:40:55
没明白这个是干什么用的
yumin9822  火焰骷髅 | 2014-5-8 16:51:26
本帖最后由 yumin9822 于 2014-5-8 16:55 编辑
imjacob 发表于 2014-5-8 16:40
没明白这个是干什么用的

原生DSM系统下面,新建一个debian的虚拟环境。这个虚拟环境下,可以安装和运行所有的Debian软件。大大扩充了DSM系统下面软件不多的问题。
mycfan  高烧40℃ | 2014-5-8 18:16:42
jjjjjjjjjjjjjjjjjjjjjjjj
ad911  骷髅 | 2014-5-8 19:29:37
支持 一下 感谢 分享
yoseou  骷髅 | 2014-5-8 20:23:51
虽然不太懂,但先收藏了,谢谢
faninx  走火入魔 | 2014-5-8 21:41:16
Mark之 暂时没需求
囧.X  走火入魔 | 2014-5-9 08:29:13
看起来很牛鞭,但是不会用的小白路过。。收藏 以后有可能用得到
zjksjs  高烧40℃ | 2014-5-9 12:37:19
不是太明白,很高深的样子
尘缘若浅  高烧40℃ | 2014-5-9 13:37:21
我只是想要个 tree 就得装这个虚拟环境...
kayy  发烧38℃ | 2014-5-9 16:46:45
太复杂了,得好好的消化消化。
感谢分享!
ly5689  VIP红钻贵族 | 2014-5-9 16:58:42
这个有价值,收藏备用
yumin9822  火焰骷髅 | 2014-5-9 21:10:06
尘缘若浅 发表于 2014-5-9 13:37
我只是想要个 tree 就得装这个虚拟环境...

只是需要一个tree,推荐安装optware环境。感兴趣详细见我前面的帖子
kfqzhw  走火入魔 | 2014-5-10 09:42:38
这个感觉要对linux有相当了解,才能折腾
yumin9822  火焰骷髅 | 2014-5-10 21:44:00
只要了解个基础就好了,我也是只知道皮毛
囧.X  走火入魔 | 2014-5-12 10:03:19
debian的网络怎么支持?我想装个linux版的 teamview
咖啡泡泡  高烧40℃ | 2014-5-19 11:49:31
虽然不太懂,但先收藏了,谢谢
v-far  高烧40℃ | 2014-5-19 20:25:21
研究下。好像跟bootstrap有关
trsl2000  发烧38℃ | 2014-5-24 07:50:56
你的帖子太有指导意义!支持!
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

QQ|Archiver|手机版|小黑屋|第一纳斯网 ( 粤ICP备16092716号-1 )

Powered by Discuz! X3.4 © 2001-2016 Comsenz Inc.

返回顶部