准备工作
1、本文中的斐讯 K3 路由器是恩山论坛 tianbaoha 的官方root固件。
2、准备U盘或者移动硬盘,为了减少不必要的麻烦,建议格式化到 EXT4 格式,插入USB。实测 FAT32 不行,EXFAT 不支持,NTFS 不要用在 U盘,会有驱动问题。
开始安装 Debian 到 斐讯 K3
1、先安装 Entware-ng 和 coreutils-chroot
opkg install coreutils-chroot
2、下载 Debian Jessie,用 SFTP、SMB共享等方法放在 USB 设备中
链接: https://pan.baidu.com/s/1mhWHnYw 密码: j5jt
解压缩
cd /opt
tar -xvzf debian_jessie8.9-armel_clean.tgz
3、编辑启动文件
vi /opt/etc/init.d/S99debian
粘贴以下内容,注意 USB 设备的路径
#!/bin/sh PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin # Folder with Debian Jessie CHROOT_DIR=/opt/debian # Some folder outside of sandbox, # will be mounted to /mnt folder in Debian # Uncommented next line if you need to mount a folder inside debian EXT_DIR=/opt CHROOT_SERVICES_LIST=/opt/etc/chroot-services.list if [ ! -e "$CHROOT_SERVICES_LIST" ]; then echo "Please, define Debian services to start in $CHROOT_SERVICES_LIST first!" echo "One service per line. Hint: this is a script names from Debian's /etc/init.d/" exit 1 fi MountedDirCount="$(mount | grep $CHROOT_DIR | wc -l)" start() { if [ $MountedDirCount -gt 0 ]; then echo "Chroot'ed services seems to be already started, exiting..." exit 1 fi echo "Starting chroot'ed Debian services..." for dir in dev proc sys; do mount -o bind /$dir $CHROOT_DIR/$dir done [ -z "$EXT_DIR" ] || mount -o bind $EXT_DIR $CHROOT_DIR/mnt for item in $(cat $CHROOT_SERVICES_LIST); do chroot $CHROOT_DIR /etc/init.d/$item start done } stop() { if [ $MountedDirCount -eq 0 ]; then echo "Chroot'ed services seems to be already stopped, exiting..." exit 1 fi echo "Stopping chroot'ed Debian services..." for item in $(cat $CHROOT_SERVICES_LIST); do chroot $CHROOT_DIR /etc/init.d/$item stop sleep 2 done mount | grep $CHROOT_DIR | awk '{print $3}' | xargs umount -l } restart() { if [ $MountedDirCount -eq 0 ]; then echo "Chroot'ed services seems to be already stopped" start else echo "Stopping chroot'ed Debian services..." for item in $(cat $CHROOT_SERVICES_LIST); do chroot $CHROOT_DIR /etc/init.d/$item stop sleep 2 done mount | grep $CHROOT_DIR | awk '{print $3}' | xargs umount -l echo "Restarting chroot'ed Debian services..." for dir in dev proc sys; do mount -o bind /$dir $CHROOT_DIR/$dir done [ -z "$EXT_DIR" ] || mount -o bind $EXT_DIR $CHROOT_DIR/mnt for item in $(cat $CHROOT_SERVICES_LIST); do chroot $CHROOT_DIR /etc/init.d/$item start done fi } enter() { [ -z "$EXT_DIR" ] || mount -o bind $EXT_DIR $CHROOT_DIR/mnt mount -o bind /dev/ $CHROOT_DIR/dev/ mount -o bind /dev/pts $CHROOT_DIR/dev/pts mount -o bind /proc/ $CHROOT_DIR/proc/ mount -o bind /sys/ $CHROOT_DIR/sys/ chroot $CHROOT_DIR /bin/bash } status() { if [ $MountedDirCount -gt 0 ]; then echo "Chroot'ed services running..." else echo "Chroot'ed services not running!" fi } case "$1" in start) start ;; stop) stop ;; restart) restart ;; enter) enter ;; status) status ;; *) echo "Usage: (start|stop|restart|enter|status)" exit 1 ;; esac echo Done. exit 0
修改为可执行权限,
chmod 755 /opt/etc/init.d/S99debian
4、创建chroot services 清单文件
touch /opt/etc/chroot-services.list
需要运行的 Debian 程序(/etc/init.d/ 目录)放在这个文件中,每行一个,比如 resilio-sync
注意:
在进入系统前大陆地区需要更换软件源,国外的太慢,还要梯子
可选编辑debian 更新源(官方源太慢,其他源如163、清华源、上海交大源等可用自己去搜,交大源最快,官方源本身最安全),自带官方源debian 8的,下面是交大源debian 9 的,编辑 debian/etc/apt 文件夹里的 sources.list 注释掉或者删掉其他,贴上下面内容保存即可换源
vi /opt/debian/etc/apt/sources.list
deb http://packages.dotdeb.org jessie all deb-src http://packages.dotdeb.org jessie all
或者
deb http://mirrors.ustc.edu.cn/debian jessie main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian jessie main contrib non-free deb http://mirrors.ustc.edu.cn/debian jessie-proposed-updates main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian jessie-proposed-updates main contrib non-free deb http://mirrors.ustc.edu.cn/debian jessie-updates main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian jessie-updates main contrib non-free
5、创建符号链接(可选)
ln -s /opt/etc/init.d/S99debian /opt/bin/debian
每次进入、启动、重启、停止 Debian 要输入 “/opt/etc/init.d/S99debian start/stop”,现在只需要输入
debian start debian stop debian restart debian enter debian status
6、Debian 的使用
#进入debian debian enter #更新源 apt-get update #安装应用,比如wget apt-get install wget
7、运行下面命令先更新升级。
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
8、安装必要组件
apt-get install procps -y apt-get install build-essential -y apt-get install yum -y apt-get install curl -y apt-get install wget -y
9、安装宝塔面板,建议是旧版 5.9 (因为排雷过的就是5.9,确定可用运行,6.9 还没有排雷,谁要身先士卒可用回来分享)
5.9 的安装 wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh
6.9 的安装 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
10、安装完成之后,再安装下面的组件,不能提前安装,会不识别,必须安装,否则会出现 php 安装成功但是识别不到。
apt-get install libcurl4-gnutls-dev -y
启动的时候问题:
然后日志报错:
启动失败socket.error: No socket could be created
解决办法:修改端口
echo '7777' > /www/server/panel/data/port.pl
毒点来了,打开面板应该是报程序异常中断的错误。
排雷:打开 debian 里的文件夹 tmp 里面有日志,看 panelBoot.pl 前两句,就是问题原因了,说是找不到位置 dev/shm 。
实际找到 dev/shm 居然是一个快捷,链接目的地居然是 路由器的 tmp 而不是 debian 内部。
修改的话,把原shm 快捷更名或者移除,新增文件夹命名为 shm 就 ok 了。重开bt服务就可以愉快玩耍了。
5.9 之前还有在 certbot-auto.log 看到 pip 的报错,这里的做法是先转python 重装pip 之后重新pip install 命令安装python组件,完成之后还要重新切换 python2.7 (宝塔面板脚本语法需求……),目前看起来并没有什么影响,就不详述了,至此打完收工。