嘟嘟社区

【免费!某被封“大佬”私货破解】显进度DD脚本及云桌面PVE


本帖最后由 hahawoshidmw 于 2021-11-23 21:58 编辑

【免费!某被封“大佬”私货破解】显进度DD脚本及云桌面PVE

与@flyqia的那个比,这个更原生而不是另起一个web界面给wget+gzip+dd在外面搭补丁,大家可以在源码处找到实现的技术点,而且可以用gitee,github当镜像源,及其它优势
(这个以前是收费使用的,现在免费)

与@山本的那个比,这个只需一键DD,无须iso挂载安装配置或从源一步一步安装配置,而且内置几个实用子系统部分解决了云桌面的问题,关键作者还在持续更新中
(这个是免费使用的,只是源码收费,大部分人用不着源码)

技术有高低,劳动有大小,@flyqia的那个用go源码实现,很赞。@山本这个就“一篇软文流”了。而那个被封"大佬"做的,仅是从bash增强moeclub,live pve也更一体化。他做的最多。

不要探寻我的新人身份,问就是我是那“大佬”的“小号"。—— 其实只是50买过他的脚本,也发现他放开脚本了

啥也不说了,这是项目地址:https://gitee.com/minlearn/mindevdesk

我帮你们抠出来了:

首先,dd是不写stdout的,只写stderr,而且无法buf,无法通过常规方法获得进程信息,而且它是个后台管道,这里面的情况就复杂多了,于是只能这样:

  [[ "$tmpTARGET" == ‘mindevdesk’ ]] && PIPECMDSTR='(for i in `seq -w 0 999`;do wget -qO- –no-check-certificate ‘$TARGETDDURL’$i; done)|gunzip -dc |stdbuf -oL dd of=$(list-devices disk |head -n1) bs=10M 2> /run/some_log.log & pid=`expr $! + 0`;echo $pid’;

然后,做成脚本,喂给参数:

d-i partman/early_command string chmod 755 /usr/lib/ddprogress/longrunpipebgcmd_redirectermoniter.sh;/usr/lib/ddprogress/longrunpipebgcmd_redirectermoniter.sh ‘$PIPECMDSTR’

最后,才是debian installer的界面逻辑

cat >$topdir/$remasteringdir/initramfs/usr/lib/ddprogress/longrunpipebgcmd_redirectermoniter.templates<<EOF
Template: my_script/progress/dd
Type: text
Description: i am DDing,please wait ${STATUS}

Template: my_script/progress/reboot
Type: text
Description: done,rebooting …
EOF

  cat >$topdir/$remasteringdir/initramfs/usr/lib/ddprogress/longrunpipebgcmd_redirectermoniter.sh<<EOF
#!/bin/sh
set -e

. /usr/share/debconf/confmodule
debconf-loadtemplate my_script /usr/lib/ddprogress/longrunpipebgcmd_redirectermoniter.templates

pidinfo=`eval $1`
imgsizeinfo=$TARGETDDIMGSIZE

for step in dd reboot; do

    if ! db_progress INFO my_script/progress/$step; then
            db_subst my_script/progress/fallback STEP "$step"
            db_progress INFO my_script/progress/fallback
    fi

    case $step in
       "dd")
           db_progress START 0 100 my_script/progress/dd
           db_progress INFO my_script/progress/dd
           db_progress SET 0

           [[ -z $pidinfo ]] && db_subst my_script/progress/dd STATUS "img link cant be dd,please force a restart"
           [[ -z $imgsizeinfo ]] && db_subst my_script/progress/dd STATUS "img size cant be retrived,force it to 20G" && imgsizeinfo=20

           PCTCOUNT="0";
            while :; do
           {
               # sleep 3 to let command run for a while,and start a new loop
               sleep 3

               statusinfo=`kill -USR1 $pidinfo;cat /run/some_log.log|sed ‘/^$/!h;$!d;g’`
               db_subst my_script/progress/dd STATUS "${statusinfo}"

               tillnowinfo=`echo $statusinfo|sed ‘s/bytes (.*)//g’`
               # 214748364 is result of (totalimgsize 21474836480 divide 100)
               # PCTSTEP=`expr $tillnowinfo / 214748364 – $PCTCOUNT`
               db_progress STEP 1
               # db_progress STEP "$PCTSTEP"
               # PCTCOUNT=`expr $PCTCOUNT + $PCTSTEP`
            }
            # [[ $tillnowinfo == $IMGSIZE && $PCTCOUNT == 100 ]] && db_progress SET 100 && break
            [[ $tillnowinfo == `expr 1073741824 \* $imgsizeinfo` ]] && db_progress SET 100 && break
            done

            db_progress INFO my_script/progress/reboot
            sleep 3
            db_progress STOP
            ;;

        "reboot")
            sleep 3
            [[ -b "$(list-devices disk |head -n1)" ]] && growpart "$(list-devices disk |head -n1)" 2 && resize2fs "$(list-devices disk |head -n1)"2
            sleep 3
            reboot
            ;;
    esac

done
EOF

不说了,吃个饭,看版主处理

本帖最后由 斜阳晚暮 于 2021-11-23 22:06 编辑

其它地方还是找不到销路(傻子)哦。不然也不用死赖到这。
GitHub都是“傻子”,那么多代码都不懂变现。唉,想变现也好难。

本帖最后由 vinny 于 2021-11-23 21:44 编辑

有这么多闲的蛋疼的天天在这提这一个破事就离谱

注册时间2021-11-23 18:34

短短三小时水了三个dd相关的,辛苦了

正常人发帖不该是 我要 dd 谁谁家机器,不成功,应该怎么d
哪有上来直接问百分百成功率的的?

一个dd脚本都能让你们这么。。。哎
人家收点费你也看不顺,免费了又YY
MJJ到底是由啥东西组成的?
至少被封的那个人没有骂过版主。
而这些带风的MJJ却在左右影响版主
dialog 基础组件,这都没人知道,mjj水平太差,能做的东西甚至比网页表单更多
闻到了小学生的气息
欧阳老头又又活干了
前排帮顶
我还以为又回来了
恕我太菜,没看懂是干嘛的。
过来看看
没啥意思 不知道有什么好纠结的 不过总是和这个比那个比还是辛苦了
欢迎回来