找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 12943|回复: 21

[Debian] 分享--基于openwrt 搭 debian 安装宝塔,及避坑要点。

[复制链接]
本帖最后由 jgsyinyi 于 2019-8-18 15:22 编辑

2019-8-19 看到有人不会添加启动项,这里添加关于openwrt 添加启动项方面的步骤简单说明.


如果还是搞不懂,可以私信联系我。


1.在openwrt 根目录/bin,或者 usr/bin ,新建 S99debian 文件,注意调整第 4行、8行、9行,这几个位置是要根据实际情况调整的。


2.在 /etc/init.d 里面新建一个文件,自订名称,我这里命名为debian


拷贝下面的内容贴入(这是最简单的openwrt 启动项添加方式,只有启动和停止命令,其他建议自行查看openwrt 相关教程).
  1. #!/bin/sh /etc/rc.common

  2. START=99
  3. STOP=99

  4. NAME=debian

  5. start() {
  6.     debian start
  7. }

  8. stop() {
  9.     debian stop
  10. }
复制代码


3.在网页登录openwrt 控制台,从系统启动项去找 debian 启动项(默认是禁止的,点击启用),重启看效果。

-------------------------------------------------------------------------------
之前分享的前篇,梅林搭debian 安装宝塔面板搭建自己的webserver ,有提到因为梅林内核版本过低,导致很多功能组件安装不上,包括数据库只能装最低版本,避免 InnoDB 不兼容的问题。

看说明是asus 内核不更新的缘故,反正包括debian 本身都因为内核限制没办法升级更新。



偶然发现openwrt 的内核已经到 4.19 故从梅林跳到 openwrt 来用,期间操作及部分毒点分享一些给大家。



  • 自刷 openwrt 这里不细说,应该都会。
  • 刷好,路由器配置OK 之后(USB 什么的就不废话了,插上)下面开始正式操作。
  • 首先在USB 合适位置解压debian 文件,可选要不要挂载这个路径(作用只是为了输入命令操作的时候快一点)。
  1. tar -xvzf debian_jessie8.9-armel_clean.tgz
复制代码


  • 创建 S99debian 文件和 deb.list 文件,这是debian 启动文件和自启应用表,自己看合适位置放,不要放debian 文件夹里,建议与debian 文件夹处于同目录下。

  1. #!/bin/sh
  2. PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
  3. # Folder with Debian Jessie
  4. CHROOT_DIR=/opt/debian                #这是解压出来debian 的文件夹位置,改成自己的文件夹路径
  5. # Some folder outside of sandbox,
  6. # will be mounted to /mnt folder in Debian
  7. # Uncommented next line if you need to mount a folder inside debian
  8. EXT_DIR=/opt                             #这里是要挂载到debian 加载的资源文件夹(也就是你要在debian 系统使用的文件),自己调整,不用可以去掉。
  9. CHROOT_SERVICES_LIST=/opt/deb.list         #这是debian 启动时自动运行程序列表表单,自己建一个文件,改成自己的文件路径
  10. if [ ! -e "$CHROOT_SERVICES_LIST" ]; then
  11.   echo "Please, define Debian services to start in
  12. $CHROOT_SERVICES_LIST first!"
  13.   echo "One service per line. Hint: this is a script names from
  14. Debian's /etc/init.d/"
  15.   exit 1
  16. fi
  17. MountedDirCount="$(mount | grep $CHROOT_DIR | wc -l)"
  18. start() {
  19.   if [ $MountedDirCount -gt 0 ]; then
  20.     echo "Chroot'ed services seems to be already started,
  21. exiting..."
  22.     exit 1
  23.   fi
  24.   echo "Starting chroot'ed Debian services..."
  25.   for dir in dev proc sys; do
  26.     mount -o bind /$dir $CHROOT_DIR/$dir
  27.   done
  28.   [ -z "$EXT_DIR" ] || mount -o bind $EXT_DIR $CHROOT_DIR/mnt
  29.   for item in $(cat $CHROOT_SERVICES_LIST); do
  30.     chroot $CHROOT_DIR /etc/init.d/$item start
  31.   done
  32.   }
  33. stop() {
  34.   if [ $MountedDirCount -eq 0 ]; then
  35.     echo "Chroot'ed services seems to be already stopped,
  36. exiting..."
  37.     exit 1
  38.   fi
  39.   echo "Stopping chroot'ed Debian services..."
  40.   for item in $(cat $CHROOT_SERVICES_LIST); do
  41.     chroot $CHROOT_DIR /etc/init.d/$item stop
  42.     sleep 2
  43.   done
  44.   mount | grep $CHROOT_DIR | awk '{print $3}' | xargs umount -l
  45.   }
  46. restart() {
  47.   if [ $MountedDirCount -eq 0 ]; then
  48.     echo "Chroot'ed services seems to be already stopped"
  49.     start
  50.     else
  51.     echo "Stopping chroot'ed Debian services..."
  52.   for item in $(cat $CHROOT_SERVICES_LIST); do
  53.     chroot $CHROOT_DIR /etc/init.d/$item stop
  54.     sleep 2
  55.   done
  56.   mount | grep $CHROOT_DIR | awk '{print $3}' | xargs umount -l
  57.     echo "Restarting chroot'ed Debian services..."
  58.   for dir in dev proc sys; do
  59.     mount -o bind /$dir $CHROOT_DIR/$dir
  60.   done
  61.   [ -z "$EXT_DIR" ] || mount -o bind $EXT_DIR $CHROOT_DIR/mnt
  62.   for item in $(cat $CHROOT_SERVICES_LIST); do
  63.     chroot $CHROOT_DIR /etc/init.d/$item start
  64.   done
  65.   fi
  66.   }  
  67. enter() {
  68.   [ -z "$EXT_DIR" ] || mount -o bind $EXT_DIR $CHROOT_DIR/mnt
  69.   mount -o bind /dev/ $CHROOT_DIR/dev/
  70.   mount -o bind /dev/pts $CHROOT_DIR/dev/pts
  71.   mount -o bind /proc/ $CHROOT_DIR/proc/
  72.   mount -o bind /sys/ $CHROOT_DIR/sys/
  73.   chroot $CHROOT_DIR /bin/bash
  74.   }
  75. status() {
  76.   if [ $MountedDirCount -gt 0 ]; then
  77.     echo "Chroot'ed services running..."
  78.   else
  79.     echo "Chroot'ed services not running!"
  80.   fi
  81.   }
  82. case "$1" in
  83.   start)
  84.     start
  85.     ;;
  86.   stop)
  87.     stop
  88.     ;;
  89.   restart)
  90.     restart
  91.     ;;
  92.   enter)
  93.     enter
  94.     ;;  
  95.   status) status
  96.     ;;
  97.   *)
  98.     echo "Usage: (start|stop|restart|enter|status)"
  99.     exit 1
  100.     ;;
  101. esac
  102. echo Done.
  103. exit 0
