×

斐讯K3官改root安装运行debian8系统并且安装宝塔面板

我的笔记 我的笔记 发表于2019-10-23 16:59:00 浏览5063 评论0

抢沙发发表评论

准备工作

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 还没有排雷,谁要身先士卒可用回来分享)


10、安装完成之后,再安装下面的组件,不能提前安装,会不识别,必须安装,否则会出现 php 安装成功但是识别不到。

apt-get install libcurl4-gnutls-dev -y

启动的时候问题:

启动正常

image.png

然后日志报错:


启动失败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 (宝塔面板脚本语法需求……),目前看起来并没有什么影响,就不详述了,至此打完收工。 

我的笔记博客版权我的笔记博客版权