安装Debian
我脑袋里一直有一个想法如果能在路由器上安装一个完整的Linux发行版应该是一件非常好玩的事情,但是一直没有找到安装方法,直到看到以下三篇文章,才知道原来如此简单。
- 《Running Debian on your Linksys WRT54G》
- 《Installing Debian On D-Link DIR-825》
- 《RaspberryPiqemu-user-static》
我也因此对Debian发行版本有了好感,甚至还一度想将Arch Linux更换为Debian已经转投Debian。
安装debootstrap
sudo apt-get install debootstrap qemu qemu-user-static binfmt-support
挂载U盘到PC
mount /dev/sdb1 /mnt
下载并安装Debian系统到/mnt
debootstrap --arch mipsel --foreign wheezy /mnt http://mirrors.ustc.edu.cn/debian
mount --bind /dev dev/
mount --bind /sys sys/
mount --bind /proc proc/
mount --bind /dev/pts dev/pts
cp /usr/bin/qemu-mipsel-static ~/mnt/usr/bin
chroot /mnt bin/bash
# 使用systemd-nspawn更简单
systemd-nspawn -D /mnt
debootstrap/debootstrap --second-stage
镜像站点
镜像 | 架构 |
---|---|
http://mirrors.ustc.edu.cn/debian/ | amd64 arm64 armel armhf hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mips64el mipsel powerpc ppc64el s390 s390x sparc |
http://mirrors.163.com/debian/ | amd64 i386 |
http://mirrors.tuna.tsinghua.edu.cn/debian/ | amd64 arm64 armel armhf hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mips64el mipsel powerpc ppc64el s390 s390x sparc |
挂载U盘到路由器
mount /dev/sda1 /mnt
mount --bind /dev dev/
mount --bind /sys sys/
mount --bind /proc proc/
mount --bind /dev/pts dev/pts
chroot /mnt /bin/bash
到此,debian就安装好了。
可以修改fstab自动挂载U盘到/mnt
,修改dropbear的默认端口并且添加自动运行脚本使得路由器启动后,自动打开Debian的sshd服务。如果需要一次启动多个服务,可以将chroot的第二个参数改为/etc/rc.local,把需要执行的多个任务保存在rc.local当中。有了完整的Linux环境,想运行什么程序就是看你的需要了,但是CPU的执行效率感人,这只是折腾出了一种配置异构CPU的chroot环境的方法,同样适用于像手机、树莓派等ARM架构CPU的环境中。