复制代码


  • 可选编辑debian 更新源(官方源太慢,其他源如163、清华源、上海交大源等可用自己去搜,交大源最快,官方源本身最安全),自带官方源debian 8的,下面是交大源debian 9 的,编辑 debian/etc/apt 文件夹里的 sources.list 注释掉或者删掉其他,贴上下面内容保存即可换源
  1. deb http://mirror.sjtu.edu.cn/debian/ stretch main contrib non-free
  2. deb-src http://mirror.sjtu.edu.cn/debian/ stretch main contrib non-free
  3. deb http://mirror.sjtu.edu.cn/debian/ stretch-updates main contrib non-free
  4. deb-src http://mirror.sjtu.edu.cn/debian/ stretch-updates main contrib non-free
  5. deb http://mirror.sjtu.edu.cn/debian/ stretch-backports main contrib non-free
  6. deb-src http://mirror.sjtu.edu.cn/debian/ stretch-backports main contrib non-free
  7. deb http://mirror.sjtu.edu.cn/debian-security/ stretch/updates main contrib non-free
  8. deb-src http://mirror.sjtu.edu.cn/debian-security/ stretch/updates main contrib non-free
复制代码
  • 之后就可用开始进入debian 操作了,运行 /opt/S99debian enter 进入(注意,没有挂载opt的,要换成自己的实际路径)
  • 运行下面命令先更新升级。
  1. apt-get update
  2. apt-get upgrade -y
  3. apt-get dist-upgrade -y
复制代码
  • 安装必要组件
  1. apt-get install procps -y
  2. apt-get install build-essential -y
  3. apt-get install yum -y
  4. apt-get install curl -y
  5. apt-get install wget -y
复制代码






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

  1. apt-get install libcurl4-gnutls-dev -y
复制代码



毒点来了,打开面板应该是报程序异常中断的错误。


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


链接: https://pan.baidu.com/s/1jSiXnpJyu7NmESJfqk0JVQ 提取码: ybbw 复制这段内容后打开百度网盘手机App,操作更方便哦






我的恩山、我的无线 The best wifi forum is right here.
openwrt  无线信号感人
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 nzslszn 于 2019-8-30 11:36 编辑

知道你的贴子为什么不火吗,写的太简单了,你能不能写细点,你的那个源文件从哪下的。你的操作怎么启动这个debian都没写
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

哥啊 你写细可以吗 ,多多电恩币都行啊....小白不会啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
875430176 发表于 2019-8-14 19:53
哥啊 你写细可以吗 ,多多电恩币都行啊....小白不会啊

