在路由器上跑Debian
首先,你需要知道什么是 Debootstrap 。
然后阅读此文档第一部分: EmDebianCrossDebootstrap 。
我们可以看到有多种方法可以实现我们的目的。我的路由器CPU是MT7621,是mipsel架构的。
我使用的是第二部分的方法: QEMU/debootstrap approach 。
我使用的是Ubuntu。
按照上面的要求,安装需要的包:
apt-get install binfmt-support qemu qemu-user-static debootstrap
然后随便新建个目录,例如:
mkdir mipsel_debian
然后运行bootstrap,注意arch要改过来,后面Jessie是你想要的版本,再后面mipsel_debian是刚刚新建的目录,最后是 镜像地址 。
debootstrap --foreign --arch mipsel jessie mipsel_debian http://ftp.cn.debian.org/debian/
搞定之后接着按文档教程走。有些地方改一下就行了。
cp /usr/bin/qemu-mipsel-static mipsel_debian/usr/bin
DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C
chroot mipsel_debian /debootstrap/debootstrap --second-stage
DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C
chroot mipsel_debian dpkg --configure -a
然后就完成了。把整个目录拷到u盘,u盘插到路由器上,ssh进路由器,chroot进去就能用了。 chroot前要做一些工作,参考 Debootstrap :
mount /dev mipsel_debian/dev
mount /sys mipsel_debian/sys
mount /proc mipsel_debian/proc
cp /proc/mounts mipsel_debian/etc/mtab
最后chroot进去:
chroot mipsel_debian /bin/bash
如果想用ssh,在chroot前可能还需要下面这一步:
mount /dev/pts mipsel_debian/dev/pts