偶然从海鲜市场得到联想T1(280.00包邮),就开始想着怎么折腾。其实,本人已经有很多的群晖,两白一黑,两白一主一备(无奈运气不是很好,坏过2块的硬盘),一黑挂pt。参考了张大妈家的几篇文章,大概的办法,一是硬改刷黑群,一个是原生固件装docker。硬改的物件都准备好了,无奈搭不上线,最关键的部分是u-boot的生成。

原生固件装docker呢,可能是我眼拙,不太理解现在的网络语言,愣是找不到链接(当然,不耻下问也能问到)。

还是自己研究吧,下面把自己的成果小结一下,比刷机要简单,而且不会提示固件更新。

一、准备工作

需要能访问raid的linux(ubuntu等),Windows其实也可以,还是linux原生支持的方便。

移动硬盘盒

可以TTL跑码的工具

二、获取原生固件root权限

1、设置账号密码

通过联想的客户端设置局域网访问账号设置,这个账号和密码一会儿会用上。(其实这个步骤不要也行,默认的admin账号密码是123456)

2、挂载硬盘

将你的硬盘从联想T1拔下拉放入移动硬盘盒(要不要关机看你,安全起见还是关机),这时候通过linux访问这个硬盘的内容。

此时打开“文件”查看是否有文件系统被直接挂载,可以访问。如有,那就跳过挂载步骤,直接访问数据即可。

运行终端(英文系统下为Terminal),在终端中使用以下命令安装mdadm:

sudo -i

apt-get install mdadm

使用以下命令安装lvm2以保证vgchange正常运作:

apt-get install lvm2

运行以下命令覆盖常规检查重建RAID阵列:

mdadm -Asf

运行以下命令挂载所有已知的卷到系统:

vgchange -ay

此时应能在系统自带的“文件”中看到新挂载的卷,打开便能看到所有文件,接下来就是修改shadow文件了。

3、获取root权限

可以直接使用admin的密码123456,在挂载的硬盘找到(例如,我这边挂载到/sata)/sata/.storage/etc/shadow文件(这个文件就不解释了)编辑它。

把admin的密码密文拷贝到root下(第1个冒号和第2个冒号之间),把第3个冒号和第4个冒号的数字改为0(不改,登录会要重置密码,登录不了)。

或者,一步到位,把刚才通过APP设置的密码密文拷贝到root下,同时,第3个冒号和第4个冒号的数字改为0。

 

4、TTL跑码

通过TTL跑码就可以在串口下进行ssh启用,通过刚才的步骤就可以直接root账号登录控制台了。

5、启用SSH

在/opt/conf/user下生成enable_ssh文件。

touch /opt/conf/user/enable_ssh

 

启动SSH服务(不做这一步也行,有上面那个文件生成,重启也能启动ssh服务了)。

/etc/init.d/S50dropbear start

至此,你已经可以通过SSH远程访问联想T1了,甚至还有了root权限,接下来怎么玩,凭君喜好。

三、安装docker

其实,我最主要的目标是给没有网络功能的打印机实现airprint,联想T1也内置了cups,但是被阉割过了,还是自己搞吧。搜罗了一遍,要想找到对应的ipk包(联想T1这个固件其实是openwrt的深度定制版)着实有点困难,最简单的还是docker。

1、下载docker

下载地址:https://download.docker.com/linux/static/stable/

镜像地址:https://mirrors.aliyun.com/docker-ce/linux/static/stable/aarch64/?spm=a2c6h.25603864.0.0.654c4ccaPxer04

 

点击进入aarch64

 

最新的安装包为docker-20.10.9.tgz,浏览器可以下载,网址为

https://download.docker.com/linux/static/stable/aarch64/docker-20.10.9.tgz

2、上传docker压缩包

将这个压缩包不解压直接拷贝到tmp文件夹内,然后cd /tmp,进入到该目录

3、解压

tar -zxvf docker-20.10.9.tgz

 

4、安装docker

安装过程是比较暴力的,暂时也没有更好的解决方法。

/bin/cp -a /tmp/docker/* /usr/bin,这样就会把所有刚刚解压的文件拷贝到系统目录下。

然后执行dockerd,用来创建一些临时的目录。但是执行过程会失败,我们需要修改配置文件

vi /etc/docker/daemon.json

将下述文本复制进去

{

“storage-driver”: “vfs”,

“iptables”: false,

“data-root”: “/opt/docker”

}

mount – o remount rw /

5、设置docker自启动

vi /etc/init.d/S60dockerd

  #!/bin/sh

NAME=dockerd

DAEMON=/usr/bin/$NAME

PIDFILE=/var/run/$NAME.pid

DAEMON_ARGS=””

[ -r /etc/default/$NAME ] && . /etc/default/$NAME $1

do_start() {

echo -n “Starting $NAME: ”

start-stop-daemon –start –quiet –background –make-pidfile

–pidfile $PIDFILE –exec $DAEMON — $DAEMON_ARGS

&& echo “OK” || echo “FAIL”}

do_stop() {

echo -n “Stopping $NAME: ”

start-stop-daemon –stop –quiet –pidfile $PIDFILE

&& echo “OK” || echo “FAIL”}

case “$1” in

start)

do_start

;;

stop)

do_stop

;;

restart)

do_stop

sleep 1

do_start

;;

*)

echo “Usage: $0 {start|stop|restart}”

exit 1

esac

注:将就看吧,没想到我这初级写作者,不支持markdown。

至此,docker安装完毕。

四、安装portainerio

其实,到这一步已经是非必要的了,还是命令行来的方便,这里,顺便介绍一下。

拉取镜像

docker pull portainer/portainer

创建卷

docker volume create portainer_data

创建容器

docker run –restart=always -d –name=portainer -p 10001:9000 -v /var/run/docker.sock:/var/run/docker.sock –net=bridge -v portainer_data:/data portainer/portainer

确认容器正常运行

docker ps

在浏览器输入联想T1的IP和10001端口号,就可以了看到对应的管理页面,说明安装成功了。

 

有了docker命令行和web端,想怎么搞都行了。

五、总结

联想T1刷黑群晖,缺的是某大神的u-boot(下一步自己研究怎么编译),而不是动手能力。刷某大神的官改固件现阶段的问题就是会提示固件升级。在原生固件折腾一下,也能实现自己想要的,过程还是学到一些东西的。

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。