是不会在 openwrt 添加启动项么?我修订一下教程,把这方面步骤加上.
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 nzslszn 于 2019-8-20 01:54 编辑

   k3openwrt 目录都应该一样吧,都是自动加载u盘或者硬盘,为什么要改自己的路径,没有一个公用路径吗?
       请问:你的根目录/bin,或者 usr/bin, 新建 S99debian 文件,注意调整第 4行、8行、9行,这几个位置是要根据实际情况调整的。”是打开winSCP软件登陆后/bin目录吗?而不是解压后/mnt/sda1/opt/debian/bin这个目录吧?
       请问:新建S99debian 文件,是在winSCP软件手动建立S99debian 文件,出现白板粘贴以下内容就好吗?
1. #!/bin/sh
2. PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
3. # Folder with Debian Jessie
4. CHROOT_DIR=/opt/debian                #这是解压出来debian 的文件夹位置,改成自己的文件夹路径   这里是不是/mnt/sda1/opt/debian我的是mnt/sda1加载的U盘
5. # Some folder outside of sandbox,
6. # will be mounted to /mnt folder in Debian
7. # Uncommented next line if you need to mount a folder inside debian
8. EXT_DIR=/opt                             #这里是要挂载到debian 加载的资源文件夹(也就是你要在debian 系统使用的文件),自己调整,不用可以去掉。是解压后的文件夹,文件/mnt/sda1/opt/debian路径吗?还是什么?
9. CHROOT_SERVICES_LIST=/opt/deb.list         #这是debian 启动时自动运行程序列表表单,自己建一个文件,改成自己的文件路径   是不是改成/mnt/sda1/opt路径?还是什么?
10. if [ ! -e "$CHROOT_SERVICES_LIST" ]; then
11.   echo "Please, define Debian services to start in
12. $CHROOT_SERVICES_LIST first!"
13.   echo "One service per line. Hint: this is a script names from
14. Debian's /etc/init.d/"
15.   exit 1
16. fi
17. MountedDirCount="$(mount | grep $CHROOT_DIR | wc -l)"
18. start() {
19.   if [ $MountedDirCount -gt 0 ]; then
20.     echo "Chroot'ed services seems to be already started,
21. exiting..."
22.     exit 1
23.   fi
24.   echo "Starting chroot'ed Debian services..."
25.   for dir in dev proc sys; do
26.     mount -o bind /$dir $CHROOT_DIR/$dir
27.   done
28.   [ -z "$EXT_DIR" ] || mount -o bind $EXT_DIR $CHROOT_DIR/mnt
29.   for item in $(cat $CHROOT_SERVICES_LIST); do
30.     chroot $CHROOT_DIR /etc/init.d/$item start
31.   done
32.   }
33. stop() {
34.   if [ $MountedDirCount -eq 0 ]; then
35.     echo "Chroot'ed services seems to be already stopped,
36. exiting..."
37.     exit 1
38.   fi
39.   echo "Stopping chroot'ed Debian services..."
40.   for item in $(cat $CHROOT_SERVICES_LIST); do
41.     chroot $CHROOT_DIR /etc/init.d/$item stop
42.     sleep 2
43.   done
44.   mount | grep $CHROOT_DIR | awk '{print $3}' | xargs umount -l
45.   }
46. restart() {
47.   if [ $MountedDirCount -eq 0 ]; then
48.     echo "Chroot'ed services seems to be already stopped"
49.     start
50.     else
51.     echo "Stopping chroot'ed Debian services..."
52.   for item in $(cat $CHROOT_SERVICES_LIST); do
53.     chroot $CHROOT_DIR /etc/init.d/$item stop
54.     sleep 2
55.   done
56.   mount | grep $CHROOT_DIR | awk '{print $3}' | xargs umount -l
57.     echo "Restarting chroot'ed Debian services..."
58.   for dir in dev proc sys; do
59.     mount -o bind /$dir $CHROOT_DIR/$dir
60.   done
61.   [ -z "$EXT_DIR" ] || mount -o bind $EXT_DIR $CHROOT_DIR/mnt
62.   for item in $(cat $CHROOT_SERVICES_LIST); do
63.     chroot $CHROOT_DIR /etc/init.d/$item start
64.   done
65.   fi
66.   }  
67. enter() {
68.   [ -z "$EXT_DIR" ] || mount -o bind $EXT_DIR $CHROOT_DIR/mnt
69.   mount -o bind /dev/ $CHROOT_DIR/dev/
70.   mount -o bind /dev/pts $CHROOT_DIR/dev/pts
71.   mount -o bind /proc/ $CHROOT_DIR/proc/
72.   mount -o bind /sys/ $CHROOT_DIR/sys/
73.   chroot $CHROOT_DIR /bin/bash
74.   }
75. status() {
76.   if [ $MountedDirCount -gt 0 ]; then
77.     echo "Chroot'ed services running..."
78.   else
79.     echo "Chroot'ed services not running!"
80.   fi
81.   }
82. case "$1" in
83.   start)
84.     start
85.     ;;
86.   stop)
87.     stop
88.     ;;
89.   restart)
90.     restart
91.     ;;
92.   enter)
93.     enter
94.     ;;  
95.   status) status
96.     ;;
97.   *)
98.     echo "Usage: (start|stop|restart|enter|status)"
99.     exit 1
100.     ;;
101. esac
102. echo Done.
103. exit 0

      这样的话,就是只解压,然后用winSCP手动建立文件就可了吗?
执行/usr/bin/S99debian enter出现
Please, define Debian services to start in
/mnt/sda1/opt/deb.list first!
One service per line. Hint: this is a script names from
Debian's /etc/init.d/


我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

时光雕刻人生 发表于 2019-7-7 17:03
openwrt  无线信号感人

你是用的谁的固件,别这么快下结论,我的路由k3,用的挺好啊,信号跟官改差不多
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
nzslszn 发表于 2019-8-20 01:00
k3的openwrt 目录都应该一样吧,都是自动加载u盘或者硬盘,为什么要改自己的路径,没有一个公用路径吗 ...

因为原是在梅林用,梅林要用 Entware 支持,而 Entware 默认文件夹位置是 opt 文件夹. 只是梅林固件内核太低,所以转改到 openwrt 来用.
主要是需要三个文件和debian包.

S99debian (可以是自订其他名称),这是真正启动执行debian命令的文件,源自最初教程.放到 $path 环境的任意文件夹里都行一般是bin 或者usr/bin,目的是为了在系统下直接识别debian 启动停止等相关命令。

debian (可以是自订其他名称) , 这是为openwrt 添加的启动项文件,目的是让debian 自启,前面给出样例可以自行调整启动命令,放在etc/init.d 里,

deb.list (可以是自订其他名称),这是debian 启动之后自动启动debian 内程序的列表。随便你在哪里新建,随便叫什么名字,有要启动的程序就写,每行一个,没有就内容空白。

debian 包,这是系统环境主体。

例如你放在mnt/sda1 解压出来,那么第四行就写 mnt/sda1/debian

第八行可要可不要,例如我debian 构建网站,有usb 上原有图片资源库要调入debian 系统下给网站用,就挂在第八行,在debian 系统下mnt 文件夹能看到。

例如第九行,你建立文件 mnt/sda1/deb.list 那么就填 mnt/sda1/deb.list


我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
nzslszn 发表于 2019-8-20 10:34
你是用的谁的固件,别这么快下结论,我的路由k3,用的挺好啊,信号跟官改差不多

openwrt 不知道为什么会突然跳ping (无线伤不起,游戏直接掉线,各种坑队友ing……) ,改过dns\mtu\各种启动项禁用都不行,就算无线改走wan口都会跳, 谁的固件无线驱动稳定,有没有固件推荐一下?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

jgsyinyi 发表于 2019-8-20 14:17
openwrt 不知道为什么会突然跳ping (无线伤不起,游戏直接掉线,各种坑队友ing……) ,改过dns\mtu\各种启动 ...

http://lede-k3.test.tossp.com/6e ... ca625aeb/index.html你试试这个
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

nzslszn 发表于 2019-8-20 16:02
http://lede-k3.test.tossp.com/6e28ead042270304a3bdc236eedc1cb2ca625aeb/index.html你试试这个

phicomm-k3-squashfs.trx ,可以下载8-6号的,更新版
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

装上宝塔后输入链接http://39.149.12.52:8888/提示无法显示此网页错误代码: HTTP ERROR -2146697211
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 jgsyinyi 于 2019-8-30 01:55 编辑
nzslszn 发表于 2019-8-21 01:35
一.   我用winSCP软件把包复制在/mnt/sda1/
二。用Xshell 6  执行命令
      01. cd  /mnt/sda1

你试过从内网访问么?
路由器地址:8888 试试看.
如果还是不行,检查一下看看是不是没给debian 文件和 S99debian 文件必要的权限.改成755 另外,如果你是openwrt 固件的话,明天我发一个debian10版的宝塔6.9 分享包,顺便补一篇K3 宝塔配置 Tomcat 的教程,以及6.9 因内存太小限制安装(例如mysql5.6)的解决办法.
到时可以拿去试试.

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

你好  debian已经按你说的升级到9了  安装宝塔提示需要升级内核  百度后试了  好像都说什么依赖问题  不成功  怎么办
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

apt-get dist-upgrade -y  这一步失败了

信息如下
root@RT-AC3100-ABFC:/# apt-get dist-upgrade -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
locales : Depends: libc-bin (> 2.24) but 2.19-18+deb8u10 is installed
E: Unmet dependencies. Try using -f.

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-29 17:31

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表